const makeId = require("../../util/makeId"); const dayjs = require("dayjs"); /** * @description 互评作业结果汇总 * @typedef {Object} ReviewResultSerializerType * @property {number|string} reviewId 老师布置一次互评作业id * @property {string} name 对应的文档作业名称 * @property {number} reviewDdl 互评结束时间 * @property {number} argueDdl argue结束时间 * @property {number} endDdl 最后结束时间 * @property {string} state ["DEFAULT","REVIEWING","ARGUING","SOLVING","END"] * @property {Number} completeRate (int)(完成率*100) * @property {PassedCDFType[]} passedCDF cdf图 * @property {CheckListAnalysedItemSerializerType[]} checklistItems check汇总 */ /** * @description 互评作业结果汇总 * @typedef {Object} PassedCDFType * @property {number} passedNumber * @property {number} passedRatio */ /** * @description * @typedef {Object} CheckListAnalysedItemSerializerType * @property {number|string} id checkListItem id * @property {string} content 评价内容 * @property {number} passedNum 通过量 * @property {string} explain 老师说明 */ /** * @description 生成 ReviewResultSerializerType 互评作业结果汇总 * @returns {ReviewResultSerializerType} */ const reviewSimpleSerializer = ({ reviewId = makeId(), state = "DEFAULT" }) => { /** * @return {PassedCDFType} */ const passedCDF = (passedNumber = 30) => ({ passedNumber, passedRatio: passedNumber }); /** * @return {CheckListAnalysedItemSerializerType} */ const checkListAnalysedItemSerializer = () => ({ id: makeId(), content: "评价内容", passedNum: 10, explain: "老师的说明说明说明说明" }); return { reviewId, name: "需求规格说明文档", reviewDdl: dayjs("2018-9-21").unix(), argueDdl: dayjs("2018-10-21").unix(), endDdl: dayjs("2018-12-21").unix(), state, completeRate: 89, passedCDF: [passedCDF(), passedCDF(), passedCDF()], checklistItems: [ checkListAnalysedItemSerializer(), checkListAnalysedItemSerializer(), checkListAnalysedItemSerializer() ] }; }; module.exports = reviewSimpleSerializer;