Преглед изворни кода

1、编序学习活动 增删改查接口
2、作答记录 增删改查接口

李思淳 пре 5 година
родитељ
комит
b90aa25ffd

+ 17 - 1
TEAMModelOS.Service/Models/Learn/LeanProcess.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
 using System.Text;
 using TEAMModelOS.SDK.Context.Attributes.Azure;
 using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
@@ -19,13 +20,22 @@ namespace TEAMModelOS.Service.Models.Learn
             target = new List<string>();
             steps = new List<ProcessStep>();
         }
+        
         public string id { get; set; }
         public string name { get; set; }
+        [Required(ErrorMessage = "{0} 必须填写")]
         public string subjectCode { get; set; }
         /// <summary>
+        /// 活动介绍
+        /// </summary>
+        [Required(ErrorMessage = "{0} 必须填写")]
+        public string Introduce { get; set; }
+        /// <summary>
         /// 学习对象
         /// </summary>
+        [Required(ErrorMessage = "{0} 必须填写")]
         public List<string> target { get; set; }
+        [Required(ErrorMessage = "{0} 必须填写")]
         [PartitionKey]
         public string scopeCode { get; set; }
         /// <summary>
@@ -35,16 +45,19 @@ namespace TEAMModelOS.Service.Models.Learn
         /// <summary>
         /// 是否闯关模式
         /// </summary>
+        [Required(ErrorMessage = "{0} 必须填写")]
         public bool isOrder { get; set; }
 
         //创建时间 
         public long createTime { get; set; }
         //创建者
+        [Required(ErrorMessage = "{0} 必须填写")]
         public string creator { get; set; }
 
         /// <summary>
         /// 编序式模板,课前预习,随堂练习,课后作业
         /// </summary>
+        [Required(ErrorMessage = "{0} 必须填写")]
         public string type { get; set; }
         /// <summary>
         /// 截至时间 时间戳
@@ -68,15 +81,18 @@ namespace TEAMModelOS.Service.Models.Learn
         /// 题目
         /// </summary>
         public List<ExamItem> item { get; set; }
+        [Required(ErrorMessage = "{0} 必须填写")]
         public string name { get; set; }
         public int order { get; set; }
     }
   
     public class ProcessRes{
 
+        [Required(ErrorMessage = "{0} 必须填写")]
         public string name { get; set; }
+        [Required(ErrorMessage = "{0} 必须填写")]
         public string url { get; set; }
-        public string order { get; set; }
+        public int order { get; set; }
     }
 
 }

+ 6 - 5
TEAMModelOS.Service/Models/Learn/LeanRecord.cs

@@ -37,11 +37,11 @@ namespace TEAMModelOS.Service.Models.Learn
     /// </summary>
     public class RecordRes
     {
-        int order { get; set; }
+        public int order { get; set; }
         /// <summary>
-        /// 阅读时长
+        /// 阅读时长 秒数
         /// </summary>
-        int costTime { get; set; } = 0;
+        public int costTime { get; set; } = 0;
     }
     /// <summary>
     /// 题目作答记录
@@ -51,11 +51,12 @@ namespace TEAMModelOS.Service.Models.Learn
         public RecordAns(){
             ans = new List<string>();
         }
-        int order { get; set; }
+        public int order { get; set; }
+
         List<string> ans { get; set; }
         /// <summary>
         /// 作答时长
         /// </summary>
-        int costTime { get; set; } = 0;
+        public int costTime { get; set; } = 0;
     }
 }

+ 4 - 2
TEAMModelOS/Controllers/Core/ClassroomStudentController.cs

@@ -70,7 +70,8 @@ namespace TEAMModelOS.Controllers.Core
                 }
 
                 List<ClassroomStudent> students1 = await _cosmos.SaveOrUpdateAll(classroomStudents1);
-                if (students1.Count > 0) builder.Data(students1);
+                //if (students1.Count > 0) 
+                    builder.Data(students1);
             }
             return builder.build();
         }
@@ -94,7 +95,8 @@ namespace TEAMModelOS.Controllers.Core
                 }
 
                 List<ClassroomStudent> students1 = await _cosmos.SaveOrUpdateAll(classroomStudents1);
-                if (students1.Count > 0) builder.Data(students1);
+                //if (students1.Count > 0) 
+                    builder.Data(students1);
             }
             return builder.build();
         }

+ 128 - 7
TEAMModelOS/Controllers/Learn/LearnController.cs

@@ -5,8 +5,11 @@ using System.Linq;
 using System.Threading.Tasks;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
