Explorar o código

1、新增教师打分、写评语接口,可以修改评论
2、新增学生打分、写评语接口,可以互评、盖楼
3、新增教师教师评语罐头增删改查

李思淳 %!s(int64=5) %!d(string=hai) anos
pai
achega
a06145f811

+ 32 - 32
TEAMModelOS.Service/Models/Learn/HomeWork.cs

@@ -104,48 +104,48 @@ namespace TEAMModelOS.Service.Models.Learn
 
 
         /// <summary>
         /// <summary>
         /// 发布对象
         /// 发布对象
-        /// </summary>
-        public class Target {
-            [Required(ErrorMessage = "{0} 必须填写")]
-            public string classroomCode { get; set; }
-            [Required(ErrorMessage = "{0} 必须填写")]
-            public string scopeCode { get; set; }
-            public string classroomName { get; set; }
-        }
+        ///// </summary>
+        //public class Target {
+        //    [Required(ErrorMessage = "{0} 必须填写")]
+        //    public string classroomCode { get; set; }
+        //    [Required(ErrorMessage = "{0} 必须填写")]
+        //    public string scopeCode { get; set; }
+        //    public string classroomName { get; set; }
+        //}
 
 
         /// <summary>
         /// <summary>
         /// 作业附件
         /// 作业附件
         /// </summary>
         /// </summary>
-        public class ProcessRes
-        {
-            /// <summary>
-            /// 文件名字
-            /// </summary>
-            public string fileName { get; set; }
+        //public class ProcessRes
+        //{
+        //    /// <summary>
+        //    /// 文件名字
+        //    /// </summary>
+        //    public string fileName { get; set; }
             
             
-            /// <summary>
-            /// 
-            /// </summary>
-            public string blobUrl { get; set; }
+        //    /// <summary>
+        //    /// 
+        //    /// </summary>
+        //    public string blobUrl { get; set; }
 
 
-            /// <summary>
-            /// 文件大小
-            /// </summary>
-            public long size { get; set; }
+        //    /// <summary>
+        //    /// 文件大小
+        //    /// </summary>
+        //    public long size { get; set; }
 
 
-            /// <summary>
-            /// 缩略图链接  图片视频有 文件没有
-            /// </summary>
-            public string compressUrl { get; set; }
+        //    /// <summary>
+        //    /// 缩略图链接  图片视频有 文件没有
+        //    /// </summary>
+        //    public string compressUrl { get; set; }
 
 
-            /// <summary>
-            /// 文件类型
-            /// </summary>
-            public string type { get; set; }
+        //    /// <summary>
+        //    /// 文件类型
+        //    /// </summary>
+        //    public string type { get; set; }
 
 
-            public int order { get; set; }
+        //    public int order { get; set; }
 
 
-        }
+        //}
 
 
 
 
     }
     }

+ 81 - 36
TEAMModelOS.Service/Models/Learn/HomeWorkStudent.cs

@@ -16,9 +16,10 @@ namespace TEAMModelOS.Service.Models.Learn
     {
     {
         public HomeWorkStudent() {
         public HomeWorkStudent() {
             content = new List<HomeWorkContent>();
             content = new List<HomeWorkContent>();
-            comments = new List<HomeWorkComment>();
+            studentComments = new List<StudentComment>();
             classroom = new ClassroomItem();
             classroom = new ClassroomItem();
             nativeroom = new ClassroomItem();
             nativeroom = new ClassroomItem();
+            teacherComments = new HomeWorkComment();
         }
         }
         public string id { get; set; }
         public string id { get; set; }
 
 
@@ -75,10 +76,15 @@ namespace TEAMModelOS.Service.Models.Learn
 
 
 
 
         /// <summary>
         /// <summary>
-        /// 作业评论
+        /// 作业评论 (同学互评)
         /// </summary>
         /// </summary>
-        public List<HomeWorkComment> comments { get; set; }
-        //public Dictionary<string,HomeWorkComment> comments { get; set; }
+        public List<StudentComment> studentComments { get; set; }
+
+
+        /// <summary>
+        /// 教师评语
+        /// </summary>
+        public HomeWorkComment teacherComments { get; set; }
     }
     }
 
 
     public class ClassroomItem {
     public class ClassroomItem {
@@ -115,43 +121,41 @@ namespace TEAMModelOS.Service.Models.Learn
     }
     }
 
 
 
 
