CrazyIter_Bin 1 年之前
父節點
當前提交
475734253f

+ 8 - 0
TEAMModelOS.SDK/Models/Cosmos/School/CourseBase.cs

@@ -71,6 +71,14 @@ namespace TEAMModelOS.SDK.Models
         /// </summary>
         public string creatorId { get; set; }
         /// <summary>
+        /// 创建者的id 
+        /// </summary>
+        public string creatorName { get; set; }
+        /// <summary>
+        /// 创建者的id 
+        /// </summary>
+        public string creatorPicture { get; set; }
+        /// <summary>
         /// 学校编码
         /// </summary>
         public string school { get; set; }

+ 23 - 3
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -91,11 +91,28 @@ namespace TEAMModelOS.Controllers.Both
                             string partitionKey = $"{scope}".Equals("school", StringComparison.OrdinalIgnoreCase) ? $"CourseBase-{_code}": "CourseBase";
                             string baseSql = $"select value c from c where c.period.id='{_periodId}'";
                             List<CourseBase> courseBases = new List<CourseBase>();
+                            HashSet<string>teacherIds = new HashSet<string>();
                             await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, tbname)
                             .GetItemQueryIterator<CourseBase>(queryText: baseSql, requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey(partitionKey) }))
                             {
+                                if (!string.IsNullOrWhiteSpace(item.creatorId)) {
+                                    teacherIds.Add(item.creatorId);
+                                }
                                 courseBases.Add(item);
                             }
+                            List<IdNameCode> teachers = new List<IdNameCode>();
+                            if (teacherIds.Count>0) {
+                                string teacherSQLBase = $"select   value c.id,c.name,c.picture from c where  c.id   in ({string.Join(",", teacherIds.Select(z => $"'{z}'"))}) ";
+                                var resultBase = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<IdNameCode>(teacherSQLBase, $"Base");
+                                teachers = resultBase.list;
+                            }
+                            courseBases.ForEach(z => {
+                                var teacher = teachers.Find(x => x.id.Equals(z.creatorId));
+                                if (teacher!= null) {
+                                    z.creatorName=teacher.name;
+                                    z.creatorPicture=teacher.picture;
+                                }
+                            });
                             return Ok(new { courseBases = courseBases.OrderByDescending(z => z._ts) });
                         }
                     case bool when $"{grant_type}".Equals("delete", StringComparison.OrdinalIgnoreCase):
@@ -446,6 +463,9 @@ namespace TEAMModelOS.Controllers.Both
                                             {
                                                 roomIds.Add(schedule.roomId);
                                             }
+                                            if (schedule.assistants!=null  && schedule.assistants.Count>0) {
+                                                teacherIds.Union(schedule.assistants);
+                                            }
                                         }
                                         has_schedule = true;
                                     }
@@ -453,7 +473,7 @@ namespace TEAMModelOS.Controllers.Both
                                 //匹配建议的班级和教师
                                 List<Class> classes = new List<Class>();
                                 List<SchoolTeacher> teachers = new List<SchoolTeacher>();
-                                List<Teacher> teachersBases = new List<Teacher>();
+                                List<IdNameCode> teachersBases = new List<IdNameCode>();
                                 if (!has_schedule)
                                 {
                                     //如果没有找到排课安排信息。则可以进行建议升学年方式处理
@@ -478,8 +498,8 @@ namespace TEAMModelOS.Controllers.Both
                                 }else
                                 {
                                     groups= await GroupListService.GetGroupListByListids(_azureCosmos.GetCosmosClient(), _dingDing, groupIds.ToList(), school);
-                                    string teacherSQLBase = $"select   value c from c where  c.id   in ({string.Join(",", teacherIds.Select(z => $"'{z}'"))}) ";
-                                    var resultBase = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<Teacher>(teacherSQLBase, $"Base");
+                                    string teacherSQLBase = $"select   value c.id,c.name,c.picture from c where  c.id   in ({string.Join(",", teacherIds.Select(z => $"'{z}'"))}) ";
+                                    var resultBase = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<IdNameCode>(teacherSQLBase, $"Base");
                                     teachersBases = resultBase.list;
                                 }