+using TEAMModelOS.SDK.Helper.Common.DateTimeHelper;
+using TEAMModelOS.SDK.Helper.Common.ValidateHelper;
 using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
 using TEAMModelOS.Service.Models.Learn;
+using TEAMModelOS.Service.Models.Syllabus;
 
 namespace TEAMModelOS.Controllers.Learn
 {
@@ -33,7 +36,7 @@ namespace TEAMModelOS.Controllers.Learn
             if (string.IsNullOrEmpty(request.@params.id))
             {
                 request.@params.id = Guid.NewGuid().ToString();
-
+                request.@params.createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
                 await cosmosDBV3Repository.SaveOrUpdate(request.@params);
             }
             else
@@ -43,12 +46,14 @@ namespace TEAMModelOS.Controllers.Learn
             return builder.Data(request.@params).build();
         }
 
-        /// <summary>
-        /// 查询最小单元
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
-        [HttpPost("FindUnit")]
+   
+
+    /// <summary>
+    /// 查询最小单元
+    /// </summary>
+    /// <param name="request"></param>
+    /// <returns></returns>
+    [HttpPost("FindUnit")]
         public async Task<BaseJosnRPCResponse> FindUnit(JosnRPCRequest<Dictionary<string, object>> request)
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
@@ -65,5 +70,121 @@ namespace TEAMModelOS.Controllers.Learn
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             return builder.Data(await cosmosDBV3Repository.DeleteAsync<LearnUnit>(request.@params)).build();
         }
+
+        /// <summary>
+        /// 保存或新增编序学习活动
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("SaveorUpdataLeanProcess")]
+        public async Task<BaseJosnRPCResponse> SaveorUpdataLeanProcessAsync(JosnRPCRequest<List<LeanProcess>> request) {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            if (ValidateHelper.IsValid(request.@params))
+            {
+                request.@params.ForEach(x =>
+                {
+                    if (string.IsNullOrEmpty(x.id))
+                    {
+                        x.id = Guid.NewGuid().ToString();
+                        x.createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
+                    }
+                });
+                List<LeanProcess> leanProcesses =  await cosmosDBV3Repository.SaveOrUpdateAll<LeanProcess>(request.@params);
+                builder.Data(leanProcesses);
+            }
+            return builder.build();
+        }
+
+        /// <summary>
+        /// 查询编序学习活动
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("FindLeanProcess")]
+        public async Task<BaseJosnRPCResponse> FindLeanProcess(JosnRPCRequest<Dictionary<string, object>> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            if (request.@params != null) {
+
+                builder.Data(await cosmosDBV3Repository.FindByDict<LeanProcess>(request.@params));
+            }
+
+            return builder.build();
+        }
+
+        /// <summary>
+        /// 删除编序学习活动
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("DeleteLeanProcess")]
+        public async Task<BaseJosnRPCResponse> DeleteLeanProcess(JosnRPCRequest<IdPk> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            if (request.@params != null)
+            {
+                builder.Data(await cosmosDBV3Repository.DeleteAsync<LeanProcess>(request.@params));
+            }
+            return builder.build();
+        }
+
+        /// <summary>
+        /// 保存或新增作答记录
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("SaveorUpdataLeanRecord")]
+        public async Task<BaseJosnRPCResponse> SaveorUpdataLeanRecordAsync(JosnRPCRequest<List<LeanRecord>> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            if (ValidateHelper.IsValid(request.@params))
+            {
+                request.@params.ForEach(x =>
+                {
+                    if (string.IsNullOrEmpty(x.id))
+                    {
+                        x.id = new Guid().ToString();
+                    }
+
+                });
+
+                List<LeanRecord> leanProcesses = await cosmosDBV3Repository.SaveOrUpdateAll<LeanRecord>(request.@params);
+                builder.Data(leanProcesses);
+            }
+            return builder.build();
+        }
+
+        /// <summary>
+        /// 查询编序作答记录
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("FindLeanRecord")]
+        public async Task<BaseJosnRPCResponse> FindLeanRecord(JosnRPCRequest<Dictionary<string, object>> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            if (request.@params != null)
+            {
+                builder.Data(await cosmosDBV3Repository.FindByDict<LeanRecord>(request.@params));
+            }
+            return builder.build();
+        }
+
+
+        /// <summary>
+        /// 删除作答记录
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("DeleteLeanRecord")]
+        public async Task<BaseJosnRPCResponse> DeleteLeanRecord(JosnRPCRequest<IdPk> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            if (request.@params != null)
+            {
+                builder.Data(await cosmosDBV3Repository.DeleteAsync<LeanRecord>(request.@params));
+            }
+            return builder.build();
+        }
     }
 }