CrazyIter_Bin 3 years ago
parent
commit
3d53a3e9fc

+ 181 - 0
TEAMModelAPI/Controllers/School/CourseController.cs

@@ -0,0 +1,181 @@
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+using TEAMModelOS.Models;
+using TEAMModelOS.SDK;
+using TEAMModelOS.SDK.DI;
+using System.Text.Json;
+using TEAMModelOS.SDK.Models;
+using TEAMModelOS.SDK.Extension;
+using Azure.Cosmos;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Options;
+using System.IO;
+using System.Dynamic;
+using System.Net.Http;
+using System.Net;
+using Newtonsoft.Json;
+using System.Linq;
+using StackExchange.Redis;
+using static TEAMModelOS.SDK.Models.Teacher;
+using Microsoft.Extensions.Configuration;
+using TEAMModelOS.Filter;
+using Microsoft.AspNetCore.Authorization;
+using HTEXLib.COMM.Helpers;
+using TEAMModelOS.SDK.Models.Service;
+namespace TEAMModelAPI.Controllers
+{
+    [ProducesResponseType(StatusCodes.Status200OK)]
+    [ProducesResponseType(StatusCodes.Status400BadRequest)]
+    [ApiController]
+    [Route("school")]
+    public class CourseController : ControllerBase
+    {
+        public AzureCosmosFactory _azureCosmos;
+        private readonly AzureStorageFactory _azureStorage;
+        private readonly AzureRedisFactory _azureRedis;
+        private readonly DingDing _dingDing;
+        private readonly Option _option;
+        private readonly IConfiguration _configuration;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        private readonly AzureServiceBusFactory _serviceBus;
+        public CourseController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, DingDing dingDing, IOptionsSnapshot<Option> option, IConfiguration configuration, AzureServiceBusFactory serviceBus)
+        {
+            _azureCosmos = azureCosmos;
+            _azureStorage = azureStorage;
+            _azureRedis = azureRedis;
+            _dingDing = dingDing;
+            _option = option?.Value;
+            _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
+            _serviceBus = serviceBus;
+        }
+        /// <summary>
+        ///  获取指定学段作息
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("get-period-timetable")]
+        [ApiToken(Auth = "1301", Name = "试卷和评测的条件信息", RW = "R", Limit = false)]
+        public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
+        {
+            json.TryGetProperty("periodId", out JsonElement _periodId);
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            School data = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
+            var period = data.period.Find(x => x.id.Equals($"{_periodId}"));
+            if (period != null)
+            {
+                return Ok(new { period.subjects, period.timetable, period.grades, period.majors });
+            }
+            else
+            {
+                return Ok(new { error = 1, msg = "学段不存在!" });
+            }
+        }
+       
+
+        [ProducesDefaultResponseType]
+        [HttpPost("upsert-course-info")]
+        [ApiToken(Auth = "1302", Name = "课程详细信息", RW = "R", Limit = false)]
+        public async Task<IActionResult> UpsertCourseInfo(JsonElement json)
+        {
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            if (!json.TryGetProperty("course", out JsonElement _course)) { return Ok(new { error = 1, msg = "课程对象不存在" }); }
+            var courseDto = _course.ToObject<CourseDto>();
+            Course course = null;
+            if (courseDto != null && courseDto.Valid().isVaild) {
+                School data = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
+                var period = data.period.Find(x => x.id.Equals($"{courseDto.periodId}"));
+                if (period != null)
+                {
+                    var subject = period.subjects.Find(x => x.id.Equals($"{courseDto.subjectId}"));
+                    if (subject != null)
+                    {
+                        if (string.IsNullOrWhiteSpace(courseDto?.id))
+                        {
+                            course = new Course
+                            {
+                                pk = "Course",
+                                id = Guid.NewGuid().ToString(),
+                                code = $"Course-{school}",
+                                name = courseDto.name,
+                                subject = new SubjectSimple { id = subject.id, name = subject.name  },
+                                period= new PeriodSimple { id = period.id, name = period.name },
+
+                            };
+                        }
+                        else
+                        {
+
+                        }
+                        return Ok(new { period.subjects, period.timetable, period.grades, period.majors });
+                    }
+                    else {
+                        return Ok(new { error = 2, msg = "科目不存在!" });
+                    }
+                }
+                else
+                {
+                    return Ok(new { error = 2, msg = "学段不存在!" });
+                }
+            }
+            else
+            {
+                return Ok(new { error = 3, msg = courseDto.Valid() });
+            }
+            
+        }
+        [ProducesDefaultResponseType]
+        [HttpPost("get-course-list")]
+        [ApiToken(Auth = "1303", Name = "获取课程列表信息", RW = "R", Limit = false)]
+        public async Task<IActionResult> GetCourseList(JsonElement json)
+        {
+            var client = _azureCosmos.GetCosmosClient();
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            json.TryGetProperty("periodId", out JsonElement periodId);
+            json.TryGetProperty("subjectId", out JsonElement subjectId);
+            StringBuilder sql = new StringBuilder($"SELECT c.id,c.name,c.subject,c.period,c.scope,c.no,c.school FROM c where 1=1 ");
+            if (!string.IsNullOrWhiteSpace($"{periodId}"))
+            {
+                sql.Append($" and c.period.id='{periodId}'");
+            }
+            if (!string.IsNullOrWhiteSpace($"{subjectId}"))
+            {
+                sql.Append($" and c.subject.id='{subjectId}'");
+            }
+            List<dynamic> courses = new List<dynamic>();
+            await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").
+                    GetItemQueryIterator<dynamic>(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Course-{school}") }))
+            {
+                courses.Add(item);
+            }
+            return Ok(new { courses });
+        }
+
+        [ProducesDefaultResponseType]
+        [HttpPost("get-course-info")]
+        [ApiToken(Auth = "1304", Name = "课程详细信息", RW = "R", Limit = false)]
+        public async Task<IActionResult> GetCourseInfo(JsonElement json)
+        {
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            json.TryGetProperty("courseId", out JsonElement courseId);
+            Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School")
+               .ReadItemStreamAsync($"{courseId}", new PartitionKey($"Course-{school}"));
+            if (response.Status == 200)
+            {
+                JsonDocument document = JsonDocument.Parse(response.Content);
+                Course course = document.RootElement.Deserialize<Course>();
+                return Ok(new { course.name, course.id, course.subject, course.period, course.scope, course.school, course.no, course.desc, course.schedule });
+            }
+            else
+            {
+                return Ok(new { error = 1, msg = "课程不存在!" });
+            }
+        }
+
+
+    }
+}

