CrazyIter_Bin 2 лет назад
Родитель
Сommit
569c585a10

+ 18 - 0
TEAMModelOS.FunctionV4/HttpTrigger/IESHttpTrigger.cs

@@ -70,6 +70,24 @@ namespace TEAMModelOS.FunctionV4.HttpTrigger
             return response;
 
 
+        }
+        /// <summary>
+        /// 行政班,学生毕业状态变更。
+        /// </summary>
+        /// <param name="req"></param>
+        /// <param name="log"></param>
+        /// <returns></returns>
+        [Function("graduate-change")]
+        public async Task<HttpResponseData> GraduateChange([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestData req) {
+            var response = req.CreateResponse(HttpStatusCode.OK);
+            string data = await new StreamReader(req.Body).ReadToEndAsync();
+            var json = JsonDocument.Parse(data).RootElement;
+            List<Class> graduate_classes= new List<Class>();
+            if (json.TryGetProperty("graduate_classes", out JsonElement _graduate_classes)) {
+                graduate_classes = _graduate_classes.ToObject<List<Class>>();
+                var ids = graduate_classes.Where(x => !string.IsNullOrWhiteSpace(x.id)).Select(x => x.id);
+            }
+            return response;
         }
         /// <summary>
         /// 数据推送接口

+ 30 - 3
TEAMModelOS/Controllers/Teacher/InitController.cs

@@ -620,14 +620,41 @@ namespace TEAMModelOS.Controllers
                 int nowYear = DateTimeOffset.UtcNow.Year;
                 int nowMonth = DateTimeOffset.UtcNow.Year;
                 int nowDay = DateTimeOffset.UtcNow.Year;
+                List<Class> graduate_classes = new List<Class>();
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<Class>
                     (queryText: $"SELECT value c  FROM c where (c.graduate = 0 or  IS_DEFINED(c.graduate) = false)",
                     requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Class-{school_code}") }))
                 {
-                    if (!string.IsNullOrWhiteSpace(item.periodId)) { 
-                    
+                    bool isgraduate = false;
+                    if (!string.IsNullOrWhiteSpace(item.periodId))
+                    {
+                        var period = school_base.period.Find(x => x.id.Equals(item.periodId));
+                        if (period != null)
+                        {
+                            var gradeCount = period.grades.Count();
+                            //2022-2016=6(待判断月份日期是否是毕业)  2022-2017=5(未毕业)
+                            if (nowYear - item.year >= gradeCount)
+                            {
+                                var semester = period.semesters.Find(x => x.start == 1);
+                                if (semester != null)
+                                {
+                                    if (nowMonth > semester.month && nowDay > semester.day) { 
+                                        isgraduate = true;
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (isgraduate)
+                    {
+                        graduate_classes.Add(item);
+                    }
+                    else {
+                        school_classes.Add(item);
                     }
-                    school_classes.Add(item);
+                }
+                if (graduate_classes.Any()) { 
+                //_httpTrigger()
                 }
                 //取得教室
                 List<Room> school_rooms = new List<Room>();