Browse Source

判断重复编码

CrazyIter 5 năm trước cách đây
mục cha
commit
51c8cfcf79

+ 17 - 11
TEAMModelOS.SDK/Context/Filters/HttpGlobalExceptionInvoke.cs

@@ -44,10 +44,11 @@ namespace TEAMModelOS.SDK.Context.Filter
                     {
                     {
                         context.Response.StatusCode = bizCode;
                         context.Response.StatusCode = bizCode;
                     }
                     }
-                    else {
+                    else
+                    {
                         context.Response.StatusCode = 200;
                         context.Response.StatusCode = 200;
                     }
                     }
-                   // context.Response.StatusCode = ((BizException)ex).code;
+                    // context.Response.StatusCode = ((BizException)ex).code;
                 }
                 }
                 //未知异常
                 //未知异常
                 else
                 else
@@ -62,7 +63,7 @@ namespace TEAMModelOS.SDK.Context.Filter
             {
             {
                 if (!isCatched && context.Response.StatusCode != 200)//未捕捉过并且状态码不为200
                 if (!isCatched && context.Response.StatusCode != 200)//未捕捉过并且状态码不为200
                 {
                 {
-                    string msg ;
+                    string msg;
                     switch (context.Response.StatusCode)
                     switch (context.Response.StatusCode)
                     {
                     {
                         case 400:
                         case 400:
@@ -81,13 +82,13 @@ namespace TEAMModelOS.SDK.Context.Filter
                             msg = exs.Message;
                             msg = exs.Message;
                             break;
                             break;
                         case 403:
                         case 403:
-                            msg = exs.Message;
+                            msg = "金钥验证错误";
                             break;
                             break;
                         default:
                         default:
                             msg = "Unknown Error";
                             msg = "Unknown Error";
                             break;
                             break;
                     }
                     }
-                    await HandleExceptionAsync(context,  bizCode, msg, exs == null ? "" : exs.StackTrace);
+                    await HandleExceptionAsync(context, bizCode, msg, exs == null ? "" : exs.StackTrace);
                 }
                 }
             }
             }
         }
         }
@@ -102,18 +103,22 @@ namespace TEAMModelOS.SDK.Context.Filter
         /// <returns></returns>
         /// <returns></returns>
         private static async Task HandleExceptionAsync(HttpContext context, int bizCode, string msg, string devmsg)
         private static async Task HandleExceptionAsync(HttpContext context, int bizCode, string msg, string devmsg)
         {
         {
+            if (context.Response.StatusCode == 500)
+            {
+                context.Response.StatusCode = 200;
+            }
             var data = new ErrorResponse<string>(bizCode, msg, devmsg);
             var data = new ErrorResponse<string>(bizCode, msg, devmsg);
             context.Response.ContentType = Constants.CONTENT_TYPE_JSON;
             context.Response.ContentType = Constants.CONTENT_TYPE_JSON;
-          //if (context.Response.HasStarted) {
-                await context.Response.WriteAsync(JsonNetHelper.ToJson(data));
+            //if (context.Response.HasStarted) {
+            await context.Response.WriteAsync(JsonNetHelper.ToJson(data));
             //}
             //}
-           
+
         }
         }
         /// <summary>
         /// <summary>
         /// 异常信息封装
         /// 异常信息封装
         /// </summary>
         /// </summary>
         /// 
         /// 
-        
+
         public class ErrorResponse<T>
         public class ErrorResponse<T>
         {
         {
             public ErrorResponse()
             public ErrorResponse()
@@ -155,13 +160,14 @@ namespace TEAMModelOS.SDK.Context.Filter
             public ErrorModel<T> error { get; set; } = null;
             public ErrorModel<T> error { get; set; } = null;
         }
         }
     }
     }
-    
+
     public class ErrorModel<E>
     public class ErrorModel<E>
     {
     {
         public long responseTime = DateTime.Now.Ticks;
         public long responseTime = DateTime.Now.Ticks;
-        public float code { get; set; } = 1;
+        public int code { get; set; } = 1;
         public string message { get; set; }
         public string message { get; set; }
         public string devmsg { get; set; }
         public string devmsg { get; set; }
         public E data { get; set; }
         public E data { get; set; }
     }
     }
+
 }
 }

+ 3 - 0
TEAMModelOS.Service/Models/Core/Classroom.cs

@@ -46,6 +46,9 @@ namespace TEAMModelOS.Service.Models.Core
         public string hiteach { get; set; }
         public string hiteach { get; set; }
         [ProtoMember(10)]
         [ProtoMember(10)]
         public int studentCount { get; set; }
         public int studentCount { get; set; }
+        /// <summary>
+        /// TBL IRS 类型区分
+        /// </summary>
         [ProtoMember(11)]
         [ProtoMember(11)]
         public string classroomType { get; set; }
         public string classroomType { get; set; }
         [ProtoMember(12)]
         [ProtoMember(12)]

+ 26 - 6
TEAMModelOS/Controllers/Core/ClassRoomController.cs