+ 28 - 4
TEAMModelAPI/Controllers/School/ExamController.cs

@@ -53,10 +53,34 @@ namespace TEAMModelAPI.Controllers
             _option = option?.Value;
             _configuration = configuration;
         }
-
+        /// <summary>
+        ///  获取试卷和评测的条件信息
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("get-paper-exam-condition")]
+        [ApiToken(Auth = "1101", Name = "试卷和评测的条件信息", RW = "R", Limit = false)]
+        public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
+        {
+            json.TryGetProperty("periodId", out JsonElement _periodId);
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            School data = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
+            var exmaType = new { type = new List<string> { "regular", "simulation", "normal" } };//regula ,正规考,  simulation 模拟靠考,normal 普通考
+            var exmaMode = new { type = new List<string> { "0", "1", "2" } };//0 线上评测,  1 课中评测 ,2 阅卷评测
+            var period = data.period.Find(x => x.id.Equals($"{_periodId}"));
+            if (period != null)
+            {
+                return Ok(new { period.subjects, period.analysis, period.grades, exmaType, exmaMode });
+            }
+            else
+            {
+                return Ok(new { error = 1, msg = "学段不存在!" });
+            }
+        }
         [ProducesDefaultResponseType]
         [HttpGet("import-exam")]
-        [ApiToken(Auth = "201", Name = "汇入评测基础数据", Limit = false)]
+        [ApiToken(Auth = "1102", Name = "汇入评测基础数据", Limit = false)]
         public async Task<IActionResult> importExam(JsonElement request)
         {
             //获取评测的ID
@@ -78,7 +102,7 @@ namespace TEAMModelAPI.Controllers
         }
         [ProducesDefaultResponseType]
         [HttpGet("upsert-record")]