-    public class ProcessRes
-    {
-        /// <summary>
-        /// 文件名字
-        /// </summary>
-        public string fileName { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public string blobUrl { get; set; }
+    //public class ProcessRes
+    //{
+    //    /// <summary>
+    //    /// 文件名字
+    //    /// </summary>
+    //    public string fileName { get; set; }
 
 
-        /// <summary>
-        /// 文件大小
-        /// </summary>
-        public long size { get; set; }
+    //    /// <summary>
+    //    /// 
+    //    /// </summary>
+    //    public string blobUrl { get; set; }
 
 
-        /// <summary>
-        /// 缩略图链接  图片视频有 文件没有
-        /// </summary>
-        public string compressUrl { get; set; }
+    //    /// <summary>
+    //    /// 文件大小
+    //    /// </summary>
+    //    public long size { get; set; }
 
 
-        /// <summary>
-        /// 文件类型
-        /// </summary>
-        public string type { get; set; }
+    //    /// <summary>
+    //    /// 缩略图链接  图片视频有 文件没有
+    //    /// </summary>
+    //    public string compressUrl { get; set; }
 
 
-        public int order { get; set; }
+    //    /// <summary>
+    //    /// 文件类型
+    //    /// </summary>
+    //    public string type { get; set; }
 
 
-    }
+    //    public int order { get; set; }
 
 
-    /// <summary>
-    /// 作业评论
-    /// </summary>
-    public class HomeWorkComment {
+    //}
 
 
-        public HomeWorkComment(){
+    public class StudentComment
+    {
+        public StudentComment()
+        {
             reply = new List<Reply>();
             reply = new List<Reply>();
         }
         }
 
 
@@ -170,6 +174,11 @@ namespace TEAMModelOS.Service.Models.Learn
         /// </summary>
         /// </summary>
         public string toId { get; set; }
         public string toId { get; set; }
 
 
+        /// <summary>
+        /// 学生打分
+        /// </summary>
+        public double score { get; set; } = -1;
+
         /// <summary>
         /// <summary>
         /// 评论者身份 教师 学生
         /// 评论者身份 教师 学生
         /// </summary>
         /// </summary>
@@ -185,10 +194,46 @@ namespace TEAMModelOS.Service.Models.Learn
         /// </summary>
         /// </summary>
         public long createTime { get; set; }
         public long createTime { get; set; }
 
 
+        ///// <summary>
+        ///// 评论回复
+        ///// </summary>
+        public List<Reply>  reply { get; set; }
+
+    }
+
+
+
+    /// <summary>
+    /// 作业评论
+    /// </summary>
+    public class HomeWorkComment {
+       
+
         /// <summary>
         /// <summary>
-        /// 评论回复
+        /// 评论者身份 教师 学生
         /// </summary>
         /// </summary>
-        public List<Reply>  reply { get; set; }
+        public string identity { get; set; }
+
+        /// <summary>
+        /// 评语
+        /// </summary>
+        public string comment { get; set; }
+
+        /// <summary>
+        /// 评论时间
+        /// </summary>
+        public long createTime { get; set; }
+
+
+        /// <summary>
+        /// 醍摩豆id 或者学生id
+        /// </summary>
+        public string TEAMModelId { get; set; }
+
+        ///// <summary>
+        ///// 评论回复
+        ///// </summary>
+        //public List<Reply>  reply { get; set; }
 
 
     }
     }
 
 

+ 53 - 33
TEAMModelOS.Service/Models/Learn/LearningAutonomous.cs

@@ -28,6 +28,8 @@ namespace TEAMModelOS.Service.Models.Learn
         /// </summary>
         /// </summary>
         public string name { get; set; }
         public string name { get; set; }
 
 
+     
+
         /// <summary>
         /// <summary>
         /// 学科code
         /// 学科code
         /// </summary>
         /// </summary>
@@ -65,6 +67,17 @@ namespace TEAMModelOS.Service.Models.Learn
         [Required(ErrorMessage = "{0} 必须填写")]
         [Required(ErrorMessage = "{0} 必须填写")]
         public string isOrder { get; set; }
         public string isOrder { get; set; }
 
 
+        /// <summary>
+        /// 状态 
+        /// </summary>
+        public int state { get; set; }
+
+
+        /// <summary>
+        /// 发布模式 0 立即发布 1 定时
+        /// </summary>
+        public string publishModel { get; set; }
+
         /// <summary>
         /// <summary>
         /// 创建时间
         /// 创建时间
         /// </summary>
         /// </summary>
@@ -76,18 +89,25 @@ namespace TEAMModelOS.Service.Models.Learn
         [Required(ErrorMessage = "{0} 必须填写")]
         [Required(ErrorMessage = "{0} 必须填写")]
         public string creator { get; set; }
         public string creator { get; set; }
 
 
-      
+        /// <summary>
+        /// 开始时间
+        /// </summary>
+        public long startTime { get; set; }
+
+
         /// <summary>
         /// <summary>
         /// 截至时间 时间戳
         /// 截至时间 时间戳
         /// </summary>
         /// </summary>
-        public int expire { get; set; }
+        public int endTime { get; set; }
 
 
-        public class Target
-        {
-            public string classroomCode { get; set; }
+        //public class Target
+        //{
+        //    public string classroomCode { get; set; }
 
 
-            public string scopeCode { get; set; }
-        }
+        //    public string scopeCode { get; set; }
+
+        //    public string classroomName { get; set; }
+        //}
 
 
         public class ProcessStep
         public class ProcessStep
         {
         {
@@ -110,40 +130,40 @@ namespace TEAMModelOS.Service.Models.Learn
             public string name { get; set; }
             public string name { get; set; }
         }
         }
 
 
-        public class ProcessRes
-        {
-            /// <summary>
-            /// 文件名字
-            /// </summary>
-            [Required(ErrorMessage = "{0} 必须填写")]
-            public string fileName { get; set; }
+        //public class ProcessRes
+        //{
+        //    /// <summary>
+        //    /// 文件名字
+        //    /// </summary>
+        //    [Required(ErrorMessage = "{0} 必须填写")]
+        //    public string fileName { get; set; }
             
             
-            /// <summary>
-            /// 
-            /// </summary>
-            [Required(ErrorMessage = "{0} 必须填写")]
-            public string blobUrl { get; set; }
+        //    /// <summary>
+        //    /// 
+        //    /// </summary>
+        //    [Required(ErrorMessage = "{0} 必须填写")]
+        //    public string blobUrl { get; set; }
             
             
             
             
-            public int order { get; set; }
+        //    public int order { get; set; }
 
 
-            /// <summary>
-            /// 文件大小
-            /// </summary>
-            public long size { get; set; }
+        //    /// <summary>
+        //    /// 文件大小
+        //    /// </summary>
+        //    public long size { get; set; }
 
 
-            /// <summary>
-            /// 缩略图链接  图片视频有 文件没有
-            /// </summary>
-            public string compressUrl { get; set; }
+        //    /// <summary>
+        //    /// 缩略图链接  图片视频有 文件没有
+        //    /// </summary>
+        //    public string compressUrl { get; set; }
 
 
-            /// <summary>
-            /// 文件类型
-            /// </summary>
-            public string type { get; set; }
+        //    /// <summary>
+        //    /// 文件类型
+        //    /// </summary>
+        //    public string type { get; set; }
 
 
 
 
 
 
-        }
+        //}
     }
     }
 }
 }

