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