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(); + } + } + /// /// 获取其他权限 ///