-        [ApiToken(Auth = "202", Name = "批量汇入作答数据", Limit = false)]
+        [ApiToken(Auth = "1103", Name = "批量汇入作答数据", Limit = false)]
         public async Task<IActionResult> upsertRecord(JsonElement request)
         {
 
@@ -341,7 +365,7 @@ namespace TEAMModelAPI.Controllers
         }
         [ProducesDefaultResponseType]
         [HttpGet("parse-word")]
-        [ApiToken(Auth = "203", Name = "录入试卷数据", Limit = false)]
+        [ApiToken(Auth = "1104", Name = "录入试卷数据", Limit = false)]
         public async Task<IActionResult> ParseWord([FromForm] FileDto fileDto)
         {
             if (!FileType.GetExtention(fileDto.file.FileName).ToLower().Equals("docx"))

+ 57 - 43
TEAMModelAPI/Controllers/School/GroupListController.cs

@@ -63,7 +63,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-group-list")]
-        [ApiToken(Auth = "109", Name = "学校名单列表", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1201", Name = "学校名单列表", RW = "R", Limit = false)]
         public async Task<IActionResult> GetGroupList(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -157,10 +157,9 @@ namespace TEAMModelAPI.Controllers
                 groupLists = groupLists.Select(x => new { x.id, x.type, x.name, x.periodId, x.school, x.scope, x.year })
             });
         }
-
         [ProducesDefaultResponseType]
         [HttpPost("get-group-members")]
-        [ApiToken(Auth = "110", Name = "获取名单详细信息和成员信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1202", Name = "获取名单详细信息和成员信息", RW = "R", Limit = false)]
         public async Task<IActionResult> GetGroupMembers(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -170,8 +169,6 @@ namespace TEAMModelAPI.Controllers
             (List<RMember> members, List<RGroupList> groups) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, listids, $"{school}");
             return Ok(new { groups = groups.Select(x => new { x.name, x.no, x.periodId, x.school, x.type, x.year, x.tcount, x.scount, x.leader, x.members, x.id }), members });
         }
-
-
         /// <summary>
         /// 导入行政班学生
         /// </summary>
@@ -179,7 +176,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("import-class-members")]
-        [ApiToken(Auth = "111", Name = "导入行政班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1203", Name = "导入行政班学生", RW = "W", Limit = false)]
         public async Task<IActionResult> ImportClassMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -213,7 +210,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("update-class-members")]
-        [ApiToken(Auth = "112", Name = "更新行政班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1204", Name = "更新行政班学生", RW = "W", Limit = false)]
         public async Task<IActionResult> UpdateClassMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -249,7 +246,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("remove-class-members")]
-        [ApiToken(Auth = "113", Name = "移除行政班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1205", Name = "移除行政班学生", RW = "W", Limit = false)]
         public async Task<IActionResult> RemoveClassMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -291,46 +288,24 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("upsert-teach-group")]
