wangliang %!s(int64=4) %!d(string=hai) anos
pai
achega
8a9087cf97

+ 4 - 12
themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java

@@ -15,14 +15,8 @@ import com.qmth.themis.business.entity.TBOrg;
 import com.qmth.themis.business.entity.TBSession;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TBUserRole;
-import com.qmth.themis.business.enums.FieldUniqueEnum;
-import com.qmth.themis.business.enums.MqEnum;
-import com.qmth.themis.business.enums.RoleEnum;
-import com.qmth.themis.business.enums.SystemOperationEnum;
-import com.qmth.themis.business.service.CacheService;
-import com.qmth.themis.business.service.TBOrgService;
-import com.qmth.themis.business.service.TBUserRoleService;
-import com.qmth.themis.business.service.TBUserService;
+import com.qmth.themis.business.enums.*;
+import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.*;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
@@ -34,12 +28,8 @@ import com.qmth.themis.common.signature.SignatureType;
 import com.qmth.themis.common.util.AesUtil;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.service.MqDtoService;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.poi.ss.formula.functions.T;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.dao.DuplicateKeyException;
@@ -613,6 +603,8 @@ public class TBUserController {
                         tbUserRoleService.save(tbUserRole);
                     });
                     cacheService.removeAccountCache(tbUser.getId());
+                    TBSession tbSession = (TBSession) ServletUtil.getRequestSession();
+                    redisUtil.deleteUserSession(tbSession.getId());
                 }
                 tbUser.setUpdateId(tbUser.getId());
             }

+ 7 - 4
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamActivityController.java

@@ -4,12 +4,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.response.TEExamActivityQueryDto;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExamActivity;
 import com.qmth.themis.business.enums.FieldUniqueEnum;
 import com.qmth.themis.business.enums.MqEnum;
+import com.qmth.themis.business.enums.MqTagEnum;
+import com.qmth.themis.business.enums.MqTopicEnum;
+import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TEExamActivityService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.util.JacksonUtil;
@@ -19,10 +23,6 @@ import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
-import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.service.MqDtoService;
 import io.swagger.annotations.*;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.transaction.annotation.Transactional;
@@ -82,6 +82,9 @@ public class TEExamActivityController {
             MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examActivity.name(), JacksonUtil.parseJson(teExamActivityList), MqEnum.QUARTZ_LOG, String.valueOf(teExam.getId()), prop, tbUser.getName());
             mqDtoService.assembleSendOneWayMsg(mqDto);
             //新增quartz任务,发送mq消息end
