From 59cf0b64e759b6dddf68170a5ceba0aaa572579e Mon Sep 17 00:00:00 2001
From: leo <10200039@qq.com>
Date: Fri, 28 Apr 2023 15:14:00 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/UserController.cs | 3 +-
FactorySystemBll/UserBll.cs | 54 +++++++++++++++++++
2 files changed, 56 insertions(+), 1 deletion(-)
diff --git a/FactorySystemApi/Controllers/UserController.cs b/FactorySystemApi/Controllers/UserController.cs
index b8444d3..e06fd62 100644
--- a/FactorySystemApi/Controllers/UserController.cs
+++ b/FactorySystemApi/Controllers/UserController.cs
@@ -127,7 +127,8 @@ namespace FactorySystemApi.Controllers
object roleId = null;
if (selectData != null) selectData.TryGetValue("FRoleId", out roleId);
bool wantAll = selectData != null && selectData.ContainsKey("FRoleSet");
- apiResult.Data = UserBll.GetMenuList(user.FID, roleId == null ? "" : roleId.ToString(), wantAll);
+ //apiResult.Data = UserBll.GetMenuList(user.FID, roleId == null ? "" : roleId.ToString(), wantAll);
+ apiResult.Data = UserBll.GetMenuList(user.FID, wantAll);
}, apiResult, Request);
}
diff --git a/FactorySystemBll/UserBll.cs b/FactorySystemBll/UserBll.cs
index 24fc985..97f6c92 100644
--- a/FactorySystemBll/UserBll.cs
+++ b/FactorySystemBll/UserBll.cs
@@ -86,6 +86,60 @@ namespace FactorySystemBll
}
}
+ ///
+ /// 获取菜单权限
+ ///
+ public object GetMenuList(int userId, bool returnAll = false)
+ {
+ SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
+ int delete = (int)Constant.DeleteCode.已删除;
+
+ List powers = db.Queryable().Where(s => userId.ToString().Equals(s.FUserID)).ToList();
+ List roles = new List();
+
+ if (powers != null && powers.Count > 0)
+ {
+ powers.ForEach(power =>
+ {
+ roles.Add(power.FRole);
+ });
+ }
+
+ List menuList = db.Queryable().Where(s => s.FDeleted != delete).OrderBy(s => s.FOrder).ToList();
+ List hasIds = db.Queryable((a, b) => new JoinQueryInfos(JoinType.Left, a.FID == b.FRoleID))
+ .Where((a, b) => a.FDeleted != delete && b.FType == (int)Constant.RoleType.菜单权限 && roles.Contains(a.FID.ToString()))
+ .Select((a, b) => b.FFunctionID).GroupBy("b.FFunctionID").ToList();
+ if (returnAll)
+ {
+ return menuList.Select(s => new
+ {
+ s.FID,
+ s.FIcon,
+ s.FParentID,
+ s.FName,
+ s.FLevel,
+ s.FLocation,
+ s.FOrder,
+ s.FRemark,
+ FIsChose = hasIds.IndexOf(s.FID) != -1
+ }).ToList();
+ }
+ else
+ {
+ return menuList.Where(s => hasIds.IndexOf(s.FID) != -1).Select(s => new
+ {
+ s.FID,
+ s.FIcon,
+ s.FParentID,
+ s.FName,
+ s.FLevel,
+ s.FLocation,
+ s.FOrder,
+ s.FRemark,
+ }).ToList();
+ }
+ }
+
///
/// 获取其他权限
///