# Review - 互评 > url 前缀:**review** > > 示例:**https://xxxxxxxxx/api/review/xxxx** ## 术语表 | 用词 | 术语 | 含义 | | -------------- | -------- | ------------------------------------------ | | review | 互评 | - | | reviewHomework | 互评作业 | 一次互评作业与一次文档作业相关联 | | document | 文档 | 在一次互评作业中通常需要互评多个小组的文档 | | | ## TEACHER ### 新建互评作业 [TEACHER] ```http post /review ``` #### Parameters ```json { "courseId": Number, // 课程id "documentHwId": Number, //文档作业id, "taskNumber": Number, //互评任务数 "startAt" : Number, //互评开始时间 "reviewDdl" : **Number** - 互评结束时间 | `timestamp`, "argueDdl" : **Number** - argue结束时间 | `timestamp`, "endDdl" : **Number** - 最后结束时间 | `timestamp` } ``` ### 老师查看互评作业列表 [TEACHER] ```http get /teacher/course/:courseId/review ``` #### Response ```json { "data": Array<互评作业概况> } ``` ### 老师查看互评作业详情 [TEACHER] ```http get /teacher/review/:reviewId ``` #### Response ```json { "data": 互评作业详情 } ``` ### 老师查看互评作业汇总结果 [TEACHER] ```http get /sum/:reviewId ``` #### Response ```json { "data": see 互评作业结果汇总 } ``` ### 老师查看某次互评作业所有小组 [TEACHER] ```http get /sum/:reviewId/group ``` #### Response ```json { "data": Array } ``` ### 老师查看某次互评作业一个小组的详细结果 [TEACHER] ```http get /sum/:reviewId/group/:groupId ``` #### Response ```json { "data": 某次互评作业中自己的文档&别的组的互评结果 } ``` //TODO ### 老师开始对某次互评作业一个小组进行评价 [TEACHER] ```http get /sum/:reviewId/argue/:groupId ``` #### Response ```json { "data": 一次文档评价实例的详情 } ``` ### 老师提交对某次互评作业一个小组的评价结果 [TEACHER] ```http post /sum/:reviewId/argue/:groupId ``` #### Parameters ```json { "checkList": Array } ``` #### Response ```json { "checkList": Array } ``` ### 老师更新作业评分标准 [TEACHER] ```http post /sum/:reviewId/level ``` #### Parameters ```json { [level(A,B,C,D,E,F)]: [studentNum(学生通过数)] } ``` #### Response ```json {} ``` ## STUDENT ### 学生查看老师发布的互评作业列表 [STUDENT] ```http get /student/course/:courseId/review ``` #### Response ```json { "data": Array<互评作业概况> } ``` ### 学生查看互评作业详情 [STUDENT] ```http get /student/review/:reviewId ``` #### Response ```json { "data": 互评作业详情 } ``` ### 学生获取某次互评作业中某个文档 [STUDENT] ```http get /student/review/:reviewId/doc-review/:docReviewId ``` #### Response ```json { "data": 一次文档评价实例的详情 } ``` ### 学生提交某次互评作业中的某个文档 [STUDENT] ```http post /student/review/:reviewId/doc-review/:docReviewId ``` #### Response ```json { "data": Array } ``` ### 学生选择查看某次互评作业中自己的文档 [STUDENT] ```http get /student/review/:reviewId/result ``` #### Response ```json { "data": 某次互评作业中自己的文档&别的组的互评结果 } ``` ### 学生对某个组的某条checklist提出argue [STUDENT] ```http post /student/argue ``` #### Parameters ```json { "reviewId": Number, //作业id, "id": Number, //某个checkList的id, "groupId": Number, //某个小组的id "remark": String //`{0-100}` } ``` #### Response ```json {} ``` #### Error ```json { "code": 400, "message": "已评审,不可重复评审" } ``` ### 学生(评审方)判断是否愿意处理argue [STUDENT] ```http post /student/review/:reviewId/checklist/:checkListId/argue/acceptation ``` #### Parameters ```json { "accept": Boolean } ``` #### Response ```json { "data": Array // 整个 } ``` ### 学生(评审方)提交argue [标记为已处理完成] [STUDENT] ```http post /student/review/:reviewId/checklist/:checkListId/argue/end ``` #### Parameters ```json { "data": checkListItem } ``` #### Response ```json { "data": Array } ``` see [ReviewSimpleSerializer](../serializer/ReviewSimpleSerializer.md) ## 数据定义 ### 互评作业概况 - reviewId: **Number**, // 老师布置一次互评作业id - name : **String** - 对应的文档作业名称 | {2-100} - reviewDdl : **Number** - 互评结束时间 | `timestamp` - argueDdl : **Number** - argue结束时间 | `timestamp` - endDdl : **Number** - 最后结束时间 | `timestamp` - state : **Enum** - ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"] ### 互评作业详情 - reviewId: **Number**, // 老师布置一次互评作业id - name : **String** - 对应的文档作业名称 | {2-100} - documents: **Array<一次文档评价的实例概况>**, - reviewDdl : **Number** - 互评结束时间 | `timestamp` - argueDdl : **Number** - argue结束时间 | `timestamp` - endDdl : **Number** - 最后结束时间 | `timestamp` - state : **Enum** - ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"] ### 一次文档评价的实例概况 - docReviewId: **Number** - 一次文档评价的实例id - group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md) ### 一次文档评价实例的详情 - docReviewId: **Number** - 一次文档评价的实例id - review: **互评作业详情** - docContent : **String** - 作业内容 - checkList : Array<[**CheckListItemSerializer**](./CheckListItemSerializer.md)> - group : [**GroupSerializer**](../../course/serializer/GroupSerializer.md) ### checklistItems #### 评价方 checkListItem-DEFAULT - id : **Number** - checkListItem id // 评价方id // 被评价方 id - content : **String** - 名称 | {2-100} - level : **Boolean** - 用户的评级 - comment : **String** - 用户的备注 | {0-200} - explain : **String** - 老师的说明 | {0-200} - state : **Enum** - ["DEFAULT","SUBMITTED","PENDING","SOLVING","ARGUED"] #### 评价方 checkListItem-SUBMITTED see DEFAULT #### 评价方 checkListItem-PENDING [R] see DEFAULT - remark : **String** - 学生申请argue的备注 #### 评价方 checkListItem-SOLVING [RW] see PENDING #### 评价方 checkListItem-ARGUED [R] see DEFAULT ### 某次互评作业中自己的文档&别的组的互评结果 ```json { "reviewId" : Number ,// 互评作业ID, "review" : ,//[互评作业详情], "level" : String|Null,// 文档等级(可能还未生成), "docContent" : String, // 文档内容 "checkListResult" : // 详细评价结果, [ { "id" : Number ,// checkListItem id, "content" : String ,// 名称 | {2-100}, "explain" : String ,// 老师的说明 | {0-200}, "results" : // 各个小组的评价, [ { "groupId" : Number,// 某个小组的评价 id "level" : Boolean,// 小组作出的评价 "comment" : String,// 小组做出的备注 | "isArgued": Boolean // 是否已经提过argue 只在查看自己的结果时有效 },... ] },... ] } ``` ### 互评作业结果汇总 >用于老师查看某次互评作业结果 ```json { "reviewId": Number, // // 老师布置一次互评作业id "name" : String, // - 对应的文档作业名称 | {2-100} "reviewDdl" : Number, // - 互评结束时间 | `timestamp` "argueDdl" : Number, // - argue结束时间 | `timestamp` "endDdl" : Number, // - 最后结束时间 | `timestamp` "state" : String,//Enum** - ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"] "completeRate": Number,//(int)(完成率*100) "passedCDF": [ { "passedNumber": Number, "passedRatio": Number //(int) },... ], "checklistItems":[//按通过数降序排序 { "id" : Number ,// checkListItem id, "content" : String ,// 名称 | {2-100}, "explain" : String ,// 老师的说明 | {0-200}, "passedNum" : Number // number of passed },... ] } ```