-        [ApiToken(Auth = "114", Name = "创建或更新教学班", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1206", Name = "创建或更新教学班", RW = "W", Limit = false)]
         public async Task<IActionResult> UpsertTeachGroup(JsonElement json) {
             var (id, school) = HttpContext.GetApiTokenInfo();
             if (!json.TryGetProperty("groupList", out JsonElement _groupList)) { return Ok(new { error=1,msg="名单对象不存在"}); }
             var list= _groupList.ToObject<GroupListDto>();
             GroupList groupList = null;
-            if (list != null  && list.Valid().isVaild) {
-                if (string.IsNullOrWhiteSpace(list.id))
+          
+            if (list != null && list.Valid().isVaild)
+            {
+                School data = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
+                Period period = data.period.Find(x => x.id.Equals($"{list.periodId}"));
+                if (period != null)
                 {
-                      groupList = new GroupList()
+                    if (string.IsNullOrWhiteSpace(list.id))
                     {
-                        id=Guid.NewGuid ().ToString(),
-                        code=$"GroupList-{school}",
-                        name=list.name,
-                        periodId=list.periodId,
-                        scope="school",
-                        school=school,
-                        type="teach",
-                        year=list.year,
-                        froms=3
-                    };
-                    groupList = await GroupListService.CheckListNo(groupList, _azureCosmos, _dingDing, _option);
-                    await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).CreateItemAsync(groupList,new PartitionKey(groupList.code));
-                }
-                else {
-                    Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemStreamAsync($"{list.id}", new PartitionKey($"GroupList-{school}"));
-                    if (response.Status==200)
-                    {
-                        JsonDocument jsonDocument = JsonDocument.Parse(response.Content);
-                        groupList = jsonDocument.RootElement.ToObject<GroupList>();
-                        groupList.name=string.IsNullOrWhiteSpace(list.name)?groupList.name: list.name;
-                        groupList.periodId = string.IsNullOrWhiteSpace(list.periodId) ? groupList.periodId : list.periodId;
-                        groupList.school=school;
-                        groupList.scope = "school";
-                        groupList.froms=3;
-                        await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReplaceItemAsync(groupList, groupList.id, new PartitionKey(groupList.code));
-                    }
-                    else {
-                          groupList = new GroupList()
+                        groupList = new GroupList()
                         {
+                            pk = "GroupList",
                             id = Guid.NewGuid().ToString(),
                             code = $"GroupList-{school}",
                             name = list.name,
@@ -344,8 +319,47 @@ namespace TEAMModelAPI.Controllers
                         groupList = await GroupListService.CheckListNo(groupList, _azureCosmos, _dingDing, _option);
                         await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).CreateItemAsync(groupList, new PartitionKey(groupList.code));
                     }
+                    else
+                    {
+                        Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemStreamAsync($"{list.id}", new PartitionKey($"GroupList-{school}"));
+                        if (response.Status == 200)
+                        {
+                            JsonDocument jsonDocument = JsonDocument.Parse(response.Content);
+                            groupList = jsonDocument.RootElement.ToObject<GroupList>();
+                            groupList.name = string.IsNullOrWhiteSpace(list.name) ? groupList.name : list.name;
+                            groupList.periodId = string.IsNullOrWhiteSpace(list.periodId) ? groupList.periodId : list.periodId;
+                            groupList.school = school;
+                            groupList.scope = "school";
+                            groupList.froms = 3;
+                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReplaceItemAsync(groupList, groupList.id, new PartitionKey(groupList.code));
+                        }
+                        else
+                        {
+                            groupList = new GroupList()
+                            {
+                                id = Guid.NewGuid().ToString(),
+                                code = $"GroupList-{school}",
+                                name = list.name,
+                                periodId = list.periodId,
+                                scope = "school",
+                                school = school,
+                                type = "teach",
+                                year = list.year,
+                                froms = 3
+                            };
+                            groupList = await GroupListService.CheckListNo(groupList, _azureCosmos, _dingDing, _option);
+                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).CreateItemAsync(groupList, new PartitionKey(groupList.code));
+                        }
+                    }
+                }
+                else {
+                    return Ok(new { error = 2, msg ="学段不存在!" });
                 }
             }
+            else
+            {
+                return Ok(new { error = 3, msg = list.Valid() });
+            }
             return Ok(new { groupList });
         }
 
@@ -356,7 +370,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("import-teach-members")]
-        [ApiToken(Auth = "115", Name = "导入教学班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1207", Name = "导入教学班学生", RW = "W", Limit = false)]
         public async Task<IActionResult> ImportTeachMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -426,7 +440,7 @@ namespace TEAMModelAPI.Controllers
                 }
                 else
                 {
-                    return Ok(new { error = valid, msg = "名单列表格式错误!" });
+                    return Ok(new { error = 3, msg = valid });
                 }
             }
             else