@@ -27,22 +27,42 @@ namespace TEAMModelOS.Controllers.Syllabus
         public async ValueTask<BaseJosnRPCResponse> SaveOrUpdate(JosnRPCRequest<Classroom> request)
         public async ValueTask<BaseJosnRPCResponse> SaveOrUpdate(JosnRPCRequest<Classroom> request)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
-            
+            List<Student> students = null;
+
             if (request.@params.id != null)
             if (request.@params.id != null)
             {
             {
                 await cosmosrepository.SaveOrUpdate(request.@params);
                 await cosmosrepository.SaveOrUpdate(request.@params);
-
+                students = await cosmosrepository.FindByDict<Student>(new Dictionary<string, object>() { { "classroomCode", request.@params.classroomCode }, { "schoolCode", request.@params.scopeCode } });
             }
             }
             else
             else
             {
             {
+                List<Classroom> sc = await cosmosrepository.FindByDict<Classroom>(new Dictionary<string, object> { { "classroomCode", request.@params.classroomCode },{ "scopeCode", request.@params.scopeCode } });
+                if (sc.IsNotEmpty()) {
+                    throw new  BizException("°à¼¶´úÂëÒѾ­´æÔÚ£¡",ResponseCode.DATA_EXIST);
+                }
                 request.@params.id = Guid.NewGuid().ToString();
                 request.@params.id = Guid.NewGuid().ToString();
-                ClassroomStudent students = new ClassroomStudent();
-                students.scopeCode = request.@params.scopeCode;
-                students.id = request.@params.classroomCode;
-                await cosmosrepository.SaveOrUpdate<ClassroomStudent>(students);
+
                 await cosmosrepository.SaveOrUpdate<Classroom>(request.@params);
                 await cosmosrepository.SaveOrUpdate<Classroom>(request.@params);
                 
                 
             }
             }
+            ClassroomStudent classroomStudent = new ClassroomStudent();
+            List<ClassroomStudent> classroomStudents = await cosmosrepository.FindByDict<ClassroomStudent>(new Dictionary<string, object> { { "id", request.@params.classroomCode }, { "scopeCode", request.@params.scopeCode } });
+            if (classroomStudents.IsNotEmpty())
+            {
+                classroomStudent = classroomStudents[0];
+                if (students.IsNotEmpty()) {
+                    students.ForEach(x=> {
+                        if (!classroomStudent.studentId.Contains(x.studentId)) {
+                            classroomStudent.studentId.Add(x.studentId);
+                        }
+                    });
+                }
+            }
+            else {
+                classroomStudent.scopeCode = request.@params.scopeCode;
+                classroomStudent.id = request.@params.classroomCode;
+            }
+            await cosmosrepository.SaveOrUpdate<ClassroomStudent>(classroomStudent);
             return builder.Data(request.@params).build();
             return builder.Data(request.@params).build();
         }
         }
 
 

+ 13 - 6
TEAMModelOS/Controllers/Core/ClassroomStudentController.cs

@@ -28,18 +28,25 @@ namespace TEAMModelOS.Controllers.Core
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// 构建原生班级学生关系
+        ///  获取实时的学生-班级关联信息
         /// </summary>
         /// </summary>
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
-        [HttpPost("BuildClassroomStudent")]
-        public async Task<BaseJosnRPCResponse> BuildClassroomStudent(JosnRPCRequest<Dictionary<string,string>> request) {
+        [HttpPost("ClassroomStudentOnTime")]
+        public async Task<BaseJosnRPCResponse> ClassroomStudentOnTime(JosnRPCRequest<Dictionary<string,string>> request) {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             if (request.@params.TryGetValue("classroomCode", out string classroomCode) && 
             if (request.@params.TryGetValue("classroomCode", out string classroomCode) && 
-                request.@params.TryGetValue("schoolCode", out string schoolCode)) {
-                List<Student> students=  await _cosmos.FindByDict<Student>(new Dictionary<string, object>() { { "classroomCode", classroomCode },{ "schoolCode", schoolCode } });
+                request.@params.TryGetValue("scopeCode", out string scopeCode)) {
+                List<ClassroomStudent> classroomStudents = await _cosmos.FindByDict<ClassroomStudent>(new Dictionary<string, object> { { "id", classroomCode }, { "scopeCode", scopeCode } });
+                List<Student> students = await _cosmos.FindByDict<Student>(new Dictionary<string, object>() { { "classroomCode", classroomCode }, { "schoolCode", scopeCode } });
+                ClassroomStudent classroomStudent = new ClassroomStudent();
+                if (classroomStudents.IsNotEmpty()) {
+                  //  if(students.IsNotEmpty())
+                }
+
+               
                 if (students.IsNotEmpty()) {
                 if (students.IsNotEmpty()) {
-                    var data=  new ClassroomStudent { id = classroomCode, scopeCode = schoolCode, studentId = students.Select(x => x.studentId).ToList() };
+                    var data=  new ClassroomStudent { id = classroomCode, scopeCode = scopeCode, studentId = students.Select(x => x.studentId).ToList() };
                     await _cosmos.SaveOrUpdate(data);
                     await _cosmos.SaveOrUpdate(data);
                     builder.Data(data);
                     builder.Data(data);
 ;                }
 ;                }