Parcourir la source

update . 处理开放平台多语系

CrazyIter_Bin il y a 2 ans
Parent
commit
50afd43155

+ 1 - 1
TEAMModelOS.SDK/DI/HttpTrigger/WebHookHttpTrigger.cs

@@ -48,7 +48,7 @@ namespace TEAMModelOS.SDK.DI
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
         [Function("school-auth-change")]
         [Function("school-auth-change")]
-        [ApiToken(Auth = "1001", Name = "学校数据授权变更", TName = "", EName = "", RWN = "N")]
+        [ApiToken(Auth = "1001", Name = "学校数据授权变更", TName = "變更名單成員資料", EName = "Name List Member Changes", RWN = "N")]
         public async Task<HttpResponseData> NoticeSchoolAuthChange([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "webhook/school-auth-change")] HttpRequestData request)
         public async Task<HttpResponseData> NoticeSchoolAuthChange([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "webhook/school-auth-change")] HttpRequestData request)
         {
         {
             var response = request.CreateResponse(HttpStatusCode.OK);
             var response = request.CreateResponse(HttpStatusCode.OK);

+ 3 - 3
TEAMModelOS/Controllers/OpenApi/Business/BizCourseController.cs

@@ -44,7 +44,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-course-list")]
         [HttpPost("get-course-list")]
-        [ApiToken(Auth = "1301", Name = "获取课程列表信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1301", Name = "获取课程列表信息",TName = "取得課程清單", EName = "Obtain course list information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetCourseList(JsonElement json)
         public async Task<IActionResult> GetCourseList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -59,7 +59,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-course-info")]
         [HttpPost("get-course-info")]
-        [ApiToken(Auth = "1302", Name = "课程详细信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1302", Name = "课程详细信息",TName = "取得課程詳細資訊", EName = "Course Detail Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetCourseInfo(JsonElement json)
         public async Task<IActionResult> GetCourseInfo(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -74,7 +74,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-period-info")]
         [HttpPost("get-period-info")]
-        [ApiToken(Auth = "1303", Name = "获取指定学段信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1303", Name = "获取指定学段信息",TName = "取得指定學制資訊", EName = "Obtain specified school year information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelOS/Controllers/OpenApi/Business/BizGroupListController.cs

@@ -47,7 +47,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-group-list")]
         [HttpPost("get-group-list")]
-        [ApiToken(Auth = "1201", Name = "名单列表信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1201", Name = "名单列表信息",TName = "取得名單清單", EName = "Name List Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetGroupList(JsonElement json)
         public async Task<IActionResult> GetGroupList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -62,7 +62,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-group-members")]
         [HttpPost("get-group-members")]
-        [ApiToken(Auth = "1202", Name = "名单成员信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1202", Name = "名单成员信息",TName = "取得名單成員資訊", EName = "Name List Member Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetGroupMembers(JsonElement json)
         public async Task<IActionResult> GetGroupMembers(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 1 - 1
TEAMModelOS/Controllers/OpenApi/Business/BizKnowledgeController.cs

@@ -50,7 +50,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-knowledges")]
         [HttpPost("get-knowledges")]
-        [ApiToken(Auth = "1701", Name = "获取知识点列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1701", Name = "获取知识点列表",TName = "取得知識點清單", EName = "Obtain Key Concept List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetKnowledges(JsonElement jsonElement)
         public async Task<IActionResult> GetKnowledges(JsonElement jsonElement)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelOS/Controllers/OpenApi/Business/BizLessonRecordController.cs

@@ -41,7 +41,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-lesson-record")]
         [HttpPost("get-lesson-record")]
-        [ApiToken(Auth = "1801", Name = " 获取开课/课例记录",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1801", Name = " 获取开课/课例记录",TName = "取得課例清單", EName = "Obtain Lesson list information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetLessonRecord(JsonElement json)
         public async Task<IActionResult> GetLessonRecord(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -56,7 +56,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-lesson-record-count")]
         [HttpPost("get-lesson-record-count")]
-        [ApiToken(Auth = "1802", Name = " 获取开课/课例记录数量",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1802", Name = " 获取开课/课例记录数量",TName = "取得課例數量", EName = "Obtain Lesson list count", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetLessonRecordCount(JsonElement json)
         public async Task<IActionResult> GetLessonRecordCount(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelOS/Controllers/OpenApi/Business/BizRoomController.cs

@@ -38,7 +38,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-room-list")]
         [HttpPost("get-room-list")]
-        [ApiToken(Auth = "1401", Name = "物理教室列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1401", Name = "物理教室列表",TName = "取得實體教室清單", EName = "Physical Classroom List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetRoomList(JsonElement json)
         public async Task<IActionResult> GetRoomList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -53,7 +53,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-room-info")]
         [HttpPost("get-room-info")]
-        [ApiToken(Auth = "1402", Name = "物理教室详细",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1402", Name = "物理教室详细",TName = "取得實體教室詳細資訊", EName = "Physical Classroom Details", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetRoomInfo(JsonElement json)
         public async Task<IActionResult> GetRoomInfo(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 1 - 1
TEAMModelOS/Controllers/OpenApi/Business/BizSchoolController.cs

@@ -55,7 +55,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-school-info")]
         [HttpPost("get-school-info")]
-        [ApiToken(Auth = "1001", Name = "学校基本信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1001", Name = "学校基本信息",TName = "取得學校基本資訊", EName = "School Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetSchoolInfo()
         public async Task<IActionResult> GetSchoolInfo()
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelOS/Controllers/OpenApi/Business/BizSyllabusController.cs

@@ -53,7 +53,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-syllabus")]
         [HttpPost("get-syllabus")]
-        [ApiToken(Auth = "1601", Name = "获取课纲列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1601", Name = "获取课纲列表",TName = "取得課綱目錄清單", EName = "Obtain Syllabus List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetSyllabus(JsonElement jsonElement) 
         public async Task<IActionResult> GetSyllabus(JsonElement jsonElement) 
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -68,7 +68,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-volumes")]
         [HttpPost("get-volumes")]
-        [ApiToken(Auth = "1602", Name = "获取册别列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1602", Name = "获取册别列表",TName = "取得冊別清單", EName = "Obtain Book List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetVolumes(JsonElement jsonElement) 
         public async Task<IActionResult> GetVolumes(JsonElement jsonElement) 
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelOS/Controllers/OpenApi/Business/BizTeacherController.cs

@@ -45,7 +45,7 @@ namespace TEAMModelBI.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-teacher-list")]
         [HttpPost("get-teacher-list")]
-        [ApiToken(Auth = "1501", Name = "教师列表信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1501", Name = "教师列表信息",TName = "取得教師清單", EName = "Teacher List Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetTeacherList(JsonElement json)
         public async Task<IActionResult> GetTeacherList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -61,7 +61,7 @@ namespace TEAMModelBI.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-teacher-info")]
         [HttpPost("get-teacher-info")]
-        [ApiToken(Auth = "1502", Name = "教师详细信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1502", Name = "教师详细信息",TName = "取得教師詳細資訊", EName = "Teacher Detail Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetTeacherInfo(JsonElement json)
         public async Task<IActionResult> GetTeacherInfo(JsonElement json)
         {
         {
             json.TryGetProperty("tmdid", out JsonElement _tmdid);
             json.TryGetProperty("tmdid", out JsonElement _tmdid);

+ 5 - 5
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScCourseController.cs

@@ -52,7 +52,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-course-list")]
         [HttpPost("get-course-list")]
-        [ApiToken(Auth = "1301", Name = "获取课程列表信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1301", Name = "获取课程列表信息",TName = "取得課程清單", EName = "Obtain course list information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetCourseList(JsonElement json)
         public async Task<IActionResult> GetCourseList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -67,7 +67,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-course-info")]
         [HttpPost("get-course-info")]
-        [ApiToken(Auth = "1302", Name = "课程详细信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1302", Name = "课程详细信息",TName = "取得課程詳細資訊", EName = "Course Detail Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetCourseInfo(JsonElement json)
         public async Task<IActionResult> GetCourseInfo(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -82,7 +82,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-period-info")]
         [HttpPost("get-period-info")]
-        [ApiToken(Auth = "1303", Name = "获取指定学段信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1303", Name = "获取指定学段信息",TName = "取得指定學制資訊", EName = "Obtain specified school year information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -97,7 +97,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("upsert-course-infos")]
         [HttpPost("upsert-course-infos")]
-        [ApiToken(Auth = "1304", Name = "创建或更新课程",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1304", Name = "创建或更新课程",TName = "建立或更新課程", EName = "Create or update course", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertCourseInfo(CourseDtoImpt json)
         public async Task<IActionResult> UpsertCourseInfo(CourseDtoImpt json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -218,7 +218,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("upsert-course-schedule")]
         [HttpPost("upsert-course-schedule")]
-        [ApiToken(Auth = "1305", Name = "更新课程的排课信息",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1305", Name = "更新课程的排课信息",TName = "更新課程的排課資訊", EName = "Update course scheduling information", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertCourseSchedule(ImportCourseDto json)
         public async Task<IActionResult> UpsertCourseSchedule(ImportCourseDto json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 4 - 4
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScExamController.cs

@@ -58,7 +58,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-paper-exam-condition")]
         [HttpPost("get-paper-exam-condition")]
-        [ApiToken(Auth = "1101", Name = "试卷和评测的条件信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1101", Name = "试卷和评测的条件信息",TName = "試卷和測驗的設定資訊", EName = "Conditions of exam files and assessments", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         {
         {
             json.TryGetProperty("periodId", out JsonElement _periodId);
             json.TryGetProperty("periodId", out JsonElement _periodId);
@@ -78,7 +78,7 @@ namespace TEAMModelOS.Controllers
         }
         }
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("import-exam")]
         [HttpPost("import-exam")]
-        [ApiToken(Auth = "1102", Name = "汇入评测基础数据",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1102", Name = "汇入评测基础数据",TName = "匯入測驗基礎資料", EName = "Import assessment basic data", RWN = "W", Limit = false)]
         public async Task<IActionResult> importExam(JsonElement request)
         public async Task<IActionResult> importExam(JsonElement request)
         {
         {
             //获取评测的ID
             //获取评测的ID
@@ -100,7 +100,7 @@ namespace TEAMModelOS.Controllers
         }
         }
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("upsert-record")]
         [HttpPost("upsert-record")]
-        [ApiToken(Auth = "1103", Name = "批量汇入作答数据",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1103", Name = "批量汇入作答数据",TName = "批次匯入作答資料", EName = "Batch import answering data", RWN = "W", Limit = false)]
         public async Task<IActionResult> upsertRecord(JsonElement request)
         public async Task<IActionResult> upsertRecord(JsonElement request)
         {
         {
 
 
@@ -364,7 +364,7 @@ namespace TEAMModelOS.Controllers
         }
         }
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("parse-word")]
         [HttpPost("parse-word")]
-        [ApiToken(Auth = "1104", Name = "录入试卷数据",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1104", Name = "录入试卷数据",TName = "匯入試卷資料", EName = "Import exam file data", RWN = "W", Limit = false)]
         public async Task<IActionResult> ParseWord([FromForm] FileDto fileDto)
         public async Task<IActionResult> ParseWord([FromForm] FileDto fileDto)
         {
         {
             if (!FileType.GetExtention(fileDto.file.FileName).ToLower().Equals("docx"))
             if (!FileType.GetExtention(fileDto.file.FileName).ToLower().Equals("docx"))

+ 8 - 8
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScGroupListController.cs

@@ -51,7 +51,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-group-list")]
         [HttpPost("get-group-list")]
-        [ApiToken(Auth = "1201", Name = "名单列表信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1201", Name = "名单列表信息",TName = "取得名單清單", EName = "Name List Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetGroupList(JsonElement json)
         public async Task<IActionResult> GetGroupList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -66,7 +66,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-group-members")]
         [HttpPost("get-group-members")]
-        [ApiToken(Auth = "1202", Name = "名单成员信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1202", Name = "名单成员信息",TName = "取得名單成員資訊", EName = "Name List Member Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetGroupMembers(JsonElement json) 
         public async Task<IActionResult> GetGroupMembers(JsonElement json) 
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -81,7 +81,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("import-class-members")]
         [HttpPost("import-class-members")]
-        [ApiToken(Auth = "1203", Name = "导入行政班学生",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1203", Name = "导入行政班学生",TName = "匯入編制班學生", EName = "Import admin class student", RWN = "W", Limit = false)]
         public async Task<IActionResult> ImportClassMembers(JsonElement json)
         public async Task<IActionResult> ImportClassMembers(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -118,7 +118,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("update-class-members")]
         [HttpPost("update-class-members")]
-        [ApiToken(Auth = "1204", Name = "更新行政班学生",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1204", Name = "更新行政班学生",TName = "更新編制班學生", EName = "Update admin class student", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpdateClassMembers(JsonElement json)
         public async Task<IActionResult> UpdateClassMembers(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -156,7 +156,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("remove-class-members")]
         [HttpPost("remove-class-members")]
-        [ApiToken(Auth = "1205", Name = "移除行政班学生",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1205", Name = "移除行政班学生",TName = "刪除編制班學生", EName = "Remove admin class student", RWN = "W", Limit = false)]
         public async Task<IActionResult> RemoveClassMembers(JsonElement json)
         public async Task<IActionResult> RemoveClassMembers(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -198,7 +198,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("upsert-teach-groups")]
         [HttpPost("upsert-teach-groups")]
-        [ApiToken(Auth = "1206", Name = "创建或更新教学班",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1206", Name = "创建或更新教学班",TName = "建立或更新選課班", EName = "Create or update customized class", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertTeachGroups(GroupListDtoImpt json)
         public async Task<IActionResult> UpsertTeachGroups(GroupListDtoImpt json)
         {
         {
             var (_, school) = HttpContext.GetApiTokenInfo();
             var (_, school) = HttpContext.GetApiTokenInfo();
@@ -291,7 +291,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("import-teach-members")]
         [HttpPost("import-teach-members")]
-        [ApiToken(Auth = "1207", Name = "导入教学班学生",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1207", Name = "导入教学班学生",TName = "匯入選課班學生", EName = "Import customized class student", RWN = "W", Limit = false)]
         public async Task<IActionResult> ImportTeachMembers(MemberImpt json)
         public async Task<IActionResult> ImportTeachMembers(MemberImpt json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -447,7 +447,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("remove-teach-members")]
         [HttpPost("remove-teach-members")]
-        [ApiToken(Auth = "1208", Name = "移除教学班学生",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1208", Name = "移除教学班学生",TName = "刪除選課班學生", EName = "Remove customized class student", RWN = "W", Limit = false)]
         public async Task<IActionResult> RemoveTeachMembers(JsonElement json)
         public async Task<IActionResult> RemoveTeachMembers(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

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

@@ -44,7 +44,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-knowledges")]
         [HttpPost("get-knowledges")]
-        [ApiToken(Auth = "1701", Name = "获取知识点列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1701", Name = "获取知识点列表",TName = "取得知識點清單", EName = "Obtain Key Concept List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetKnowledges(JsonElement jsonElement)
         public async Task<IActionResult> GetKnowledges(JsonElement jsonElement)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 68 - 0
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScLessonRecordController.cs

@@ -0,0 +1,68 @@
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.Options;
+using System.Text.Json;
+using System.Threading.Tasks;
+using TEAMModelOS.Filter;
+using TEAMModelOS.Models;
+using TEAMModelOS.SDK;
+using TEAMModelOS.SDK.DI;
+using TEAMModelOS.SDK.Extension;
+namespace TEAMModelOS.Controllers
+{
+    [Route("school")]
+    [ApiController]
+    public class ScLessonRecordController : 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 ScLessonRecordController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureServiceBusFactory serviceBus, AzureRedisFactory azureRedis, DingDing dingDing, IOptionsSnapshot<Option> option, IConfiguration configuration)
+        {
+            _serviceBus = serviceBus;
+            _azureCosmos = azureCosmos;
+            _azureStorage = azureStorage;
+            _azureRedis = azureRedis;
+            _dingDing = dingDing;
+            _option = option?.Value;
+            _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
+        }
+        /// <summary>
+        /// 获取开课/课例记录
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("get-lesson-record")]
+        [ApiToken(Auth = "1801", Name = " 获取开课/课例记录",TName = "取得課例清單", EName = "Obtain Lesson list information", RWN = "R", Limit = false)]
+        public async Task<IActionResult> GetLessonRecord(JsonElement json)
+        {
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            var responseData = await OpenApiService.GetLessonRecord(_azureCosmos,   _configuration,   _serviceBus,
+             _option,  _dingDing, id, school, json);
+            return Ok(new { responseData });
+        }
+        /// <summary>
+        /// 获取开课/课例记录数量
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("get-lesson-record-count")]
+        [ApiToken(Auth = "1802", Name = " 获取开课/课例记录数量",TName = "取得課例數量", EName = "Obtain Lesson list count", RWN = "R", Limit = false)]
+        public async Task<IActionResult> GetLessonRecordCount(JsonElement json)
+        {
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            var responseData = await OpenApiService.GetLessonRecordCount(_azureCosmos, _configuration, _serviceBus,
+             _option, _dingDing, id, school, json);
+            return Ok(new { responseData });
+        }
+    }
+}

+ 3 - 3
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScRoomController.cs

@@ -44,7 +44,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-room-list")]
         [HttpPost("get-room-list")]
-        [ApiToken(Auth = "1401", Name = "物理教室列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1401", Name = "物理教室列表",TName = "取得實體教室清單", EName = "Physical Classroom List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetRoomList(JsonElement json)
         public async Task<IActionResult> GetRoomList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -59,7 +59,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-room-info")]
         [HttpPost("get-room-info")]
-        [ApiToken(Auth = "1402", Name = "物理教室详细",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1402", Name = "物理教室详细",TName = "取得實體教室詳細資訊", EName = "Physical Classroom Details", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetRoomInfo(JsonElement json)
         public async Task<IActionResult> GetRoomInfo(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -81,7 +81,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("upsert-room-infos")]
         [HttpPost("upsert-room-infos")]
-        [ApiToken(Auth = "1403", Name = "教室批量创建更新",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1403", Name = "教室批量创建更新",TName = "批次建立更新教室", EName = "Classroom batch creation update", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertRoomInfo(RoomsDto json)
         public async Task<IActionResult> UpsertRoomInfo(RoomsDto json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

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

@@ -40,7 +40,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-school-info")]
         [HttpPost("get-school-info")]
-        [ApiToken(Auth = "1001", Name = "学校基本信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1001", Name = "学校基本信息",TName = "取得學校基本資訊", EName = "School Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetSchoolInfo()
         public async Task<IActionResult> GetSchoolInfo()
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScSyllabusController.cs

@@ -44,7 +44,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-syllabus")]
         [HttpPost("get-syllabus")]
-        [ApiToken(Auth = "1601", Name = "获取课纲列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1601", Name = "获取课纲列表",TName = "取得課綱目錄清單", EName = "Obtain Syllabus List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetSyllabus(JsonElement jsonElement)
         public async Task<IActionResult> GetSyllabus(JsonElement jsonElement)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -59,7 +59,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-volumes")]
         [HttpPost("get-volumes")]
-        [ApiToken(Auth = "1602", Name = "获取册别列表",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1602", Name = "获取册别列表",TName = "取得冊別清單", EName = "Obtain Book List", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetVolumes(JsonElement jsonElement)
         public async Task<IActionResult> GetVolumes(JsonElement jsonElement)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 18 - 4
TEAMModelOS/Controllers/OpenApi/OpenSchool/ScTeacherController.cs

@@ -43,7 +43,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-teacher-list")]
         [HttpPost("get-teacher-list")]
-        [ApiToken(Auth = "1501", Name = "教师列表信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1501", Name = "教师列表信息",TName = "取得教師清單", EName = "Teacher List Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetTeacherList(JsonElement json)
         public async Task<IActionResult> GetTeacherList(JsonElement json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -59,7 +59,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("get-teacher-info")]
         [HttpPost("get-teacher-info")]
-        [ApiToken(Auth = "1502", Name = "教师详细信息",TName ="",EName ="", RWN = "R", Limit = false)]
+        [ApiToken(Auth = "1502", Name = "教师详细信息",TName = "取得教師詳細資訊", EName = "Teacher Detail Information", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetTeacherInfo(JsonElement json)
         public async Task<IActionResult> GetTeacherInfo(JsonElement json)
         {
         {
             json.TryGetProperty("tmdid", out JsonElement _tmdid);
             json.TryGetProperty("tmdid", out JsonElement _tmdid);
@@ -68,6 +68,21 @@ namespace TEAMModelOS.Controllers
             return Ok(new { responseData });
             return Ok(new { responseData });
         }
         }
 
 
+        /// <summary>
+        /// 教师执教的班级和课程
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("get-teacher-teach")]
+        [ApiToken(Auth = "1503", Name = "教师执教的班级和课程", TName = "", EName = "", RWN = "R", Limit = false)]
+        public async Task<IActionResult> GetTeacherTeach(JsonElement json)
+        {
+            var (id, school) = HttpContext.GetApiTokenInfo();
+            var responseData = await OpenApiService.GetTeacherTeach(_azureCosmos, _dingDing, id, school, json);
+            return Ok(new { responseData });
+        }
+
         /// <summary>
         /// <summary>
         /// 教师批量导入,并加入学校。可以导入学科,但需要填写学段id
         /// 教师批量导入,并加入学校。可以导入学科,但需要填写学段id
         /// </summary>
         /// </summary>
@@ -75,13 +90,12 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
         [HttpPost("import-school-teacher")]
         [HttpPost("import-school-teacher")]
-        [ApiToken(Auth = "1503", Name = "教师批量导入",TName ="",EName ="", RWN = "W", Limit = false)]
+        [ApiToken(Auth = "1504", Name = "教师批量导入", TName = "批次匯入教師", EName = "Batch Teacher Import", RWN = "W", Limit = false)]
         public async Task<IActionResult> ImportSchoolTeacher(ImportTechDto json)
         public async Task<IActionResult> ImportSchoolTeacher(ImportTechDto json)
         {
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
             var (id, school) = HttpContext.GetApiTokenInfo();
             var responseData = await OpenApiService.GetTeacherInfo(_azureCosmos, _coreAPIHttpService, _dingDing, id, school, json);
             var responseData = await OpenApiService.GetTeacherInfo(_azureCosmos, _coreAPIHttpService, _dingDing, id, school, json);
             return Ok(new { responseData });
             return Ok(new { responseData });
         }
         }
-
     }
     }
 }
 }

+ 74 - 10
TEAMModelOS/Controllers/Third/Xkw/XkwServiceController.cs

@@ -319,13 +319,35 @@ namespace TEAMModelOS.Controllers.Third.Xkw
                                     });
                                     });
                                     child_itemInfo.answerHtml = answers[0];
                                     child_itemInfo.answerHtml = answers[0];
                                     child_itemInfo.answer = ans.ToList();
                                     child_itemInfo.answer = ans.ToList();
-                                    if (ans.Count > 1)
+                                    child_itemInfo.objective = true;
+                                    if (child_itemInfo.opts > 0)
                                     {
                                     {
-                                        child_itemInfo.type = "multiple";
+                                        if (ans.Count > 1)
+                                        {
+                                            child_itemInfo.type = "multiple";
+                                        }
+                                        else
+                                        {
+                                            child_itemInfo.type = "single";
+                                        }
                                     }
                                     }
                                     else
                                     else
                                     {
                                     {
-                                        child_itemInfo.type = "single";
+                                        if (child_itemInfo.answer.Any() 
+                                        &&(child_itemInfo.answer.First().Equals("√") || child_itemInfo.answer.First().Equals("×")
+                                        || child_itemInfo.answer.First().Equals("对") || child_itemInfo.answer.First().Equals("错")
+                                        || child_itemInfo.answer.First().Equals("正确") || child_itemInfo.answer.First().Equals("错误")))
+                                        {
+                                            child_itemInfo.type = "judge";
+                                            child_itemInfo.opts = 2;
+                                            child_itemInfo.option = new List<CodeValue>() { new CodeValue { code = "A", value = "对" }, new CodeValue { code = "B", value = "错" } };
+                                            child_itemInfo.answer = itemInfo.answer.First().Equals("√") || child_itemInfo.answer.First().Equals("对")|| child_itemInfo.answer.First().Equals("正确") ? new List<string> { "A" } : new List<string> { "B" };
+                                        }
+                                        else
+                                        {
+                                            child_itemInfo.objective = false;
+                                            child_itemInfo.type = "subjective";
+                                        }
                                     }
                                     }
                                 }
                                 }
                                 //处理解析
                                 //处理解析
@@ -344,12 +366,23 @@ namespace TEAMModelOS.Controllers.Third.Xkw
                                 {
                                 {
                                     child_itemInfo.explain = explains[i];
                                     child_itemInfo.explain = explains[i];
                                 }
                                 }
+                                string ansstr = "";
                                 if (answers.Length - 1 >= i)
                                 if (answers.Length - 1 >= i)
                                 {
                                 {
                                     child_itemInfo.answer = new List<string> { answers[i] };
                                     child_itemInfo.answer = new List<string> { answers[i] };
+                                    ansstr = HtmlHelper.DoUselessTag(answers[i]);
                                 }
                                 }
                                 child_itemInfo.question = questiones[i];
                                 child_itemInfo.question = questiones[i];
-
+                                if (ansstr.Equals("√") || ansstr.Equals("×")
+                                    || ansstr.Equals("对") || ansstr.Equals("错")
+                                    || ansstr.Equals("正确") || ansstr.Equals("错误"))
+                                {
+                                    child_itemInfo.objective = true;
+                                    child_itemInfo.type = "judge";
+                                    child_itemInfo.opts = 2;
+                                    child_itemInfo.option = new List<CodeValue>() { new CodeValue { code = "A", value = "对" }, new CodeValue { code = "B", value = "错" } };
+                                    child_itemInfo.answer = ansstr.Equals("√") || ansstr.Equals("对") || ansstr.Equals("正确") ? new List<string> { "A" } : new List<string> { "B" };
+                                }
                             }
                             }
 
 
                             string rg_ques_no = "<span[^>]{0,}\\s*ques-no[^>]{0,}>[\\s\\S]*?</span>";
                             string rg_ques_no = "<span[^>]{0,}\\s*ques-no[^>]{0,}>[\\s\\S]*?</span>";
@@ -401,7 +434,7 @@ namespace TEAMModelOS.Controllers.Third.Xkw
                             itemInfo.option = options;
                             itemInfo.option = options;
                             itemInfo.opts = options.Count;
                             itemInfo.opts = options.Count;
                             itemInfo.question = question;
                             itemInfo.question = question;
-
+                            itemInfo.objective = true;
                             //处理答案
                             //处理答案
                             //去除class 以及span标签"
                             //去除class 以及span标签"
                             string ahtml = x.answer;
                             string ahtml = x.answer;
@@ -423,20 +456,51 @@ namespace TEAMModelOS.Controllers.Third.Xkw
                             });
                             });
                             itemInfo.answerHtml = x.answer;
                             itemInfo.answerHtml = x.answer;
                             itemInfo.answer = ans.ToList();
                             itemInfo.answer = ans.ToList();
-                            if (ans.Count > 1)
+                            if (itemInfo.opts > 0)
                             {
                             {
-                                itemInfo.type = "multiple";
+                                if (ans.Count > 1)
+                                {
+                                    itemInfo.type = "multiple";
+                                }
+                                else
+                                {
+                                    itemInfo.type = "single";
+                                }
                             }
                             }
-                            else
-                            {
-                                itemInfo.type = "single";
+                            else {
+                            if (itemInfo.answer.Any()
+                                   && (itemInfo.answer.First().Equals("√") || itemInfo.answer.First().Equals("×")
+                                       || itemInfo.answer.First().Equals("对") || itemInfo.answer.First().Equals("错")
+                                       || itemInfo.answer.First().Equals("正确") || itemInfo.answer.First().Equals("错误")))
+                                {
+                                    itemInfo.type = "judge";
+                                    itemInfo.opts = 2;
+                                    itemInfo.option = new List<CodeValue>() { new CodeValue { code = "A", value = "对" }, new CodeValue { code = "B", value = "错" } };
+                                    itemInfo.answer = itemInfo.answer.First().Equals("√") || itemInfo.answer.First().Equals("对") || itemInfo.answer.First().Equals("正确") ? new List<string> { "A" } : new List<string> { "B" };
+                                }
+                                else
+                                {
+                                    itemInfo.objective = false;
+                                    itemInfo.type = "subjective";
+                                }
                             }
                             }
+                            
                         }
                         }
                         else
                         else
                         {
                         {
                             itemInfo.type = "subjective";
                             itemInfo.type = "subjective";
                             itemInfo.question = x.stem;
                             itemInfo.question = x.stem;
                             itemInfo.answer = new List<string>() { HtmlHelper.DoUselessTag(x.answer.ToString()) };
                             itemInfo.answer = new List<string>() { HtmlHelper.DoUselessTag(x.answer.ToString()) };
+                            if (itemInfo.answer.First().Equals("√") || itemInfo.answer.First().Equals("×")
+                                || itemInfo.answer.First().Equals("对") || itemInfo.answer.First().Equals("错")
+                                || itemInfo.answer.First().Equals("正确") || itemInfo.answer.First().Equals("错误"))
+                            {
+                                itemInfo.objective = true;
+                                itemInfo.type = "judge";
+                                itemInfo.opts = 2;
+                                itemInfo.option = new List<CodeValue>() { new CodeValue { code = "A", value = "对" }, new CodeValue { code = "B", value = "错" } };
+                                itemInfo.answer = itemInfo.answer.First().Equals("√") || itemInfo.answer.First().Equals("对") || itemInfo.answer.First().Equals("正确") ? new List<string> { "A" } : new List<string> { "B" };
+                            }
                         }
                         }
                         itemInfos.Add(itemInfo);
                         itemInfos.Add(itemInfo);
                     }
                     }