Bläddra i källkod

文件下载api 国交人员团权限特殊处理

leiy 9 månader sedan
förälder
incheckning
2a5ce2dd5e

+ 51 - 18
OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationInfoRepository.cs

@@ -912,34 +912,67 @@ namespace OASystem.Infrastructure.Repositories.Groups
         public async Task<JsonView> GetGroupNameList(int portType,int pageIndex,int pageSize, string groupName,int userId)
         {
             var _res = new JsonView() {  Code = 400 ,  Msg = MsgTips.Fail };
+            string sql = "";
+            string sqlWhere = "";
+            string mobileSqlWhere = "";
+            if (!string.IsNullOrEmpty(groupName))
+            {
+                sqlWhere += string.Format($@"And TeamName Like '%{groupName}%'");
+                mobileSqlWhere += string.Format($@"GroupName Like '%{groupName}%'");
+            }
+
+            List<int> userIds = new List<int>() { -1, 21 };
 
-            if (portType == 1 || portType == 2 || portType == 3) //web
+            if (!userIds.Contains(userId))
             {
-                string sqlWhere = "";
-                if (!string.IsNullOrEmpty(groupName))
-                {
-                    sqlWhere += string.Format($@"And TeamName Like '%{groupName}%'");
-                }
+                sqlWhere += string.Format($@"And JietuanOperator = {userId}");
+            }
+
 
-                List<int> userIds = new List<int>() { -1, 21 };
+            sql = string.Format($@"Select ROW_NUMBER()Over(Order By Id Desc) as RowNumber,Id,TeamName GroupName From  Grp_DelegationInfo 
+                                             Where IsDel = 0 {sqlWhere}");
 
-                if (!userIds.Contains(userId))
+            if (portType == 1) //web
+            { }
+            else if (portType == 2 || portType == 3)
+            {
+                //国交部 7 (主管 22,经理 32)团操操作权限  市场部 6 接团人
+                var userInfo = await _sqlSugar.Queryable<Sys_Users>().Where(it => it.Id == userId && it.IsDel == 0).FirstAsync();
+
+                if (userInfo != null)
                 {
-                    sqlWhere += string.Format($@"And JietuanOperator = {userId}");
+                    if (userInfo.DepId == 7)
+                    {
+                        if (userInfo.JobPostId != 22 || userInfo.JobPostId != 32)
+                        {
+                            if (!string.IsNullOrEmpty(mobileSqlWhere)) mobileSqlWhere = $" Where {mobileSqlWhere}";
+                            sql = string.Format($@"Select 
+											ROW_NUMBER()Over(Order By Id Desc) as RowNumber, 
+											Id,
+											GroupName
+										From (
+											Select 
+												  distinct 
+                                                  di.Id,
+												  di.TeamName GroupName 
+											From Grp_GroupsTaskAssignment gta With(NoLock)
+											Inner Join Grp_DelegationInfo di With(NoLock) On gta.DIId = di.Id 
+											Where gta.IsDel = 0 And di.IsDel = 0 And gta.UId = {userId}
+										) Temp {mobileSqlWhere}");
+                        }
+                    }
                 }
+            }
 
+            RefAsync<int> total = 0;
+            var groupNamePageData = await _sqlSugar.SqlQueryable<GroupNamePageView>(sql).ToPageListAsync(pageIndex, pageSize, total);
 
-                string sql = string.Format($@"Select ROW_NUMBER()Over(Order By Id Desc) as RowNumber,Id,TeamName GroupName From  Grp_DelegationInfo 
-                                             Where IsDel = 0 {sqlWhere}");
+            _res.Code = 200;
+            _res.Data = groupNamePageData;
+            _res.Msg = MsgTips.Succeed;
+            _res.Count = total;
 
-                RefAsync<int> total = 0;
-                var groupNamePageData = await _sqlSugar.SqlQueryable<GroupNamePageView>(sql).ToPageListAsync(pageIndex, pageSize, total);
 
-                _res.Code = 200;
-                _res.Data = groupNamePageData;
-                _res.Msg = MsgTips.Succeed;
-                _res.Count = total;
-            }
             return _res;
         }