@@ -442,7 +456,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("remove-teach-members")]
-        [ApiToken(Auth = "116", Name = "移除教学班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1208", Name = "移除教学班学生", RW = "W", Limit = false)]
         public async Task<IActionResult> RemoveTeachMembers(JsonElement json) {
             var (id, school) = HttpContext.GetApiTokenInfo();
             json.TryGetProperty("stuids", out JsonElement _stuids);

+ 7 - 74
TEAMModelAPI/Controllers/School/SchoolController.cs

@@ -59,7 +59,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpGet("get-school-info")]
-        [ApiToken(Auth = "101",Name = "学校基础信息", RW = "R", Limit =false)]
+        [ApiToken(Auth = "1001",Name = "学校基础信息", RW = "R", Limit =false)]
         public async Task<IActionResult> GetSchoolInfo()
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -81,7 +81,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpGet("get-teacher-list")]
-        [ApiToken(Auth = "102", Name = "学校教师列表", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1002", Name = "学校教师列表", RW = "R", Limit = false)]
         public async Task<IActionResult> GetTeacherList()
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -102,7 +102,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-teacher-info")]
-        [ApiToken(Auth = "103", Name = "学校教师信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1003", Name = "学校教师信息", RW = "R", Limit = false)]
         public async Task<IActionResult> GetTeacherInfo(JsonElement json )
         {
             json.TryGetProperty("tmdid", out JsonElement _tmdid);
@@ -138,50 +138,7 @@ namespace TEAMModelAPI.Controllers
             }
         }
        
-        [ProducesDefaultResponseType]
-        [HttpPost("get-course-list")]
-        [ApiToken(Auth = "104", Name = "获取课程列表信息",RW ="R", Limit = false)]
-        public async Task<IActionResult> GetCourseList(JsonElement json) {
-            var client = _azureCosmos.GetCosmosClient();
-            var (id, school) = HttpContext.GetApiTokenInfo();
-            json.TryGetProperty("periodId", out JsonElement periodId);
-            json.TryGetProperty("subjectId", out JsonElement subjectId);
-            StringBuilder sql = new StringBuilder($"SELECT c.id,c.name,c.subject,c.period,c.scope,c.no,c.school FROM c where 1=1 ");
-            if (!string.IsNullOrWhiteSpace($"{periodId}")) {
-                sql.Append($" and c.period.id='{periodId}'");
-            }
-            if (!string.IsNullOrWhiteSpace($"{subjectId}"))
-            {
-                sql.Append($" and c.subject.id='{subjectId}'");
-            }
-            List<dynamic> courses = new List<dynamic>();
-            await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").
-                    GetItemQueryIterator<dynamic>(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Course-{school}") }))
-            {
-                courses.Add(item);
-            }
-            return Ok(new { courses });
-        }
-       
-        [ProducesDefaultResponseType]
-        [HttpPost("get-course-info")]
-        [ApiToken(Auth = "105", Name = "课程详细信息", RW = "R", Limit = false)]
-        public async Task<IActionResult> GetCourseInfo(JsonElement json)
-        {
-            var (id, school) = HttpContext.GetApiTokenInfo();
-            json.TryGetProperty("courseId", out JsonElement courseId);
-            Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School")
-               .ReadItemStreamAsync($"{courseId}", new PartitionKey($"Course-{school}"));
-            if (response.Status == 200)
-            {
-                JsonDocument document= JsonDocument.Parse(response.Content);
-                Course course= document.RootElement.Deserialize<Course>();
-                return Ok(new { course.name,course.id, course.subject, course .period, course .scope, course.school, course .no, course .desc, course.schedule});
-            }
-            else {
-                return Ok(new { error=1,msg="课程不存在!"});
-            }
-        }
+      
         /// <summary>
         /// 获取物理教室列表
         /// </summary>
@@ -189,7 +146,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-room-list")]
-        [ApiToken(Auth = "106", Name = "获取物理教室列表", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1004", Name = "获取物理教室列表", RW = "R", Limit = false)]
         public async Task<IActionResult> GetRoomList(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -216,7 +173,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-room-info")]
-        [ApiToken(Auth = "107", Name = "获取物理教室详细信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1005", Name = "获取物理教室详细信息", RW = "R", Limit = false)]
         public async Task<IActionResult> GetRoomInfo(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -235,30 +192,6 @@ namespace TEAMModelAPI.Controllers
             }
         }
 
-        /// <summary>
-        ///  获取试卷和评测的条件信息
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
-        [ProducesDefaultResponseType]
-        [HttpPost("get-paper-exam-condition")]
-        [ApiToken(Auth = "108", Name = "试卷和评测的条件信息", RW = "R", Limit = false)]
-        public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
-        {
-            json.TryGetProperty("periodId", out JsonElement _periodId);
-            var (id, school) = HttpContext.GetApiTokenInfo();
-            School data = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
-            var exmaType = new { type = new List<string> { "regular", "simulation", "normal" } };//regula ,正规考,  simulation 模拟靠考,normal 普通考
-            var exmaMode = new { type = new List<string> { "0", "1", "2" } };//0 线上评测,  1 课中评测 ,2 阅卷评测
-            var period = data.period.Find(x => x.id.Equals($"{_periodId}"));
-            if (period != null)
-            {
-                return Ok(new { period.subjects, period.analysis, period.grades, exmaType, exmaMode });
-            }
-            else
-            {
-                return Ok(new { error = 1, msg = "学段不存在!" });
-            }
-        }
+        
     }
 }

+ 14 - 9
TEAMModelOS.SDK/Models/Cosmos/School/Course.cs

@@ -83,15 +83,7 @@ namespace TEAMModelOS.SDK.Models
 
     }
 
-    public class Customize
-    {
-        public string id { get; set; }
-        public string name { get; set; }
-        public Teachers teacher { get; set; } = new Teachers();
-        public string scope { get; set; }
-        public string code { get; set; }
-
-    }
+    
     public class TimeInfo
     {
         public string id { get; set; }
@@ -122,4 +114,17 @@ namespace TEAMModelOS.SDK.Models
         public string id { get; set; }
         public string name { get; set; }
     }
+
+    public class CourseDto
+    {
+        public string id { get; set; }
+        [Required(ErrorMessage = "{0} 课程的名称必须填写")]
+        public string name { get; set; }
+        public string desc { get; set; }
+        public string no { get; set; }
+        [Required(ErrorMessage = "{0} 课程的科目id必须填写")]
+        public string subjectId { get; set; }
+        [Required(ErrorMessage = "{0} 课程的学段id必须填写")]
+        public string periodId { get; set; }
+    }
 }