+ 44 - 0
TEAMModelOS.Service/Models/Learn/ProcessRes.cs

@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Text;
+
+namespace TEAMModelOS.Service.Models.Learn
+{
+    /// <summary>
+    /// 作业附件
+    /// </summary>
+    public class ProcessRes
+    {
+        /// <summary>
+        /// 文件名字
+        /// </summary>
+        [Required(ErrorMessage = "{0} 必须填写")]
+        public string fileName { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [Required(ErrorMessage = "{0} 必须填写")]
+        public string blobUrl { get; set; }
+
+
+        public int order { get; set; }
+
+        /// <summary>
+        /// 文件大小
+        /// </summary>
+        public long size { get; set; }
+
+        /// <summary>
+        /// 缩略图链接  图片视频有 文件没有
+        /// </summary>
+        public string compressUrl { get; set; }
+
+        /// <summary>
+        /// 文件类型
+        /// </summary>
+        public string type { get; set; }
+
+    }
+}

+ 20 - 0
TEAMModelOS.Service/Models/Learn/Target.cs

@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Text;
+
+namespace TEAMModelOS.Service.Models.Learn
+{
+    /// <summary>
+    /// 发布对象
+    /// </summary>
+    public class Target
+    {
+        [Required(ErrorMessage = "{0} 必须填写")]
+        public string classroomCode { get; set; }
+        [Required(ErrorMessage = "{0} 必须填写")]
+        public string scopeCode { get; set; }
+        public string classroomName { get; set; }
+
+    }
+}

+ 48 - 0
TEAMModelOS.Service/Models/Learn/TeacherComments.cs

@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using TEAMModelOS.SDK.Context.Attributes.Azure;
+using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
+
+namespace TEAMModelOS.Service.Models.Learn
+{
+    [CosmosDB(RU = 400, Name = "HomeWorkTeacherComments")]
+    public class TeacherComments : ID
+    {
+        public TeacherComments(){
+            comment = new List<Comment>();
+        }
+
+        public string id { get; set; }
+
+        /// <summary>
+        /// 评语
+        /// </summary>
+        public List<Comment> comment { get; set; }
+
+        /// <summary>
+        /// 醍摩豆id 或者学生id
+        /// </summary>
+        [PartitionKey]
+        public string TEAMModelId { get; set; }
+
+
+        public class Comment 
+        {
+            /// <summary>
+            /// 评语
+            /// </summary>
+            public string comment { get; set; }
+
+            /// <summary>
+            /// 评论时间
+            /// </summary>
+            public long createTime { get; set; } = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
+
+            public string id { get; set; }
+
+            public int order { get; set; }
+
+        }
+    }
+}

+ 84 - 74
TEAMModelOS.Service/TEAMModelOS.Model.xml

@@ -324,41 +324,6 @@
             
             
             </summary>
             </summary>
         </member>
         </member>
-        <member name="T:TEAMModelOS.Service.Models.Learn.HomeWork.Target">
-            <summary>
-            发布对象
-            </summary>
-        </member>
-        <member name="T:TEAMModelOS.Service.Models.Learn.HomeWork.ProcessRes">
-            <summary>
-            作业附件
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWork.ProcessRes.fileName">
-            <summary>
-            文件名字
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWork.ProcessRes.blobUrl">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWork.ProcessRes.size">
-            <summary>
-            文件大小
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWork.ProcessRes.compressUrl">
-            <summary>
-            缩略图链接  图片视频有 文件没有
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWork.ProcessRes.type">
-            <summary>
-            文件类型
-            </summary>
-        </member>
         <member name="T:TEAMModelOS.Service.Models.Learn.HomeWorkStudent">
         <member name="T:TEAMModelOS.Service.Models.Learn.HomeWorkStudent">
             <summary>
             <summary>
             作业数据
             作业数据
@@ -409,9 +374,14 @@
             作业内容
             作业内容
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkStudent.comments">
+        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkStudent.studentComments">
             <summary>
             <summary>
-            作业评论
+            作业评论 (同学互评)
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkStudent.teacherComments">
+            <summary>
+            教师评语
             </summary>
             </summary>
         </member>
         </member>
         <member name="T:TEAMModelOS.Service.Models.Learn.HomeWorkContent">
         <member name="T:TEAMModelOS.Service.Models.Learn.HomeWorkContent">
@@ -429,49 +399,44 @@
              其他模式url 及name
              其他模式url 及name
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.fileName">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.commentid">
             <summary>
             <summary>
-            文件名字
-            </summary>
-        </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.blobUrl">
-            <summary>
-            
+            评论id
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.size">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.fromId">
             <summary>
             <summary>
-            文件大小
+            评论者id 醍摩豆或studenId
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.compressUrl">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.toId">
             <summary>
             <summary>
-            缩略图链接  图片视频有 文件没有
+            被评论者id 醍摩豆或studenId
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.type">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.score">
             <summary>
             <summary>
-            文件类型
+            学生打分
             </summary>
             </summary>
         </member>
         </member>
-        <member name="T:TEAMModelOS.Service.Models.Learn.HomeWorkComment">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.identity">
             <summary>
             <summary>
-            作业评论
+            评论者身份 教师 学生
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.commentid">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.comment">
             <summary>
             <summary>
-            评论id
+            评
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.fromId">
+        <member name="P:TEAMModelOS.Service.Models.Learn.StudentComment.createTime">
             <summary>
             <summary>
-            评论者id 醍摩豆或studenId
+            评论时间
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.toId">
+        <member name="T:TEAMModelOS.Service.Models.Learn.HomeWorkComment">
             <summary>
             <summary>
-            被评论者id 醍摩豆或studenId
+            作业评论
             </summary>
             </summary>
         </member>
         </member>
         <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.identity">
         <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.identity">
@@ -489,9 +454,9 @@
             评论时间
             评论时间
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.reply">
+        <member name="P:TEAMModelOS.Service.Models.Learn.HomeWorkComment.TEAMModelId">
             <summary>
             <summary>
-            评论回复
+            醍摩豆id 或者学生id
             </summary>
             </summary>
         </member>
         </member>
         <member name="T:TEAMModelOS.Service.Models.Learn.Reply">
         <member name="T:TEAMModelOS.Service.Models.Learn.Reply">
@@ -609,6 +574,16 @@
             是否闯关模式 0 或 1 vue组件不支持true false
             是否闯关模式 0 或 1 vue组件不支持true false
             </summary>
             </summary>
         </member>
         </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.state">
+            <summary>
+            状态 
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.publishModel">
+            <summary>
+            发布模式 0 立即发布 1 定时
+            </summary>
+        </member>
         <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.createTime">
         <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.createTime">
             <summary>
             <summary>
             创建时间
             创建时间
@@ -619,7 +594,12 @@
             创建者
             创建者
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.expire">
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.startTime">
+            <summary>
+            开始时间
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.endTime">
             <summary>
             <summary>
             截至时间 时间戳
             截至时间 时间戳
             </summary>
             </summary>
@@ -635,49 +615,79 @@
             题目
             题目
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.ProcessRes.fileName">
+        <member name="T:TEAMModelOS.Service.Models.Learn.LearnUnit">
+            <summary>
+            考试基础信息
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearnUnit.resource">
+            <summary>
+            资源内容
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearnUnit.item">
+            <summary>
+            题目
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.LearnUnit.name">
+            <summary>
+            名称
+            </summary>
+        </member>
+        <member name="T:TEAMModelOS.Service.Models.Learn.ProcessRes">
+            <summary>
+            作业附件
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.fileName">
             <summary>
             <summary>
             文件名字
             文件名字
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.ProcessRes.blobUrl">
+        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.blobUrl">
             <summary>
             <summary>
             
             
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.ProcessRes.size">
+        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.size">
             <summary>
             <summary>
             文件大小
             文件大小
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.ProcessRes.compressUrl">
+        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.compressUrl">
             <summary>
             <summary>
             缩略图链接  图片视频有 文件没有
             缩略图链接  图片视频有 文件没有
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearningAutonomous.ProcessRes.type">
+        <member name="P:TEAMModelOS.Service.Models.Learn.ProcessRes.type">
             <summary>
             <summary>
             文件类型
             文件类型
             </summary>
             </summary>
         </member>
         </member>
-        <member name="T:TEAMModelOS.Service.Models.Learn.LearnUnit">
+        <member name="T:TEAMModelOS.Service.Models.Learn.Target">
             <summary>
             <summary>
-            考试基础信息
+            发布对象
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearnUnit.resource">
+        <member name="P:TEAMModelOS.Service.Models.Learn.TeacherComments.comment">
             <summary>
             <summary>
-            资源内容
+            评语
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearnUnit.item">
+        <member name="P:TEAMModelOS.Service.Models.Learn.TeacherComments.TEAMModelId">
             <summary>
             <summary>
-            题目
+            醍摩豆id 或者学生id
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:TEAMModelOS.Service.Models.Learn.LearnUnit.name">
+        <member name="P:TEAMModelOS.Service.Models.Learn.TeacherComments.Comment.comment">
             <summary>
             <summary>
-            名称
+            评语
+            </summary>
+        </member>
+        <member name="P:TEAMModelOS.Service.Models.Learn.TeacherComments.Comment.createTime">
+            <summary>
+            评论时间
             </summary>
             </summary>
         </member>
         </member>
         <member name="T:TEAMModelOS.Service.Models.Syllabus.Knowledge">
         <member name="T:TEAMModelOS.Service.Models.Syllabus.Knowledge">

+ 186 - 33
TEAMModelOS/Controllers/Learn/HomeWorkController.cs

@@ -35,12 +35,12 @@ namespace TEAMModelOS.Controllers.Learn
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpPost("RevokeHomeWork")]
         [HttpPost("RevokeHomeWork")]
