From 6778ebf0295313ce2b56bba000cef96e18afedd4 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期五, 28 六月 2024 08:10:11 +0800 Subject: [PATCH] 角色、权限 --- Wms/WMS.BLL/SysServer/RolesServer.cs | 97 +++++++++++++++++++++++++++--------------------- 1 files changed, 55 insertions(+), 42 deletions(-) diff --git a/Wms/WMS.BLL/SysServer/RolesServer.cs b/Wms/WMS.BLL/SysServer/RolesServer.cs index 17568bd..6a767ad 100644 --- a/Wms/WMS.BLL/SysServer/RolesServer.cs +++ b/Wms/WMS.BLL/SysServer/RolesServer.cs @@ -1,10 +1,13 @@ 锘縰sing AutoMapper; using Model.ModelDto.SysDto; +using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Utility; +using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IBLL.ISysServer; using WMS.IDAL.ISysInterface; @@ -19,17 +22,18 @@ /// <summary> /// 渚濊禆娉ㄥ叆 /// </summary> - public IRolesRepository _roles { get; set; } private readonly IMapper _mapper; + private static readonly SqlSugarScope Db = DataContext.Db; + private readonly UserManager _userManager; /// <summary> /// 鏋勯�犲嚱鏁� /// </summary> /// <param name="roles">瑙掕壊</param> /// <param name="mapper">automapper</param> - public RolesServer(IRolesRepository roles,IMapper mapper) + public RolesServer(IMapper mapper, UserManager userManager) { - _roles = roles; //瑙掕壊 _mapper = mapper; //automapper + _userManager = userManager; } /// <summary> @@ -38,12 +42,22 @@ /// <param name="RoleNo">瑙掕壊鍙�</param> /// <param name="RoleName">瑙掕壊鍚嶇О</param> /// <returns></returns> - public List<RoleDto> GetRoleList(string RoleNo, string RoleName,string UserId) + public async Task<List<RoleDto>> GetRoleList(string RoleNo, string RoleName) { - //鑾峰彇瑙掕壊淇℃伅 - List<RoleDto> rolelist = _roles.GetRoleList(RoleNo, RoleName, UserId); - //杩斿洖鏁版嵁 - return rolelist; + var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == _userManager.UserId); + return await Db.Queryable<SysRoles>() + .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) + .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) + .WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) + .WhereIF(!string.IsNullOrEmpty(RoleNo), a => a.RoleNo.Contains(RoleNo)) + .WhereIF(!string.IsNullOrEmpty(RoleName), a => a.RoleName.Contains(RoleName)) + .Where(a => a.IsDel == "0") + .Select<RoleDto>((a, b, c) => new RoleDto() + { + CreateUserName = b.RealName, + UpdateUserName = c.RealName + }, true) + .ToListAsync(); } /// <summary> @@ -51,10 +65,9 @@ /// </summary> /// <param name="RoleNo">瑙掕壊缂栧彿</param> /// <returns></returns> - public int GetRoleByNo(string RoleNo) + public async Task<int> GetRoleByNo(string RoleNo) { - List<SysRoles> role = _roles.GetRoleByNo(RoleNo); - return role.Count; + return await Db.Queryable<SysRoles>().CountAsync(s => s.RoleNo == RoleNo && s.IsDel == "0"); } /// <summary> @@ -65,31 +78,21 @@ /// <exception cref="Exception">鎹曡幏寮傚父</exception> public async Task<int> InsertRoleInfo(RoleDto roledto) { - //鎹曡幏寮傚父 - try + //妯″瀷鏄犲皠 + SysRoles roles = _mapper.Map<SysRoles>(roledto); + //鍒ゆ柇瑙掕壊鍙锋槸鍚﹀敮涓� + int count = await GetRoleByNo(roledto.RoleNo); + if (count > 0) { - //妯″瀷鏄犲皠 - SysRoles roles = _mapper.Map<SysRoles>(roledto); - //鍒ゆ柇瑙掕壊鍙锋槸鍚﹀敮涓� - int count = GetRoleByNo(roledto.RoleNo); - int i = 0; - if (count > 0) - { - i = 3; - } - else if (count == 0) - { - //鏂板瑙掕壊淇℃伅 - i = await _roles.InsertRoleInfo(roles); - } - - return i; + throw Oops.Bah("瑙掕壊鍙峰繀椤诲敮涓�"); } - catch (Exception ex) - { - //鎶涘嚭寮傚父 - throw new Exception("瑙掕壊淇℃伅鏂板寮傚父", ex); - } + //鏂板瑙掕壊淇℃伅 + roles.CreateTime = DateTime.Now; + roles.CreateUser = _userManager.UserId; + var i = await Db.Insertable(roles).ExecuteCommandAsync(); + if (i <= 0) + throw Oops.Bah("鏂板瑙掕壊鏁版嵁淇℃伅澶辫触"); + return i; } @@ -100,8 +103,12 @@ /// <returns></returns> public async Task<int> DeleteRoleInfo(SysRoles roles) { - int i = await _roles.DeleteRoleInfo(roles); - return i; + return await Db.Updateable<SysRoles>() + .Where(s => s.Id == roles.Id) + .SetColumns(s => s.IsDel == "1") + .SetColumns(s => s.UpdateTime == DateTime.Now) + .SetColumns(s => s.UpdateUser == _userManager.UserId) + .ExecuteCommandAsync(); } @@ -112,10 +119,17 @@ /// <returns></returns> public async Task<int> UpdateRoleInfo(SysRoles role) { - //淇敼 - int i = await _roles.UpdateRoleInfo(role); + int count = await Db.Queryable<SysRoles>().CountAsync(s => s.RoleNo == role.RoleNo && s.Id != role.Id && s.IsDel == "0"); + if (count > 0) + throw Oops.Bah("瑙掕壊鍙峰繀椤诲敮涓�"); + role.UpdateTime = DateTime.Now; + role.UpdateUser = _userManager.UserId; + int i = await Db.Updateable(role) + .UpdateColumns(s => new { s.RoleNo, s.RoleName, s.Demo, s.UpdateUser, s.UpdateTime }) + .ExecuteCommandAsync(); + if (i <= 0) + throw Oops.Bah("淇敼瑙掕壊鏁版嵁淇℃伅澶辫触"); return i; - } /// <summary> @@ -123,10 +137,9 @@ /// </summary> /// <param name="roleids">瑙掕壊id</param> /// <returns></returns> - public SysRoles GetRoleInfoById(int roleids) + public async Task<SysRoles> GetRoleInfoById(int roleids) { - SysRoles role= _roles.GetRoleInfoById(roleids); - return role; + return await Db.Queryable<SysRoles>().FirstAsync(s => s.Id == roleids && s.IsDel == "0"); } } -- Gitblit v1.8.0