From d01fa2df1b46f45647e82be6d1476ea1e295f995 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 27 十月 2024 21:31:53 +0800 Subject: [PATCH] 一个班级可以有多个老师 --- src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 48 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java index b7b26f0..e80229d 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java @@ -3,9 +3,11 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.jxkg.base.Result; import com.ycl.jxkg.base.SystemCode; @@ -30,6 +32,7 @@ import com.ycl.jxkg.enums.ExamPaperTypeEnum; import com.ycl.jxkg.enums.QuestionTypeEnum; import com.ycl.jxkg.enums.WebsocketCommendEnum; +import com.ycl.jxkg.enums.general.ClassesStatusEnum; import com.ycl.jxkg.enums.general.ExamStatusEnum; import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum; import com.ycl.jxkg.mapper.*; @@ -114,7 +117,7 @@ throw new RuntimeException("鍙兘淇敼杩樻湭寮�濮嬬殑鑰冭瘯"); } BeanUtils.copyProperties(form, entity); - entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null)); + entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), new Date())); // 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅 if (baseMapper.updateById(entity) > 0) { this.sendMQ(entity, entity.getUpdateVersion()); @@ -211,6 +214,7 @@ item.setExamPaperId(null); } }); + // return Result.ok().data(page.getRecords()).total(page.getTotal()); } @@ -250,7 +254,7 @@ .eq(ExamSubmitTemp::getUserId, webContext.getCurrentUser().getId()) .one(); if (Objects.nonNull(hasJoin)) { - //TODO锛氬紑鍙戠幆澧冨厛鍏抽棴 + // 鍏佽鎻愪氦鍚庣户缁綔绛� // if(ExamSubmitTempStatusEnum.finish.equals(hasJoin.getStatus())){ // throw new RuntimeException("鎮ㄥ凡鎻愪氦璇曞嵎锛岃鍕块噸澶嶄綔绛�"); // } @@ -915,7 +919,9 @@ @Override public Result monitorList(ExamQuery query) { IPage<ExamSubmitTempVO> page = PageUtil.getPage(query, ExamSubmitTempVO.class); - return Result.ok((examSubmitTempMapper.monitorList(page, query))); + IPage<ExamSubmitTempVO> vo = examSubmitTempMapper.monitorList(page, query); + + return Result.ok(vo); } @Override @@ -929,7 +935,7 @@ form.setAddTimeM(sed); websocket.setData(form); // 鍙戦�亀ebsocket娑堟伅 - websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(form)); + websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(websocket)); return Result.ok("鎿嶄綔鎴愬姛"); } @@ -942,7 +948,44 @@ websocket.setCommend(WebsocketCommendEnum.FORCE_SUBMIT.getCommand()); websocket.setData(form); // 鍙戦�亀ebsocket娑堟伅 - websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(form)); + websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(websocket)); return Result.ok("鎿嶄綔鎴愬姛"); } + + /** + * 浣滃簾 + * + * @param id + * @return {@link Result } + * @author + */ + @Override + public Result cancel(Integer id) { + new LambdaUpdateChainWrapper<>(examMapper) + .eq(Exam::getId, id) + .set(Exam::getStatus, ExamStatusEnum.CANCEL) + .update(); + return Result.ok("浣滃簾鎴愬姛"); + } + + @Override + public Result recover(Integer id) { + // 鍏堟煡璇㈠綋鍓嶈�冭瘯璁板綍鐨勮缁嗕俊鎭� + Exam examInfo = new LambdaQueryChainWrapper<>(examMapper) + .eq(Exam::getId, id) + .one(); + // 纭畾鎭㈠鍚庡綋鍓嶈�冭瘯璁板綍鐨勭姸鎬� + Date currentTime = new Date(); + Date startTime = examInfo.getStartTime(); + Date endTime = examInfo.getEndTime(); + ExamStatusEnum statusByTime = ExamStatusEnum.getStatusByTime(startTime, endTime, currentTime); + examInfo.setStatus(statusByTime); + // 淇敼褰撳墠鐨勮�冭瘯鐘舵�� + new LambdaUpdateChainWrapper<>(examMapper) + .eq(Exam::getId, id) + .set(Exam::getStatus, examInfo.getStatus()) + .update(); + // 杩樺師鐝骇鐨勮�冭瘯淇℃伅 + return Result.ok("鑰冭瘯璁板綍宸茬粡鎭㈠姝e父"); + } } -- Gitblit v1.8.0