+            teExamActivityList.forEach(s -> {
+                teExamActivityService.updateExamActivityCacheBean(s.getId());
+            });
         } catch (Exception e) {
             e.printStackTrace();
             if (e instanceof DuplicateKeyException) {

+ 13 - 8
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamController.java

@@ -7,15 +7,15 @@ import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
 import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.request.TEExamDto;
 import com.qmth.themis.business.dto.response.TEExamQueryDto;
 import com.qmth.themis.business.entity.TBOrg;
 import com.qmth.themis.business.entity.TBUser;
 import com.qmth.themis.business.entity.TEExam;
 import com.qmth.themis.business.entity.TEExamActivity;
-import com.qmth.themis.business.enums.ExamModeEnum;
-import com.qmth.themis.business.enums.FieldUniqueEnum;
-import com.qmth.themis.business.enums.MqEnum;
+import com.qmth.themis.business.enums.*;
+import com.qmth.themis.business.service.MqDtoService;
 import com.qmth.themis.business.service.TEExamActivityService;
 import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.util.JacksonUtil;
@@ -25,10 +25,6 @@ import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
-import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.service.MqDtoService;
 import io.swagger.annotations.*;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,6 +72,7 @@ public class TEExamController {
             throw new BusinessException("考试编码不能为空");
         }
         TEExam teExam = null;
+        Long oldId = null;
         try {
             TBUser tbUser = (TBUser) ServletUtil.getRequestAccount();
             TBOrg tbOrg = (TBOrg) ServletUtil.getRequestOrg();
@@ -85,7 +82,7 @@ public class TEExamController {
                 }
                 teExamDto.setOrgId(tbOrg.getId());
             }
-            Long oldId = teExamDto.getId();
+            oldId = teExamDto.getId();
             TEExam oldTeExam = null;
             if (Objects.nonNull(oldId)) {
                 teExamDto.setUpdateId(tbUser.getId());
@@ -130,6 +127,9 @@ public class TEExamController {
                     //修改数据
                     TEExam finalTeExam = teExam;
                     teExamActivityList.forEach(s -> {
+                        s.setPrepareSeconds(finalTeExam.getPrepareSeconds());
+                        s.setMaxDurationSeconds(finalTeExam.getMaxDurationSeconds());
+                        s.setOpeningSeconds(finalTeExam.getOpeningSeconds());
                         s.setStartTime(finalTeExam.getStartTime());
                         s.setFinishTime(finalTeExam.getEndTime());
                         s.setUpdateId(tbUser.getId());
@@ -142,6 +142,9 @@ public class TEExamController {
                     MqDto mqDto = new MqDto(MqTopicEnum.themisTopic.getCode(), MqTagEnum.examActivity.name(), JacksonUtil.parseJson(teExamActivityList), MqEnum.QUARTZ_LOG, String.valueOf(teExam.getId()), prop, tbUser.getName());
                     mqDtoService.assembleSendOneWayMsg(mqDto);
                     //新增quartz任务,发送mq消息end
+                    teExamActivityList.forEach(s -> {
+                        teExamActivityService.updateExamActivityCacheBean(s.getId());
+                    });
                 }
             }
         } catch (Exception e) {
@@ -156,6 +159,7 @@ public class TEExamController {
                 throw new RuntimeException(e);
             }
         }
+        teExamService.updateExamCacheBean(teExam.getId());
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 
@@ -216,6 +220,7 @@ public class TEExamController {
         teExam.setEnable(enable);
         teExam.setUpdateId(tbUser.getId());
         teExamService.updateById(teExam);
+        teExamService.updateExamCacheBean(teExam.getId());
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 

+ 2 - 1
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamCourseController.java

@@ -38,7 +38,7 @@ public class TEExamCourseController {
     @Resource
     TEExamCourseService teExamCourseService;
 
-    @ApiOperation(value = "考试场次修改/新增接口")
+    @ApiOperation(value = "考试科目修改/新增接口")
     @RequestMapping(value = "/course/save", method = RequestMethod.POST)
     @Transactional
     @ApiResponses({@ApiResponse(code = 200, message = "{\"success\":true}", response = Result.class)})
@@ -63,6 +63,7 @@ public class TEExamCourseController {
                 throw new RuntimeException(e);
             }
         }
+        teExamCourseService.updateExamCourseCacheBean(teExamCourse.getExamId(), teExamCourse.getCourseCode());
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 

+ 20 - 41
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamPaperController.java

@@ -1,54 +1,30 @@
 package com.qmth.themis.backend.api;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-import javax.annotation.Resource;
-
-import com.qmth.themis.business.util.ServletUtil;
-import org.springframework.dao.DuplicateKeyException;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
-import com.qmth.themis.business.entity.TBAttachment;
-import com.qmth.themis.business.entity.TBTaskHistory;
-import com.qmth.themis.business.entity.TBUser;
-import com.qmth.themis.business.entity.TEExam;
-import com.qmth.themis.business.entity.TEExamPaper;
-import com.qmth.themis.business.enums.FieldUniqueEnum;
-import com.qmth.themis.business.enums.MqEnum;
-import com.qmth.themis.business.enums.TaskStatusEnum;
-import com.qmth.themis.business.enums.TaskTypeEnum;
-import com.qmth.themis.business.service.TBAttachmentService;
-import com.qmth.themis.business.service.TBTaskHistoryService;
-import com.qmth.themis.business.service.TEExamPaperService;
-import com.qmth.themis.business.service.TEExamService;
+import com.qmth.themis.business.dto.MqDto;
+import com.qmth.themis.business.entity.*;
+import com.qmth.themis.business.enums.*;
+import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.JacksonUtil;
+import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.contanst.Constants;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
-import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.service.MqDtoService;
+import io.swagger.annotations.*;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Description: 考试试卷 前端控制器
@@ -129,6 +105,9 @@ public class TEExamPaperController {
                 throw new RuntimeException(e);
             }
         }
+        teExamPaperList.forEach(s -> {
+            teExamPaperService.updateExamPaperCacheBean(s.getId());
+        });
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 
@@ -141,8 +120,8 @@ public class TEExamPaperController {
             , @ApiParam(value = "客观题乱序", required = false) @RequestParam Boolean objectiveShuffle
             , @ApiParam(value = "选项乱序", required = false) @RequestParam Boolean optionShuffle
             , @ApiParam(value = "音频播放次数", required = false) @RequestParam Integer audioPlayCount
-            ,@ApiParam(value = "解析试卷", required = true) @RequestParam Boolean processPaper
-            ,@ApiParam(value = "解析标答", required = true) @RequestParam Boolean processAnswer) {
+            , @ApiParam(value = "解析试卷", required = true) @RequestParam Boolean processPaper
+            , @ApiParam(value = "解析标答", required = true) @RequestParam Boolean processAnswer) {
         if (file == null) {
             throw new BusinessException(ExceptionResultEnum.ATTACHMENT_IS_NULL);
         }

+ 11 - 8
themis-backend/src/main/java/com/qmth/themis/backend/api/TEExamStudentController.java

@@ -8,12 +8,10 @@ import com.qmth.themis.business.annotation.ApiJsonProperty;
 import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.config.SystemConfig;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dto.MqDto;
 import com.qmth.themis.business.dto.response.TEExamStudentDto;
 import com.qmth.themis.business.entity.*;
-import com.qmth.themis.business.enums.MqEnum;
-import com.qmth.themis.business.enums.TaskStatusEnum;
-import com.qmth.themis.business.enums.TaskTypeEnum;
-import com.qmth.themis.business.enums.UploadFileEnum;
+import com.qmth.themis.business.enums.*;
 import com.qmth.themis.business.service.*;
 import com.qmth.themis.business.util.JacksonUtil;
 import com.qmth.themis.business.util.ServletUtil;
@@ -21,10 +19,6 @@ import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
 import com.qmth.themis.common.util.Result;
 import com.qmth.themis.common.util.ResultUtil;
-import com.qmth.themis.business.dto.MqDto;
-import com.qmth.themis.business.enums.MqTagEnum;
-import com.qmth.themis.business.enums.MqTopicEnum;
-import com.qmth.themis.business.service.MqDtoService;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -113,6 +107,9 @@ public class TEExamStudentController {
             teExamStudentList.add(teExamStudent);
         }
         teExamStudentService.updateBatchById(teExamStudentList);
+        teExamStudentList.forEach(s -> {
+            teExamStudentService.updateExamStudnetCacheBean(s.getId());
+        });
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 
@@ -125,6 +122,9 @@ public class TEExamStudentController {
             throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_INFO_IS_NULL);
         }
         teExamStudentService.updateBatchById(teExamStudentList);
+        teExamStudentList.forEach(s -> {
+            teExamStudentService.updateExamStudnetCacheBean(s.getId());
+        });
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 
@@ -137,6 +137,9 @@ public class TEExamStudentController {
             throw new BusinessException(ExceptionResultEnum.EXAM_STUDENT_ID_IS_NULL);
         }
         teExamStudentService.removeByIds(ids);
+        ids.forEach(s -> {
+            teExamStudentService.deleteExamStudnetCacheBean(s);
+        });
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 

+ 12 - 0
themis-backend/src/main/java/com/qmth/themis/backend/api/TEStudentController.java

@@ -2,10 +2,12 @@ package com.qmth.themis.backend.api;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.gson.Gson;
 import com.qmth.themis.business.annotation.ApiJsonObject;
 import com.qmth.themis.business.annotation.ApiJsonProperty;
 import com.qmth.themis.business.base.BasePage;
 import com.qmth.themis.business.constant.SystemConstant;
+import com.qmth.themis.business.dto.cache.TEStudentCacheDto;
 import com.qmth.themis.business.dto.response.TEStudentDto;
 import com.qmth.themis.business.dto.response.TEStudentExamRecordDto;
 import com.qmth.themis.business.entity.TBUser;
@@ -13,6 +15,7 @@ import com.qmth.themis.business.entity.TEStudent;
 import com.qmth.themis.business.entity.TOeExamRecord;
 import com.qmth.themis.business.service.TEStudentService;
 import com.qmth.themis.business.util.JacksonUtil;
+import com.qmth.themis.business.util.RedisUtil;
 import com.qmth.themis.business.util.ServletUtil;
 import com.qmth.themis.common.enums.ExceptionResultEnum;
 import com.qmth.themis.common.exception.BusinessException;
@@ -42,6 +45,9 @@ public class TEStudentController {
     @Resource
     TEStudentService teStudentService;
 
+    @Resource
+    RedisUtil redisUtil;
+
     @ApiOperation(value = "学生查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "考生信息", response = TEStudentDto.class)})
@@ -77,6 +83,9 @@ public class TEStudentController {
         teStudent.setEnable(enable);
         teStudent.setUpdateId(tbUser.getId());
         teStudentService.updateById(teStudent);
+        Gson gson = new Gson();
+        TEStudentCacheDto teStudentCacheDto = gson.fromJson(gson.toJson(teStudent), TEStudentCacheDto.class);
+        redisUtil.setStudent(teStudent.getId(), teStudentCacheDto);
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }
 
@@ -104,6 +113,9 @@ public class TEStudentController {
         teStudent.setPassword(password);
         teStudent.setUpdateId(tbUser.getId());
         teStudentService.updateById(teStudent);
+        Gson gson = new Gson();
+        TEStudentCacheDto teStudentCacheDto = gson.fromJson(gson.toJson(teStudent), TEStudentCacheDto.class);
+        redisUtil.setStudent(teStudent.getId(), teStudentCacheDto);
         return ResultUtil.ok(JacksonUtil.parseJson(SystemConstant.SUCCESS));
     }