using Blog.Core.Common; using Blog.Core.IRepository; using Blog.Core.IRepository.Base; using Blog.Core.IServices; using Blog.Core.Model.Models; using Blog.Core.Services.BASE; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Blog.Core.Services { /// /// RoleModulePermissionServices 应用服务 /// public class RoleModulePermissionServices : BaseServices, IRoleModulePermissionServices { readonly IRoleModulePermissionRepository _dal; readonly IBaseRepository _moduleRepository; readonly IBaseRepository _roleRepository; // 将多个仓储接口注入 public RoleModulePermissionServices( IRoleModulePermissionRepository dal, IBaseRepository moduleRepository, IBaseRepository roleRepository) { this._dal = dal; this._moduleRepository = moduleRepository; this._roleRepository = roleRepository; } /// /// 获取全部 角色接口(按钮)关系数据 /// /// [Caching(AbsoluteExpiration = 10)] public async Task> GetRoleModule() { var roleModulePermissions = await base.Query(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> QueryMuchTable() { return await _dal.QueryMuchTable(); } public async Task> RoleModuleMaps() { return await _dal.RoleModuleMaps(); } public async Task> GetRMPMaps() { return await _dal.GetRMPMaps(); } /// /// 批量更新菜单与接口的关系 /// /// 菜单主键 /// 接口主键 /// public async Task UpdateModuleId(long permissionId, long moduleId) { await _dal.UpdateModuleId(permissionId, moduleId); } } }