-        public async Task<BaseJosnRPCResponse> RevokeHomeWork(JosnRPCRequest<string> homeWorkId) 
+        public async Task<BaseJosnRPCResponse> RevokeHomeWork(JosnRPCRequest<string> homeWorkId)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             List<HomeWork> homeWorks = await _cosmos.FindByDict<HomeWork>(new Dictionary<string, object> { { "id", homeWorkId.@params } });
             List<HomeWork> homeWorks = await _cosmos.FindByDict<HomeWork>(new Dictionary<string, object> { { "id", homeWorkId.@params } });
 
 
-            foreach (HomeWork homeWork in homeWorks) 
+            foreach (HomeWork homeWork in homeWorks)
             {
             {
                 homeWork.state = 100;
                 homeWork.state = 100;
             }
             }
@@ -82,7 +82,7 @@ namespace TEAMModelOS.Controllers.Learn
             if (!request.@params.reset)
             if (!request.@params.reset)
             {
             {
 
 
-              
+
                 //根据作业发布对象查找到每一个具体学生生成关联关系表 HomeWorkStudent
                 //根据作业发布对象查找到每一个具体学生生成关联关系表 HomeWorkStudent
                 List<Target> targets = request.@params.homeWork.target;
                 List<Target> targets = request.@params.homeWork.target;
                 List<ClassroomStudent> Classrooms = new List<ClassroomStudent>();
                 List<ClassroomStudent> Classrooms = new List<ClassroomStudent>();
@@ -91,9 +91,9 @@ namespace TEAMModelOS.Controllers.Learn
                 {
                 {
                     //查询之前是否有 关联关系表 HomeWorkStudent 有则删除
                     //查询之前是否有 关联关系表 HomeWorkStudent 有则删除
                     List<HomeWorkStudent> homeWorks = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "homeWorkId", request.@params.homeWork.id } });
                     List<HomeWorkStudent> homeWorks = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "homeWorkId", request.@params.homeWork.id } });
