From 34bfa7df61921f7d1798fc08db0b8d81828da96b Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期二, 02 七月 2024 08:07:57 +0800
Subject: [PATCH] 物料、部门、功能设定
---
Wms/WMS.BLL/SysServer/RoleRightServer.cs | 151 +++++++++++++++++---------------------------------
1 files changed, 52 insertions(+), 99 deletions(-)
diff --git a/Wms/WMS.BLL/SysServer/RoleRightServer.cs b/Wms/WMS.BLL/SysServer/RoleRightServer.cs
index 1f16667..8579b02 100644
--- a/Wms/WMS.BLL/SysServer/RoleRightServer.cs
+++ b/Wms/WMS.BLL/SysServer/RoleRightServer.cs
@@ -7,7 +7,10 @@
using AutoMapper;
using Model.ModelDto.SysDto;
using Model.ModelVm.SysVm;
+using SqlSugar;
+using Utility;
using WMS.DAL.SystemService;
+using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IBLL.ISysServer;
using WMS.IDAL.ISysInterface;
@@ -22,14 +25,15 @@
/// <summary>
/// 渚濊禆娉ㄥ叆
/// </summary>
- public IRoleRightRepository _rolerights { get; set; }
+ private static readonly SqlSugarScope Db = DataContext.Db;
+ private readonly UserManager _userManager;
/// <summary>
/// 鏋勯�犲嚱鏁�
/// </summary>
/// <param name="roles"></param>
- public RoleRightServer(IRoleRightRepository rolerights)
+ public RoleRightServer(UserManager userManager)
{
- _rolerights = rolerights;
+ _userManager = userManager;
}
/// <summary>
@@ -37,28 +41,24 @@
/// </summary>
/// <param name="userId">鐢ㄦ埛Id</param>
/// <returns></returns>
- public List<RoleRightDto> GetRoleMenuList(int userId)
+ public async Task<List<RoleRightDto>> GetRoleMenuList()
{
- try
+ var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(m => m.Id == _userManager.UserId && m.IsDel == "0");
+ if (modUser == null)
{
- var user = _rolerights.GetRoleMenuList(userId);
- return user;
+ throw Oops.Bah("鏈煡璇㈠埌鐧诲綍浜轰俊鎭�");
}
- catch (Exception e)
+ if (string.IsNullOrWhiteSpace(modUser.RoleNo))
{
- throw new Exception(e.Message);
+ throw Oops.Bah("鏈煡璇㈠埌鐧诲綍浜虹殑鎵�灞炶鑹蹭俊鎭�");
}
- }
-
- /// <summary>
- /// 鑾峰彇瑙掕壊鏉冮檺淇℃伅鍒楄〃
- /// 澶氳〃锛氳鑹叉潈闄愩�佽鑹层�佽彍鍗�
- /// </summary>
- /// <returns></returns>
- public List<RoleRightDto> GetRoleRightList()
- {
- List<RoleRightDto> roleRightDtos = _rolerights.GetRoleRightList();
- return roleRightDtos;
+ return await Db.Queryable<SysRoleRight>()
+ .LeftJoin<SysFunctionMenu>((a, b) => a.MenuNo == b.MenuNo)
+ .LeftJoin<SysRoles>((a, b, c) => a.RoleNo == c.RoleNo)
+ .Where((a, b, c) => a.IsDel == "0" && b.IsDel == "0" && c.IsDel == "0")
+ .Where((a, b, c) => a.RoleNo == modUser.RoleNo)
+ .Select<RoleRightDto>()
+ .ToListAsync();
}
/// <summary>
@@ -66,21 +66,9 @@
/// </summary>
/// <param name="rolerightids">瑙掕壊鏉冮檺id</param>
/// <returns></returns>
- public List<SysRoleRight> GetRoleRightOneListById(int id)
+ public async Task<List<SysRoleRight>> GetRoleRightOneListById(int id)
{
- List<SysRoleRight> roleRights = _rolerights.GetRoleRightOneListById(id);
- return roleRights;
- }
-
- /// <summary>
- /// 鏍规嵁瑙掕壊鍙疯幏鍙栬鑹叉潈闄愪俊鎭垪琛�(鍗曡〃)
- /// </summary>
- /// <param name="roleno">瑙掕壊濂�</param>
- /// <returns></returns>
- public List<SysRoleRight> GetRoleRightOneListByNo(string roleno)
- {
- List<SysRoleRight> roleRights = _rolerights.GetRoleRightOneListByNo(roleno);
- return roleRights;
+ return await Db.Queryable<SysRoleRight>().Where(s => s.IsDel == "0" && s.RoleNo == SqlFunc.Subqueryable<SysRoles>().Where(c => c.IsDel == "0" && c.Id == id).Select(c => c.RoleNo)).ToListAsync();
}
/// <summary>
@@ -90,79 +78,44 @@
/// <param name="RoleNo">瑙掕壊鍙�</param>
/// <returns></returns>
/// <exception cref="Exception">鎹曡幏寮傚父</exception>
- public async Task<int> InsertRoleRight(string MenuNo, string RoleNo, string userId)
+ public async Task InsertRoleRight(string MenuNo, string RoleNo)
{
- //鎹曡幏寮傚父
- try
+ List<SysRoleRight> listRole = await Db.Queryable<SysRoleRight>().Where(s => s.RoleNo == RoleNo).ToListAsync();
+ if (listRole.Count > 0)
{
- //灏嗚彍鍗曞彿杩涜鍒嗗壊 瀛樺偍鏁扮粍涓�
- var arr = MenuNo.Split(',');
- int i = 0;
- //鏌ヨ璇ヨ鑹叉槸鍚︽嫢鏈夋潈闄�
- List<SysRoleRight> rolelist = GetRoleRightOneListByNo(RoleNo);
- //鏈�
- if (rolelist.Count > 0)
+ await Db.Deleteable<SysRoleRight>().Where(s => s.RoleNo == RoleNo).ExecuteCommandAsync();
+ }
+ var arr = MenuNo.Split(',');
+ var listRight = new List<SysRoleRight>();
+ //寰幆灏嗚彍鍗曟暟缁勫垎鍒姞鍏ュ埌鏁版嵁妯″瀷涓�
+ for (int j = 0; j < arr.Count(); j++)
+ {
+ SysRoleRight roleright = new SysRoleRight();
+ roleright.RoleNo = RoleNo;//瑙掕壊鍙�
+ roleright.MenuNo = arr[j];//鑿滃崟鍙�
+ roleright.CreateUser = _userManager.UserId;//鍒涘缓浜�
+ roleright.CreateTime = DateTime.Now;
+ listRight.Add(roleright);
+ }
+ await Db.Insertable(listRight).ExecuteCommandAsync();
+
+ //鍒犻櫎瀛愮骇瑙掕壊鏉冮檺淇℃伅銆�(瑙掕壊鏉冮檺鍑忓皯锛岃鑹蹭笅绾ф潈闄愬悓鏃跺噺灏�)
+ List<SysRoles> listRoleDel = await Db.Queryable<SysRoles>().Where(s => SqlFunc.Subqueryable<SysUserInfor>().Where(c => c.RoleNo == RoleNo && s.Id == c.Id).Any()).ToListAsync();
+ var listRoleNo = listRoleDel.Select(s => s.RoleNo).Distinct().ToList();
+ List<SysRoleRight> listRoleRight = await Db.Queryable<SysRoleRight>().Where(s => listRoleNo.Contains(s.RoleNo)).ToListAsync();
+ foreach (var item in listRoleDel)
+ {
+ var listChildRoleRight = listRoleRight.Where(s => s.RoleNo == item.RoleNo).ToList();
+ foreach (var right in listChildRoleRight)
{
- //鍒犻櫎璇ヨ鑹叉墍鏈夎彍鍗曚俊鎭�
- i = await DeleteRoleRight(RoleNo);
- }
- //鏃�
- else if (rolelist.Count == 0)
- {
- i = 1;
- }
- //寮�濮嬫柊澧炴潈闄�
- if (i > 0)
- {
- SysRoleRight roleright = new SysRoleRight();
- //寰幆灏嗚彍鍗曟暟缁勫垎鍒姞鍏ュ埌鏁版嵁妯″瀷涓�
- for (int j = 0; j < arr.Count(); j++)
+ int first1 = Array.IndexOf(arr, right.MenuNo);
+ if (first1 <= -1)
{
- roleright.RoleNo = RoleNo;//瑙掕壊鍙�
- roleright.MenuNo = arr[j];//鑿滃崟鍙�
- roleright.CreateUser = Convert.ToInt32(userId);//鍒涘缓浜�
-
- //鎴愬姛 灏嗚彍鍗曞彿鍜岃鑹插彿鏂板涓烘柊鐨勬暟鎹�
- i = await _rolerights.InsertRoleRight(roleright);
+ await Db.Deleteable<SysRoleRight>().Where(s => s.RoleNo == item.RoleNo && s.MenuNo == right.MenuNo).ExecuteCommandAsync();
}
- //鍒犻櫎瀛愮骇瑙掕壊鏉冮檺淇℃伅銆�(瑙掕壊鏉冮檺鍑忓皯锛岃鑹蹭笅绾ф潈闄愬悓鏃跺噺灏�)
- await _rolerights.DeleteChildRoleRight(RoleNo, MenuNo);
- //杩斿洖
- return i;
-
}
- else
- {
- return i;
- }
- }
- catch (Exception ex)
- {
- //鎶涘嚭寮傚父
- throw new Exception("鏂板瑙掕壊鏉冮檺淇℃伅寮傚父", ex);
}
}
- /// <summary>
- /// 鍒犻櫎瑙掕壊鏉冮檺淇℃伅
- /// </summary>
- /// <param name="RoleNo">瑙掕壊鍙�</param>
- /// <returns></returns>
- /// <exception cref="Exception">鎹曡幏寮傚父</exception>
- public async Task<int> DeleteRoleRight(string RoleNo)
- {
- //鎹曡幏寮傚父
- try
- {
- //鍒犻櫎
- int i = await _rolerights.DeleteRoleRight(RoleNo);
- return i;
- }
- catch (Exception ex)
- {
- //鎶涘嚭寮傚父
- throw new Exception("鍒犻櫎瑙掕壊鏉冮檺淇℃伅寮傚父", ex);
- }
- }
}
}
\ No newline at end of file
--
Gitblit v1.8.0