diff --git a/FactorySystemBll/BaseBll.cs b/FactorySystemBll/BaseBll.cs index c214d0c..b45dd23 100644 --- a/FactorySystemBll/BaseBll.cs +++ b/FactorySystemBll/BaseBll.cs @@ -321,10 +321,11 @@ namespace FactorySystemBll } if (funcType > 0) { - List users = db.Queryable((a, b) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID)) - .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) - .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("a.FFactoryID in({0})", factoryId)) - .GroupBy("a.FID,a.FFactoryID,a.FName,a.FUser").Select("a.FID,a.FFactoryID,a.FName,a.FUser").ToList(); + List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, + JoinType.Left, a.FID == int.Parse(c.FUserID))) + .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) + .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) + .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); if (users.Count() > 0) { if (string.IsNullOrEmpty(factoryId)) @@ -517,10 +518,11 @@ namespace FactorySystemBll } if (funcType > 0) { - List users = db.Queryable((a, b) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID)) - .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) - .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("a.FFactoryID in({0})", factoryId)) - .GroupBy("a.FID,a.FFactoryID,a.FName,a.FUser").Select("a.FID,a.FFactoryID,a.FName,a.FUser").ToList(); + List users = db.Queryable((a, b, c) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID, + JoinType.Left, a.FID == int.Parse(c.FUserID))) + .Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString())) + .Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("c.FFactoryID in({0})", factoryId)) + .GroupBy("a.FID,c.FFactoryID,a.FName,a.FUser").Select("a.FID,c.FFactoryID,a.FName,a.FUser").ToList(); if (users.Count() > 0) { if (string.IsNullOrEmpty(factoryId)) diff --git a/FactorySystemBll/UserBll.cs b/FactorySystemBll/UserBll.cs index 97f6c92..ca0b7ab 100644 --- a/FactorySystemBll/UserBll.cs +++ b/FactorySystemBll/UserBll.cs @@ -158,8 +158,11 @@ namespace FactorySystemBll List roles = new List(); if (null == roleIds || string.IsNullOrEmpty(roleIds.ToString())) { - TUser userInfo = db.Queryable().Where(s => s.FID == userId && s.FDeleted != (int)Constant.DeleteCode.已删除).First(); - roleIds = userInfo.FRoleID; + //TUser userInfo = db.Queryable().Where(s => s.FID == userId && s.FDeleted != (int)Constant.DeleteCode.已删除).First(); + //roleIds = userInfo.FRoleID; + + List fPower = db.Queryable().Where(s => s.FUserID == userId.ToString()).ToList(); + roleIds= string.Join(",", fPower.Select(m => m.FRole).Distinct().ToList()); } roles = roleIds.ToString().Trim(',').Split(',').ToList();