-                    if (homeWorks.IsNotEmpty()) 
+                    if (homeWorks.IsNotEmpty())
                     {
                     {
-                      await _cosmos.DeleteAll(homeWorks);
+                        await _cosmos.DeleteAll(homeWorks);
                     }
                     }
 
 
                     List<ClassroomStudent> classroom = await _cosmos.FindByDict<ClassroomStudent>(new Dictionary<string, object> { { "id", target.classroomCode }, { "scopeCode", target.scopeCode } });
                     List<ClassroomStudent> classroom = await _cosmos.FindByDict<ClassroomStudent>(new Dictionary<string, object> { { "id", target.classroomCode }, { "scopeCode", target.scopeCode } });
@@ -140,7 +140,7 @@ namespace TEAMModelOS.Controllers.Learn
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpPost("SaveorUpdataWorkStudents")]
         [HttpPost("SaveorUpdataWorkStudents")]
-        public async Task<BaseJosnRPCResponse> SaveorUpdataWorkStudents(JosnRPCRequest<List<HomeWorkStudent>> request) 
+        public async Task<BaseJosnRPCResponse> SaveorUpdataWorkStudents(JosnRPCRequest<List<HomeWorkStudent>> request)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             await _cosmos.SaveOrUpdateAll<HomeWorkStudent>(request.@params);
             await _cosmos.SaveOrUpdateAll<HomeWorkStudent>(request.@params);
