deason 1 gadu atpakaļ
vecāks
revīzija
9419c4a1ab

+ 27 - 12
src/main/java/com/qmth/exam/reserve/job/StudentApplyRecordJob.java

@@ -7,7 +7,10 @@ import com.qmth.exam.reserve.bean.apply.ApplyRecordCacheBean;
 import com.qmth.exam.reserve.cache.CacheConstants;
 import com.qmth.exam.reserve.cache.RedisClient;
 import com.qmth.exam.reserve.entity.StudentApplyEntity;
+import com.qmth.exam.reserve.enums.EventType;
+import com.qmth.exam.reserve.service.OperateLogService;
 import com.qmth.exam.reserve.service.StudentApplyService;
+import com.qmth.exam.reserve.util.JsonHelper;
 import org.redisson.api.RQueue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,6 +28,9 @@ public class StudentApplyRecordJob {
     @Autowired
     private StudentApplyService studentApplyService;
 
+    @Autowired
+    private OperateLogService operateLogService;
+
     @Autowired
     private ConcurrentService concurrentService;
 
@@ -83,32 +89,41 @@ public class StudentApplyRecordJob {
         wrapper.eq(StudentApplyEntity::getExamSiteId, bean.getExamSiteId());
         wrapper.eq(StudentApplyEntity::getTimePeriodId, bean.getTimePeriodId());
         wrapper.eq(StudentApplyEntity::getStudentId, bean.getStudentId());
-        StudentApplyEntity existEntity = studentApplyService.getOne(wrapper);
+        StudentApplyEntity data = studentApplyService.getOne(wrapper);
 
         String msg = String.format("%s_%s_%s_%s", bean.getStudentId(), bean.getExamSiteId(),
                 bean.getTimePeriodId(), bean.getCancel());
-        if (existEntity != null) {
+        if (data != null) {
             // 存在预约记录,则修改
+            data.setCancel(bean.getCancel());
+            data.setOperateId(bean.getOperateId());
+            data.setUpdateTime(bean.getOperateTime());
+
             LambdaUpdateWrapper<StudentApplyEntity> updateWrapper = new LambdaUpdateWrapper<>();
             updateWrapper.set(StudentApplyEntity::getCancel, bean.getCancel());
             updateWrapper.set(StudentApplyEntity::getOperateId, bean.getOperateId());
             updateWrapper.set(StudentApplyEntity::getUpdateTime, bean.getOperateTime());
-            updateWrapper.eq(StudentApplyEntity::getId, existEntity.getId());
+            updateWrapper.eq(StudentApplyEntity::getId, data.getId());
             studentApplyService.update(updateWrapper);
             log.info("{} 预约修改!", msg);
         } else {
             // 不存在预约记录,则新增
-            StudentApplyEntity entity = new StudentApplyEntity();
-            entity.setStudentId(bean.getStudentId());
-            entity.setExamSiteId(bean.getExamSiteId());
-            entity.setTimePeriodId(bean.getTimePeriodId());
-            entity.setCancel(false);
-            entity.setOperateId(bean.getOperateId());
-            entity.setCreateTime(bean.getOperateTime());
-            entity.setUpdateTime(bean.getOperateTime());
-            studentApplyService.save(entity);
+            data = new StudentApplyEntity();
+            data.setStudentId(bean.getStudentId());
+            data.setExamSiteId(bean.getExamSiteId());
+            data.setTimePeriodId(bean.getTimePeriodId());
+            data.setCancel(bean.getCancel());
+            data.setOperateId(bean.getOperateId());
+            data.setCreateTime(bean.getOperateTime());
+            data.setUpdateTime(bean.getOperateTime());
+            studentApplyService.save(data);
             log.info("{} 预约新增!", msg);
         }
+
+        if (data.getCancel()) {
+            // 保存“取消预约”操作记录
+            operateLogService.insertOperateLog(bean.getOperateId(), EventType.CANCEL_APPLY, JsonHelper.toJson(data));
+        }
     }
 
 }