+ 2 - 1
TEAMModelOS/Controllers/Student/TmdUserController.cs

@@ -156,7 +156,8 @@ namespace TEAMModelOS.Controllers
             }
             catch (Exception ex)
             {
-                await _dingDing.SendBotMsg($"IES5,{_option.Location},Teacher/GetTeacherInfo()\n{ex.Message}{ex.StackTrace}", GroupNames.醍摩豆服務運維群組);
+                request.TryGetProperty("id_token", out JsonElement id_token);
+                await _dingDing.SendBotMsg($"IES5,{_option.Location},Teacher/GetTeacherInfo()\n{ex.Message}{ex.StackTrace}\n{id_token}", GroupNames.醍摩豆服務運維群組);
                 return BadRequest();
             }
         }

+ 0 - 1
TEAMModelOS/appsettings.Development.json

@@ -21,7 +21,6 @@
   },
   "Azure": {
     "Storage": {
-      //"ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodelstorage;AccountKey=Yq7D4dE6cFuer2d2UZIccTA/i0c3sJ/6ITc8tNOyW+K5f+/lWw9GCos3Mxhj47PyWQgDL8YbVD63B9XcGtrMxQ==;EndpointSuffix=core.chinacloudapi.cn",
       "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodeltest;AccountKey=O2W2vadCqexDxWO+px+QK7y1sHwsYj8f/WwKLdOdG5RwHgW/Dupz9dDUb4c1gi6ojzQaRpFUeAAmOu4N9E+37A==;EndpointSuffix=core.chinacloudapi.cn"
     },
     "Cosmos": {