@@ -153,7 +153,8 @@ namespace TEAMModelOS.Controllers.Learn
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpPost("FindHomeWork")]
         [HttpPost("FindHomeWork")]
-        public async Task<BaseJosnRPCResponse> FindHomeWork(JosnRPCRequest<Dictionary<string,object>> request) {
+        public async Task<BaseJosnRPCResponse> FindHomeWork(JosnRPCRequest<Dictionary<string, object>> request)
+        {
 
 
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             List<HomeWork> data = new List<HomeWork>();
             List<HomeWork> data = new List<HomeWork>();
@@ -199,10 +200,10 @@ namespace TEAMModelOS.Controllers.Learn
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpPost("FindClassroom")]
         [HttpPost("FindClassroom")]
-        public async Task<BaseJosnRPCResponse> FindClassroom(JosnRPCRequest<string> request) 
+        public async Task<BaseJosnRPCResponse> FindClassroom(JosnRPCRequest<string> request)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
-            List<Course> courses = await _cosmos.FindByDict<Course>(dict:new Dictionary<string, object> { { "assistTeacher[*]", request.@params },{ "scopeCode.|", request.@params } }, propertys: new List<string> { "classroom" });
+            List<Course> courses = await _cosmos.FindByDict<Course>(dict: new Dictionary<string, object> { { "assistTeacher[*]", request.@params }, { "scopeCode.|", request.@params } }, propertys: new List<string> { "classroom" });
             //List<Course> courses2 = await _cosmos.FindByDict<Course>(dict:new Dictionary<string, object> { { "scopeCode", request.@params } }, propertys: new List<string> { "classroom" });
             //List<Course> courses2 = await _cosmos.FindByDict<Course>(dict:new Dictionary<string, object> { { "scopeCode", request.@params } }, propertys: new List<string> { "classroom" });
             //List<Course> courses = new List<Course>();
             //List<Course> courses = new List<Course>();
             //courses.AddRange(courses1);
             //courses.AddRange(courses1);
@@ -223,45 +224,78 @@ namespace TEAMModelOS.Controllers.Learn
                     builder.Data(classroom1);
                     builder.Data(classroom1);
                 }
                 }
             }
             }
-            else {
+            else
+            {
 
 
                 throw new BizException("没有找到该老师协同课程", ResponseCode.NOT_FOUND);
                 throw new BizException("没有找到该老师协同课程", ResponseCode.NOT_FOUND);
             }
             }
-            
-           
-
             return builder.build();
             return builder.build();
         }
         }
 
 
 
 
 
 
         /// <summary>
         /// <summary>
-        /// 作业打分
+        /// 教师作业打分评论
         /// </summary>
         /// </summary>
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
-        [HttpPost("Scoring")]
-        public async Task<BaseJosnRPCResponse> HomeWorkScoring(JosnRPCRequest<HomeWorkScoringDto> request) 
+        [HttpPost("TeacherScoring")]
+        public async Task<BaseJosnRPCResponse> TeacherScoring(JosnRPCRequest<HomeWorkScoringDto> request)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             List<HomeWorkStudent> homeWorkStudents = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "id", request.@params.id }, { "homeWorkId", request.@params.homeWorkId } });
             List<HomeWorkStudent> homeWorkStudents = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "id", request.@params.id }, { "homeWorkId", request.@params.homeWorkId } });
             HomeWorkStudent data = new HomeWorkStudent();
             HomeWorkStudent data = new HomeWorkStudent();
-            if (homeWorkStudents.IsNotEmpty()) {
+            if (homeWorkStudents.IsNotEmpty())
+            {
+                if (!double.IsNegative(request.@params.score)) homeWorkStudents[0].score = request.@params.score;
+                HomeWorkComment homeWorkComment = new HomeWorkComment
+                {
+                    comment = request.@params.comments,
+                    createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(),
+                    TEAMModelId = request.@params.TEAMModelId
+                };
 
 
-                homeWorkStudents[0].score = request.@params.score;
-                data = await _cosmos.Update(homeWorkStudents[0]);
+                homeWorkStudents[0].teacherComments = homeWorkComment;
+                data = await _cosmos.SaveOrUpdate(homeWorkStudents[0]);
             }
             }
-            return builder.Data(data).build() ;
+            return builder.Data(data).build();
         }
         }
 
 
 
 
