const Controller = require('../core/base_controller'); const fileName = "Exam"; class ExamController extends Controller { // 学生获取历史消息 async getHistoryMsg() { const { ctx } = this; try { let rdmcode = await this.checkUid(ctx); if (!rdmcode) { this.setResponse(ctx, 401, 'token过期或错误', "none"); return; } const uid = JSON.parse(rdmcode).uid; const body = ctx.request.body; const result = await ctx.service.exam.getHistoryMsg(uid, body); if (result == "error") { this.setResponse(ctx, 500, '服务器错误', "none"); return; } if (result) { let historyMsg = []; result.rows.forEach(element => { historyMsg.push(element.dataValues); }); const data = { historyMsg: historyMsg, count: result.count }; this.setResponse(ctx, 200, '操作成功', "deconstruction", data); } else { this.setResponse(ctx, 404, '操作失败', "none"); } } catch (error) { const blockName = fileName + "--" + "getHistoryMsg"; ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error); this.setResponse(ctx, 500, '服务器错误', "none"); } } // 学生删除历史消息 async delHistoryMsg() { const ctx = this.ctx; try { let rdmcode = await checkUid(ctx); if (!rdmcode) { setResponse(ctx, 401, 'token过期或错误', "none"); return; } const uid = JSON.parse(rdmcode).uid; const body = ctx.request.body; const model = decryptRequest(body.model); const password = decryptRequest(body.password); const requestMsg = body.userMsg; const resetList = await ctx.service.exam.delHistoryMsg(uid, model, password, requestMsg); if (resetList == "error") { setResponse(ctx, 500, '服务器错误', "none"); return; } if (resetList) { setResponse(ctx, 200, '删除历史消息成功', "none"); } else { setResponse(ctx, 404, '删除历史消息失败', "none"); } } catch (error) { const blockName = fileName + "--" + "delHistoryMsg"; ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error); setResponse(ctx, 500, '服务器错误', "none"); } } // 学生完成答题 async answer() { const { ctx } = this; try { let rdmcode = await this.checkUid(ctx); if (!rdmcode) { this.setResponse(ctx, 401, 'token过期或错误', "none"); return; } const uid = JSON.parse(rdmcode).uid; const body = ctx.request.body; const result = await ctx.service.exam.answer(uid, body); // await ctx.service.bind.unBindCard(uid); if (result == "error") { this.setResponse(ctx, 500, '服务器错误', "none"); return; } if (result) { this.setResponse(ctx, 200, '操作成功', "none"); } else { this.setResponse(ctx, 404, '操作失败', "none"); } } catch (error) { const blockName = fileName + "--" + "answer"; ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error); this.setResponse(ctx, 500, '服务器错误', "none"); } } // 学生查看成绩信息 async grades() { const { ctx } = this; try { let rdmcode = await this.checkUid(ctx); if (!rdmcode) { this.setResponse(ctx, 401, 'token过期或错误', "none"); return; } const uid = JSON.parse(rdmcode).uid; const result = await ctx.service.exam.grades(uid); if (result == "error") { this.setResponse(ctx, 500, '服务器错误', "none"); return; } if (result) { const data = { grades: result.dataValues }; this.setResponse(ctx, 200, '操作成功', "deconstruction", data); } else { this.setResponse(ctx, 404, '操作失败', "none"); } } catch (error) { const blockName = fileName + "--" + "grades"; ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error); this.setResponse(ctx, 500, '服务器错误', "none"); } } } module.exports = ExamController;