CrazyIter_Bin 3 년 전
부모
커밋
19a314d5ca

+ 21 - 3
TEAMModelBI/Controllers/OpenApi/GroupListController.cs

@@ -418,20 +418,38 @@ namespace TEAMModelAPI.Controllers
                     if (infos.Any())
                     {
                         infos.ToList().ForEach(x => {
-                            if (!list.members.Where(z => z.type == 1).Select(x => x.id).Contains(x.id))
+                            var mebJoined = list.members.Find(m => m.id.Equals(x.id) && m.type==1);
+                            if (mebJoined != null)
                             {
-                                GroupListService.JoinList(list, x.id , 1 , school);
+
+                            }
+                            else {
+                                (int status, GroupList stuList, Member member) = GroupListService.JoinList(list, x.id, 1, school);
                             }
+                            
                         });
                     }
                     if (stus.Any()) 
                     {
                         stus.ToList().ForEach(x => {
+                            var mebJoined = list.members.Find(m => m.id.Equals(x.id) && m.type == 2);
+                            if (mebJoined != null)
+                            {
+
+                            }
+                            else
+                            {
+                                (int status, GroupList stuList, Member member) = GroupListService.JoinList(list, x.id,2, school);
+                            }
+
+
+
                             if (!list.members.Where(z => z.type == 2).Select(x => x.id).Contains(x.id)) {
-                                GroupListService.JoinList(list, x.id ,2 , school);
+                                (int status, GroupList stuList, Member member) = GroupListService.JoinList(list, x.id ,2 , school);
                             }    
                         });
                     }
+
                     list = await GroupListService.CheckListNo(list, _azureCosmos, _dingDing, _option);
                     list = await GroupListService.UpsertList(list, _azureCosmos, _configuration, _serviceBus);
                     return Ok(new { unexist_student, unexist_tmdids, import_list=list });

+ 15 - 13
TEAMModelOS.SDK/Models/Service/GroupListService.cs

@@ -177,10 +177,10 @@ namespace TEAMModelOS.SDK
         /// <param name="type"></param>
         /// <param name="school"></param>
         /// <returns></returns>
-        public static async Task<(int status, GroupList stuList)> CodeJoinList(CosmosClient client, string _stuListNo, string userid, int type, string school)
+        public static async Task<(int status, GroupList stuList,Member member)> CodeJoinList(CosmosClient client, string _stuListNo, string userid, int type, string school)
         {
             var queryNo = $"SELECT  value(c)  FROM c where  c.no ='{_stuListNo}'";
-            (int status, GroupList stuList) data = (-1, null);
+            (int status, GroupList stuList,Member member) data = (-1, null,null);
             if (!string.IsNullOrEmpty(school))
             {
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: queryNo,
@@ -196,14 +196,14 @@ namespace TEAMModelOS.SDK
 
                 if (item.joinLock == 0) {
                     //状态=4 表示未开放加入。
-                    return (4, item);
+                    return (4, item, null) ;
                 }
                 data = JoinList(item, userid, type, school);
                 break;
             }
             return data;
         }
-        public static (int status, GroupList stuList) JoinList(GroupList stuList, string userid, int type, string school,Member member=null)
+        public static (int status, GroupList stuList, Member member) JoinList(GroupList stuList, string userid, int type, string school)
         {
             int status = -1;
             if (!string.IsNullOrWhiteSpace(stuList.school) && !string.IsNullOrWhiteSpace(school))
@@ -211,7 +211,7 @@ namespace TEAMModelOS.SDK
                 if (!stuList.school.Equals(school))
                 {
                     status = 3;//不允许跨校加入名单
-                    return (status, stuList);
+                    return (status, stuList,null);
                 }
             }
             string irs = string.Empty;
@@ -240,7 +240,7 @@ namespace TEAMModelOS.SDK
                     }
                 }
             }
-
+            Member member = null;
             if (string.IsNullOrEmpty($"{userid}"))
             {
                 //加入学生或醍摩豆ID为空
@@ -250,8 +250,8 @@ namespace TEAMModelOS.SDK
             {
                 if (type == 1)
                 {
-                    var student = stuList.members.Find(x => x.type == 1 && x.id.Equals(userid));
-                    if (student != null)
+                    member = stuList.members.Find(x => x.type == 1 && x.id.Equals(userid));
+                    if (member != null)
                     {
                         //重复加入
                         status = 2;
@@ -260,13 +260,14 @@ namespace TEAMModelOS.SDK
                     {
                         //加入成功
                         status = 0;
-                        stuList.members.Add(new Member { id = userid, type = type, irs = irs, no = irs });
+                        member = new Member { id = userid, type = type, irs = irs, no = irs };
+                        stuList.members.Add(member);
                     }
                 }
                 else if (type == 2)
                 {
-                    var student = stuList.members.Find(x => x.type == 2 && x.id.Equals(userid) && x.code.Equals(school));
-                    if (student != null)
+                    member = stuList.members.Find(x => x.type == 2 && x.id.Equals(userid) && x.code.Equals(school));
+                    if (member != null)
                     {
                         //重复加入
                         status = 2;
@@ -274,11 +275,12 @@ namespace TEAMModelOS.SDK
                     else
                     {
                         status = 0;
-                        stuList.members.Add(new Member { id = userid, code = school, type = type, irs = irs, no = irs });
+                        member = new Member { id = userid, code = school, type = type, irs = irs, no = irs };
+                        stuList.members.Add(member);
                     }
                 }
             }
-            return (status, stuList);
+            return (status, stuList, member);
         }
 
         public static async Task<GroupList> UpsertList(GroupList list, AzureCosmosFactory _azureCosmos, IConfiguration _configuration, AzureServiceBusFactory _serviceBus)

+ 2 - 2
TEAMModelOS/Controllers/Both/GroupListController.cs

@@ -124,7 +124,7 @@ namespace TEAMModelOS.Controllers
                     await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Student").CreateItemAsync<TmdUser>(tmduser, new PartitionKey("Base"));
                 }
             }
-            (int status, GroupList stuList) data = await GroupListService.CodeJoinList(client, $"{_stuListNo}", id, type: 1, $"{school}");
+            (int status, GroupList stuList,Member member) data = await GroupListService.CodeJoinList(client, $"{_stuListNo}", id, type: 1, $"{school}");
             //没有TmdUser时
             if (data.status == 0)
             {
@@ -206,7 +206,7 @@ namespace TEAMModelOS.Controllers
             {
                 type = 1;
             }
-            (int status, GroupList stuList) data = await GroupListService.CodeJoinList(client, $"{_stuListNo}", userid, type, school);
+            (int status, GroupList stuList, Member member) data = await GroupListService.CodeJoinList(client, $"{_stuListNo}", userid, type, school);
             if (data.status == 0)
             {
 

+ 5 - 2
TEAMModelOS/Controllers/School/NoticeController.cs

@@ -91,8 +91,11 @@ namespace TEAMModelOS.Controllers
                 {
                     request.startTime = now;
                 }
-                if (request.endTime <= request.startTime) {
-                    return BadRequest("结束时间必须大于开始时间");
+                if (request.publish == 1) {
+                    if (request.endTime <= request.startTime)
+                    {
+                        return BadRequest("结束时间必须大于开始时间");
+                    }
                 }
                 if (string.IsNullOrEmpty(request.id))
                 {