+        ///// <summary>
+        ///// 学生作业打分评论
+        ///// </summary>
+        ///// <param name="request"></param>
+        ///// <returns></returns>
+        //[HttpPost("StudentScoring")]
+        //public async Task<BaseJosnRPCResponse> StudentScoring(JosnRPCRequest<HomeWorkCommentDto> request)
+        //{
+        //    JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+        //    List<HomeWorkStudent> homeWorkStudents = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "id", request.@params.id }, { "homeWorkId", request.@params.homeWorkId } });
+        //    HomeWorkStudent data = new HomeWorkStudent();
+        //    if (homeWorkStudents.IsNotEmpty())
+        //    {
+        //        StudentComment homeWorkComment = new StudentComment
+        //        {
+        //            comment = request.@params.comment,
+        //            createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(),
+        //            TEAMModelId = request.@params.fromId
+        //        };
+        //        if (!double.IsNegative(request.@params.score)) homeWorkComment.score = request.@params.score;
+        //        homeWorkStudents[0].studentComments.Add(homeWorkComment);
+        //        data = await _cosmos.SaveOrUpdate(homeWorkStudents[0]);
+        //    }
+        //    return builder.Data(data).build();
+        //}
+
+
         /// <summary>
         /// <summary>
         /// 作业评论
         /// 作业评论
         /// </summary>
         /// </summary>
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
-        [HttpPost("Comment")]
-        public async Task<BaseJosnRPCResponse> HomeWorkComment(JosnRPCRequest<HomeWorkCommentDto> request)
+        [HttpPost("StudentScoring")]
+        public async Task<BaseJosnRPCResponse> StudentScoring(JosnRPCRequest<HomeWorkCommentDto> request)
         {
         {
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
             List<HomeWorkStudent> homeWorkStudents = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "id", request.@params.id }, { "homeWorkId", request.@params.homeWorkId } });
             List<HomeWorkStudent> homeWorkStudents = await _cosmos.FindByDict<HomeWorkStudent>(new Dictionary<string, object> { { "id", request.@params.id }, { "homeWorkId", request.@params.homeWorkId } });
@@ -271,20 +305,23 @@ namespace TEAMModelOS.Controllers.Learn
                 if (string.IsNullOrEmpty(request.@params.commentid))
                 if (string.IsNullOrEmpty(request.@params.commentid))
                 {
                 {
                     //评论
                     //评论
-                    HomeWorkComment comment = new HomeWorkComment();
-                    comment.commentid = Guid.NewGuid().ToString();
-                    comment.fromId = request.@params.fromId;
-                    comment.toId = request.@params.toId;
-                    comment.identity = request.@params.identity;
-                    comment.comment = request.@params.comment;
-                    comment.createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
-                    homeWorkStudents[0].comments.Add(comment);
+                    StudentComment homeWorkComment = new StudentComment
+                    {
+                        commentid = Guid.NewGuid().ToString(),
+                        comment = request.@params.comment,
+                        createTime = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(),
+                        fromId = request.@params.fromId
+                    };
+                    if (!double.IsNegative(request.@params.score)) homeWorkComment.score = request.@params.score;
+                    homeWorkStudents[0].studentComments.Add(homeWorkComment);
                 }
                 }
