2019-12-12 19:18:03 +08:00
|
|
|
using Blog.Core.Repository.Base;
|
2018-12-18 19:26:37 +08:00
|
|
|
using Blog.Core.Model.Models;
|
|
|
|
using Blog.Core.IRepository;
|
2019-01-22 00:10:51 +08:00
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Threading.Tasks;
|
2019-07-03 23:50:21 +08:00
|
|
|
using SqlSugar;
|
2019-10-21 12:02:14 +08:00
|
|
|
using Blog.Core.IRepository.UnitOfWork;
|
2018-12-18 19:26:37 +08:00
|
|
|
|
|
|
|
namespace Blog.Core.Repository
|
2019-01-22 00:10:51 +08:00
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// RoleModulePermissionRepository
|
|
|
|
/// </summary>
|
|
|
|
public class RoleModulePermissionRepository : BaseRepository<RoleModulePermission>, IRoleModulePermissionRepository
|
2018-12-18 19:26:37 +08:00
|
|
|
{
|
2019-10-21 12:02:14 +08:00
|
|
|
public RoleModulePermissionRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
|
|
|
|
{
|
|
|
|
}
|
2018-12-18 19:26:37 +08:00
|
|
|
|
2019-07-03 23:50:21 +08:00
|
|
|
public async Task<List<TestMuchTableResult>> QueryMuchTable()
|
|
|
|
{
|
2020-06-08 13:29:39 +08:00
|
|
|
return await QueryMuch<RoleModulePermission, Modules, Permission, TestMuchTableResult>(
|
2019-07-03 23:50:21 +08:00
|
|
|
(rmp, m, p) => new object[] {
|
|
|
|
JoinType.Left, rmp.ModuleId == m.Id,
|
|
|
|
JoinType.Left, rmp.PermissionId == p.Id
|
|
|
|
},
|
|
|
|
|
|
|
|
(rmp, m, p) => new TestMuchTableResult()
|
|
|
|
{
|
|
|
|
moduleName = m.Name,
|
|
|
|
permName = p.Name,
|
|
|
|
rid = rmp.RoleId,
|
|
|
|
mid = rmp.ModuleId,
|
|
|
|
pid = rmp.PermissionId
|
|
|
|
},
|
|
|
|
|
|
|
|
(rmp, m, p) => rmp.IsDeleted == false
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-12-12 23:02:11 +08:00
|
|
|
/// <summary>
|
2020-05-18 19:40:04 +08:00
|
|
|
/// 角色权限Map
|
|
|
|
/// RoleModulePermission, Module, Role 三表联合
|
|
|
|
/// 第四个类型 RoleModulePermission 是返回值
|
2019-12-12 23:02:11 +08:00
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public async Task<List<RoleModulePermission>> RoleModuleMaps()
|
|
|
|
{
|
2020-06-08 13:29:39 +08:00
|
|
|
return await QueryMuch<RoleModulePermission, Modules, Role, RoleModulePermission>(
|
2019-12-12 23:02:11 +08:00
|
|
|
(rmp, m, r) => new object[] {
|
|
|
|
JoinType.Left, rmp.ModuleId == m.Id,
|
|
|
|
JoinType.Left, rmp.RoleId == r.Id
|
|
|
|
},
|
|
|
|
|
|
|
|
(rmp, m, r) => new RoleModulePermission()
|
|
|
|
{
|
|
|
|
Role = r,
|
|
|
|
Module = m,
|
|
|
|
IsDeleted = rmp.IsDeleted
|
|
|
|
},
|
|
|
|
|
|
|
|
(rmp, m, r) => rmp.IsDeleted == false && m.IsDeleted == false && r.IsDeleted == false
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2019-07-03 23:50:21 +08:00
|
|
|
|
2018-12-18 19:26:37 +08:00
|
|
|
|
2020-05-18 19:40:04 +08:00
|
|
|
/// <summary>
|
|
|
|
/// 查询出角色-菜单-接口关系表全部Map属性数据
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public async Task<List<RoleModulePermission>> GetRMPMaps()
|
|
|
|
{
|
|
|
|
return await Db.Queryable<RoleModulePermission>()
|
|
|
|
.Mapper(rmp => rmp.Module, rmp => rmp.ModuleId)
|
|
|
|
.Mapper(rmp => rmp.Permission, rmp => rmp.PermissionId)
|
|
|
|
.Mapper(rmp => rmp.Role, rmp => rmp.RoleId)
|
|
|
|
.ToListAsync();
|
|
|
|
}
|
2020-06-12 18:13:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 查询出角色-菜单-接口关系表全部Map属性数据
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public async Task<List<RoleModulePermission>> GetRMPMapsPage()
|
|
|
|
{
|
|
|
|
return await Db.Queryable<RoleModulePermission>()
|
|
|
|
.Mapper(rmp => rmp.Module, rmp => rmp.ModuleId)
|
|
|
|
.Mapper(rmp => rmp.Permission, rmp => rmp.PermissionId)
|
|
|
|
.Mapper(rmp => rmp.Role, rmp => rmp.RoleId)
|
|
|
|
.ToPageListAsync(1, 5, 10);
|
|
|
|
}
|
2020-05-18 19:40:04 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|