CrazyIter_Bin 2 tahun lalu
induk
melakukan
a50e184e19

+ 35 - 7
TEAMModelOS.SDK/Models/Cosmos/BI/ResponseData.cs

@@ -5,10 +5,10 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace TEAMModelOS.SDK.Models.Cosmos.BI
+namespace TEAMModelOS.SDK.Models.Dtos
 {
 
-    
+
 
     /// <summary>
     /// 通用返回数据结构
@@ -24,17 +24,45 @@ namespace TEAMModelOS.SDK.Models.Cosmos.BI
     /// <summary>
     /// 第三方获取学校结构
     /// </summary>
-    public class OSchool 
+    public class OSchool
     {
         public string id { get; set; }
         public string name { get; set; }
         public string picture { get; set; }
     }
+    
+    /// <summary>
+    /// 第三方获取学校结构
+    /// </summary>
+    public class OCourse
+    {
+        public string id { get; set; }
+        public string name { get; set; }
+        public string code { get; set; }
+        /// <summary>
+        /// 科目编码
+        /// </summary>
+        public SubjectSimple subject { get; set; }
+        /// <summary>
+        /// 学段编码
+        /// </summary>
+        public PeriodSimple period { get; set; }
+        public string desc { get; set; }
+        public Schedule schedule { get; set; }
+        public string no { get; set; }
+        public string creatorId { get; set; }
+        /// <summary>
+        /// 学校编码或教师tmdid
+        /// </summary>
+        public string school { get; set; }
+        //哪一学年的课程
+        public int year { get; set; }
+    }
 
     /// <summary>
     /// 名单列表信息
     /// </summary>
-    public class OGroupList 
+    public class OGroupList
     {
         public string id { get; set; }
         public string name { get; set; }
@@ -48,7 +76,7 @@ namespace TEAMModelOS.SDK.Models.Cosmos.BI
     /// <summary>
     /// 名单成员信息
     /// </summary>
-    public class OGgroup 
+    public class OGgroup
     {
         public string id { get; set; }
         public string name { get; set; }
@@ -82,7 +110,7 @@ namespace TEAMModelOS.SDK.Models.Cosmos.BI
     /// <summary>
     /// 教室课程信息
     /// </summary>
-    public class OCoreUer 
+    public class OCoreUer
     {
         public string id { get; set; }
         public string name { get; set; }
@@ -117,7 +145,7 @@ namespace TEAMModelOS.SDK.Models.Cosmos.BI
     /// <summary>
     /// 批量导入成功返回教师信息
     /// </summary>
-    public class OTeachers 
+    public class OTeachers
     {
         public string id { get; set; }
         public string name { get; set; }

+ 41 - 2
TEAMModelOS/Controllers/OpenApi/OpenApiService.cs

@@ -18,10 +18,10 @@ using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
-using TEAMModelOS.SDK.Models.Cosmos.BI;
 using TEAMModelOS.SDK.Models.Table;
 using TEAMModelOS.SDK.Helper.Common.ReflectorExtensions;
 using TEAMModelOS.SDK.Context.Constant;
+using TEAMModelOS.SDK.Models.Dtos;
 
 namespace TEAMModelOS.Controllers
 {
@@ -529,7 +529,46 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         public static async Task<ResponseData<dynamic>> GetTeacherTeach(AzureCosmosFactory _azureCosmos, DingDing _dingDing, string bizId, string school, JsonElement json) {
 
-            return null;
+            try {
+                if (!json.TryGetProperty("tmdid", out JsonElement _tmdid)) {
+                    json.TryGetProperty("period", out JsonElement _period);
+                    List<OCourse> courses = new List<OCourse>();
+                    var query = $"SELECT distinct  c.code,c.id,c.no,c.name,c.period,c.subject,c.scope ,c['desc'] ,c.creatorId ,  c.year ,s as schedule FROM c  join  s in  c.schedule  where s.teacherId='{_tmdid}' ";
+                    if (!string.IsNullOrWhiteSpace($"{_period}"))
+                    {
+                        query = $"{query} and   c.period.id ='{_period}'";
+                    }
+                    await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<OCourse>(queryText: query,
+                            requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Course-{school}") }))
+                    {
+                        courses.Add(item);
+                    }
+                    var group = courses.GroupBy(x => x.id).Select(g => new { key =  g.Key, list=g.ToList() });
+                    List<Course> coursesR = new List<Course>();
+                    group.ToList().ForEach(x => {
+                        var first = x.list.First();
+                        coursesR.Add(new Course
+                        {
+                            id = x.key,
+                            name = first.name,
+                            code = first.code,
+                            no = first.no,
+                            period = first.period,
+                            subject = first.subject,
+                            desc = first.desc,
+                            creatorId = first.creatorId,
+                            year = first.year,
+                            schedule = x.list.Select(x => x.schedule).ToList()
+                        }); ;
+                    });
+
+
+                }
+                return null;
+            } catch (Exception ex) {
+                await _dingDing.SendBotMsg($"OpenApi,{Environment.GetEnvironmentVariable("Option:Location")} OpenApiService/GetTeacherTeach()   参数:bizId:{bizId},school:{school},json:{json.ToJsonString()} \n  {ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
+                return new ResponseData<dynamic>() { code = RespondCode.Error, msg = "服务器错误" };
+            }
         }
 
         /// <summary>

+ 1 - 1
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScTeacherController.cs

@@ -10,7 +10,7 @@ using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
-using TEAMModelOS.SDK.Models.Cosmos.BI;
+using TEAMModelOS.SDK.Models.Dtos;
 
 namespace TEAMModelOS.Controllers
 {