-                else 
+                else
                 {
                 {
                     //回复评论
                     //回复评论
-                    foreach (HomeWorkComment comment in homeWorkStudents[0].comments ) {
-                        if (comment.commentid == request.@params.commentid) {
+                    foreach (StudentComment comment in homeWorkStudents[0].studentComments)
+                    {
+                        if (comment.commentid == request.@params.commentid)
+                        {
                             Reply reply = new Reply();
                             Reply reply = new Reply();
                             reply.fromId = request.@params.fromId;
                             reply.fromId = request.@params.fromId;
                             reply.toId = request.@params.toId;
                             reply.toId = request.@params.toId;
@@ -302,5 +339,121 @@ namespace TEAMModelOS.Controllers.Learn
             return builder.Data(data).build();
             return builder.Data(data).build();
         }
         }
 
 
+
+        /// <summary>
+        /// 保存教师评语快捷回复
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("SaveOrUpdateTeacherComments")]
+        public async Task<BaseJosnRPCResponse> SaveOrUpdateTeacherComments(JosnRPCRequest<TeacherCommentsDto> request)
+        {
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            List<TeacherComments> teacherComments1 = await _cosmos.FindByDict<TeacherComments>(new Dictionary<string, object> { { "TEAMModelId", request.@params.TEAMModelId } });
+            if (teacherComments1.IsEmpty()) {
+                teacherComments1 = new List<TeacherComments>();
+                TeacherComments teacher = new TeacherComments();
+                teacher.id = Guid.NewGuid().ToString();
+                teacher.TEAMModelId = request.@params.TEAMModelId;
+                teacherComments1.Add(teacher);
+            }
+
+            foreach (TeacherComments item in teacherComments1) {
+                TeacherComments.Comment comment = new TeacherComments.Comment();
+                comment.comment = request.@params.comment;
+                //comment.createTime = new DateTimeOffset(DateTime.Now).ToUnixTimeMilliseconds();
+                comment.id = CreateRandomCode(6); 
+                item.comment.Add(comment);
+            }
+            List<TeacherComments> teacherComments = await _cosmos.SaveOrUpdateAll(teacherComments1);
+            if (teacherComments.IsNotEmpty()) builder.Data(teacherComments);
+
+            return builder.build();
+        }
+   
+        /// <summary>
+        /// 查询教师评语罐头
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("FindTeacherComments")]
+        public async Task<BaseJosnRPCResponse> FindTeacherComments(JosnRPCRequest<Dictionary<string, object>> request)
+        {
+            // request.@params.TryAdd("PartitionKey", request.lang);
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            List<TeacherComments> data = new List<TeacherComments>();
+            if (request.@params.IsNotEmpty())
+            {
+                data = await _cosmos.FindByDict<TeacherComments>(request.@params);
+            }
+            else
+            {
+                throw new BizException("参数异常", ResponseCode.PARAMS_ERROR);
+            }
+            return builder.Data(data.OrderBy(m => m.comment.OrderBy(c => c.order))).Extend(new Dictionary<string, object> { { "count", data.Count } }).build();
+        }
+
+        [HttpPost("DeleteTeacherComments")]
+        public async Task<BaseJosnRPCResponse> DeleteTeacherComments(JosnRPCRequest<Dictionary<string, object>> request)
+        {
+            // request.@params.TryAdd("PartitionKey", request.lang);
+            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
+            List<TeacherComments> data = new List<TeacherComments>();
+            if (request.@params.IsNotEmpty())
+            {
+                request.@params.TryGetValue("TEAMModelId", out object TEAMModelId);
+                request.@params.TryGetValue("id", out object id);
+                data = await _cosmos.FindByDict<TeacherComments>(new Dictionary<string, object> { { "TEAMModelId", TEAMModelId.ToString() } });
+                foreach (TeacherComments teacherComments in  data) {
+                    List<TeacherComments.Comment> comment = new List<TeacherComments.Comment>();
+                    comment.AddRange(teacherComments.comment);
+
+                    comment.ForEach(x =>
+                    {
+                        if (x.id.Equals(id + "")) {
+                            teacherComments.comment.Remove(x);
+                        }
+                    });
+                }
+                data = await _cosmos.SaveOrUpdateAll<TeacherComments>(data);
+
+            }
+            else
+            {
+                throw new BizException("参数异常", ResponseCode.PARAMS_ERROR);
+            }
+            return builder.Data(data).build();
+        }
+
+
+        /// <summary>
+        /// 生成随机数
+        /// </summary>
+        /// <param name="codeCount"></param>
+        /// <returns></returns>
+        public string CreateRandomCode(int codeCount)  //生成随机数
+        {
+            string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";//没有0O
+            string[] allCharArray = allChar.Split(',');
+            string randomCode = "";
+            int temp = -1;
+            Random rand = new Random();
+            for (int i = 0; i < codeCount; i++)
+            {
+                if (temp != -1)
+                {
+                    rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
+                }
+                int t = rand.Next(34);
+                if (temp != -1 && temp == t)
+                {
+                    return CreateRandomCode(codeCount);
+                }
+                temp = t;
+                randomCode += allCharArray[t];
+            }
+            return randomCode;
+        }
+
     }
     }
 }
 }

+ 6 - 0
TEAMModelOS/Models/HomeWorkCommentDto.cs

@@ -37,5 +37,11 @@ namespace TEAMModelOS.Models
         /// 评语
         /// 评语
         /// </summary>
         /// </summary>
         public string comment { get; set; }
         public string comment { get; set; }
+
+
+        /// <summary>
+        /// 学生分数
+        /// </summary>
+        public double score { get; set; }
     }
     }
 }
 }

+ 24 - 1
TEAMModelOS/Models/HomeWorkScoringDto.cs

@@ -9,12 +9,35 @@ namespace TEAMModelOS.Models
 {
 {
     public class HomeWorkScoringDto
     public class HomeWorkScoringDto
     {
     {
+        /// <summary>
+        /// 学生作业关联id
+        /// </summary>
         [Required(ErrorMessage = "{0} 必须填写")]
         [Required(ErrorMessage = "{0} 必须填写")]
         public string id { get; set; }
         public string id { get; set; }
+        
+        /// <summary>
+        /// 作业id
+        /// </summary>
         [Required(ErrorMessage = "{0} 必须填写")]
         [Required(ErrorMessage = "{0} 必须填写")]
         public string homeWorkId { get; set; }
         public string homeWorkId { get; set; }
+
+        /// <summary>
+        /// 教师打分
+        /// </summary>
+        public double score { get; set; } = -1;
+
+        [Required(ErrorMessage = "{0} 必须填写")]
+        public string comments { get; set; }
+
+        /// <summary>
+        ///  醍摩豆id 或者学生id
+        /// </summary>
         [Required(ErrorMessage = "{0} 必须填写")]
         [Required(ErrorMessage = "{0} 必须填写")]
-        public double score { get; set; }
+        public string TEAMModelId { get; set; }
 
 
+        /// <summary>
+        /// 学生打星星
+        /// </summary>
+        public double start { get; set; } = -1;
     }
     }
 }
 }

+ 18 - 0
TEAMModelOS/Models/TeacherCommentsDto.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace TEAMModelOS.Models
+{
+    public class TeacherCommentsDto
+    {
+
+        public string TEAMModelId { get; set; }
+
+        /// <summary>
+        /// 评语
+        /// </summary>
+        public string comment { get; set; }
+    }
+}