forked from anjoy8/Blog.Core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMigrateController.cs
More file actions
115 lines (98 loc) · 3.59 KB
/
MigrateController.cs
File metadata and controls
115 lines (98 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using Blog.Core.IRepository.UnitOfWork;
using Blog.Core.IServices;
using Blog.Core.Model;
using Blog.Core.Model.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace Blog.Core.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
//[Authorize(Permissions.Name)]
public class MigrateController : ControllerBase
{
private readonly IUnitOfWork _unitOfWork;
private readonly IRoleModulePermissionServices _roleModulePermissionServices;
private readonly IWebHostEnvironment _env;
public MigrateController(IUnitOfWork unitOfWork, IRoleModulePermissionServices roleModulePermissionServices, IWebHostEnvironment env)
{
_unitOfWork = unitOfWork;
_roleModulePermissionServices = roleModulePermissionServices;
_env = env;
}
/// <summary>
/// 获取权限部分Map数据
/// 生成到tsb文件
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<string>> GetRMPMaps()
{
var data = new MessageModel<string>() { success = true, msg = "" };
if (_env.IsDevelopment())
{
// 获取数据,当然,你可以做个where查询
var rmps = await _roleModulePermissionServices.GetRMPMaps();
var rmpSerializeStr = JsonConvert.SerializeObject(rmps);
// 将序列化的json生成到tsv文件
var roleModulePermissions = JsonConvert.DeserializeObject<List<RoleModulePermission>>(rmpSerializeStr);
data.success = true;
data.msg = "生成成功!";
}
else
{
data.success = false;
data.msg = "当前不处于开发模式,代码生成不可用!";
}
return data;
}
/// <summary>
/// 保存数据到数据库
/// </summary>
/// <returns></returns>
[HttpGet]
public MessageModel<string> SaveDataToDb()
{
var data = new MessageModel<string>() { success = true, msg = "" };
if (_env.IsDevelopment())
{
// 取出json数据,反序列化
var rmpSerializeStr = "";
var roleModulePermissions = JsonConvert.DeserializeObject<List<RoleModulePermission>>(rmpSerializeStr);
try
{
_unitOfWork.BeginTran();
foreach (var item in roleModulePermissions)
{
// 添加角色,返回rid
var role = item.Role;
// 添加菜单,返回mid
var module = item.Module;
// 添加接口,返回pid
var permission = item.Permission;
// 添加关系表
}
_unitOfWork.CommitTran();
}
catch (Exception)
{
_unitOfWork.RollbackTran();
}
data.success = true;
data.msg = "生成成功!";
}
else
{
data.success = false;
data.msg = "当前不处于开发模式,代码生成不可用!";
}
return data;
}
}
}