forked from anjoy8/Blog.Core
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRoleModulePermissionServices.cs
91 lines (79 loc) · 3.18 KB
/
RoleModulePermissionServices.cs
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
using MineCosmos.Core.Common;
using MineCosmos.Core.IRepository;
using MineCosmos.Core.IRepository.Base;
using MineCosmos.Core.IServices;
using MineCosmos.Core.Model.Models;
using MineCosmos.Core.Services.BASE;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MineCosmos.Core.Services
{
/// <summary>
/// RoleModulePermissionServices 应用服务
/// </summary>
public class RoleModulePermissionServices : BaseServices<RoleModulePermission>, IRoleModulePermissionServices
{
readonly IRoleModulePermissionRepository _dal;
readonly IBaseRepository<Modules> _moduleRepository;
readonly IBaseRepository<Role> _roleRepository;
// 将多个仓储接口注入
public RoleModulePermissionServices(
IRoleModulePermissionRepository dal,
IBaseRepository<Modules> moduleRepository,
IBaseRepository<Role> roleRepository)
{
this._dal = dal;
this._moduleRepository = moduleRepository;
this._roleRepository = roleRepository;
}
/// <summary>
/// 获取全部 角色接口(按钮)关系数据
/// </summary>
/// <returns></returns>
[Caching(AbsoluteExpiration = 10)]
public async Task<List<RoleModulePermission>> GetRoleModule()
{
var roleModulePermissions = await base.GetListAsync(a => a.IsDeleted == false);
var roles = await _roleRepository.Query(a => a.IsDeleted == false);
var modules = await _moduleRepository.Query(a => a.IsDeleted == false);
//var roleModulePermissionsAsync = base.Query(a => a.IsDeleted == false);
//var rolesAsync = _roleRepository.Query(a => a.IsDeleted == false);
//var modulesAsync = _moduleRepository.Query(a => a.IsDeleted == false);
//var roleModulePermissions = await roleModulePermissionsAsync;
//var roles = await rolesAsync;
//var modules = await modulesAsync;
if (roleModulePermissions.Count > 0)
{
foreach (var item in roleModulePermissions)
{
item.Role = roles.FirstOrDefault(d => d.Id == item.RoleId);
item.Module = modules.FirstOrDefault(d => d.Id == item.ModuleId);
}
}
return roleModulePermissions;
}
public async Task<List<TestMuchTableResult>> QueryMuchTable()
{
return await _dal.QueryMuchTable();
}
public async Task<List<RoleModulePermission>> RoleModuleMaps()
{
return await _dal.RoleModuleMaps();
}
public async Task<List<RoleModulePermission>> GetRMPMaps()
{
return await _dal.GetRMPMaps();
}
/// <summary>
/// 批量更新菜单与接口的关系
/// </summary>
/// <param name="permissionId">菜单主键</param>
/// <param name="moduleId">接口主键</param>
/// <returns></returns>
public async Task UpdateModuleId(int permissionId, int moduleId)
{
await _dal.UpdateModuleId(permissionId, moduleId);
}
}
}