diff --git a/exam-admin/src/main/java/com/yf/exam/modules/applet/controller/AppletExamRegistrationController.java b/exam-admin/src/main/java/com/yf/exam/modules/applet/controller/AppletExamRegistrationController.java index 6504305..c50192d 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/applet/controller/AppletExamRegistrationController.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/applet/controller/AppletExamRegistrationController.java @@ -58,10 +58,10 @@ public class AppletExamRegistrationController extends BaseController { } /** - * 模拟考试列表,查询所有的模拟考试,返回是否已购买标识 + * 模拟考试列表 * @return */ - @ApiOperation(value = "模拟考试列表,查询所有的模拟考试,返回是否已购买标识") + @ApiOperation(value = "模拟考试列表") @RequestMapping(value = "/getMockExamList", method = { RequestMethod.POST}) public ApiRest getMockExamList(@RequestBody PagingReqDTO reqDTO) { //分页查询并转换 diff --git a/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/ExamRegistrationDTO.java b/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/ExamRegistrationDTO.java index be466b7..145a449 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/ExamRegistrationDTO.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/ExamRegistrationDTO.java @@ -1,5 +1,6 @@ package com.yf.exam.modules.exam.dto; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.yf.exam.modules.exam.entity.UserAttachment; import io.swagger.annotations.ApiModel; @@ -101,6 +102,12 @@ public class ExamRegistrationDTO extends UserAttachment implements Serializable */ private BigDecimal examFee; + /** + * 模拟考试有效期 + */ + @TableField("expiration_date") + private BigDecimal expirationDate; + /** * 交费开始时间 * */ diff --git a/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/response/ExamRegistrationVO.java b/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/response/ExamRegistrationVO.java index 3442fa2..bfe6da3 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/response/ExamRegistrationVO.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/exam/dto/response/ExamRegistrationVO.java @@ -71,6 +71,9 @@ public class ExamRegistrationVO { @ApiModelProperty(value = "交费时间", required=true) private Date paymentDate; + @ApiModelProperty(value = "到期状态,true:到期,false:未到期", required=true) + private Boolean expirationState; + @ApiModelProperty(value = "考试主键", required=true) private String examId; diff --git a/exam-admin/src/main/java/com/yf/exam/modules/exam/entity/ExamRegistration.java b/exam-admin/src/main/java/com/yf/exam/modules/exam/entity/ExamRegistration.java index 12206cc..e3895a6 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/exam/entity/ExamRegistration.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/exam/entity/ExamRegistration.java @@ -85,7 +85,19 @@ public class ExamRegistration extends UserAttachment { private BigDecimal examFee; /** - * 交费状态,待付款:WAIT_PAY,已付款:PAY,已取消:CANCEL,待收货:WAIT_RECEIVED_GOODS,已收货:RECEIVED_GOODS,退款中:WAIT_REFUND,已退款:REFUNDED,待退货:WAIT_RETURNED_GOODS,已退货:RETURNED_GOODS + * 模拟考试有效期 + */ + @TableField("expiration_date") + private BigDecimal expirationDate; + + /** + * 到期状态,true:到期,false:未到期 + */ + @TableField("expiration_state") + private Boolean expirationState; + + /** + * 交费状态,待付款:WAIT_PAY,已付款:PAY,已取消:CANCEL,退款中:WAIT_REFUND,已退款:REFUNDED */ private String paymentState; diff --git a/exam-admin/src/main/java/com/yf/exam/modules/exam/mapper/ExamRegistrationMapper.java b/exam-admin/src/main/java/com/yf/exam/modules/exam/mapper/ExamRegistrationMapper.java index 5951970..615da2b 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/exam/mapper/ExamRegistrationMapper.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/exam/mapper/ExamRegistrationMapper.java @@ -50,4 +50,5 @@ public interface ExamRegistrationMapper extends BaseMapper { * @return 更新数量 */ int updateBatchPaymentState(@Param("ids") List ids, @Param("paymentState") String paymentState); + } diff --git a/exam-admin/src/main/java/com/yf/exam/modules/exam/service/impl/ExamRegistrationServiceImpl.java b/exam-admin/src/main/java/com/yf/exam/modules/exam/service/impl/ExamRegistrationServiceImpl.java index 767fbb4..220ae53 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/exam/service/impl/ExamRegistrationServiceImpl.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/exam/service/impl/ExamRegistrationServiceImpl.java @@ -65,6 +65,7 @@ public class ExamRegistrationServiceImpl extends ServiceImpl goodsOrderList = examRegistrationMapper.getRegExamList(examRegistrationDTO); + // 计算是否到期 + goodsOrderList.forEach(order -> { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(order.getPaymentDate()); + calendar.add(Calendar.DAY_OF_MONTH, order.getExpirationDate().intValue()); + Date expirationEndDate = calendar.getTime(); + if (expirationEndDate.before(new Date())) { + // 有效期截至日期在当天之前 + ExamRegistration examRegistration = new ExamRegistration(); + examRegistration.setId(order.getId()); + examRegistration.setExpirationState(true); + examRegistrationMapper.updateById(examRegistration); + } + }); + } +} diff --git a/exam-admin/src/main/java/com/yf/exam/modules/quartz/task/ExamRegistrationTask.java b/exam-admin/src/main/java/com/yf/exam/modules/quartz/task/ExamRegistrationTask.java index f109c27..f81bc6b 100644 --- a/exam-admin/src/main/java/com/yf/exam/modules/quartz/task/ExamRegistrationTask.java +++ b/exam-admin/src/main/java/com/yf/exam/modules/quartz/task/ExamRegistrationTask.java @@ -1,15 +1,33 @@ package com.yf.exam.modules.quartz.task; +import com.yf.exam.modules.quartz.service.ExamRegistrationTaskService; +import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** - * @description: 考试报名定时任务,模拟考试到期后,自动关闭订单 - * @author: haown - * @create: 2025-08-25 10:25 - **/ + * @Description 考试有效期到期后,自动修改有效状态 + * @Author haown + * @Date 2022-10-21 14:34:36 + * @Version 1.0 + */ @Slf4j @Component("examRegistrationTask") public class ExamRegistrationTask { + @Resource + private ExamRegistrationTaskService examRegistrationTaskService; + + /** + * 考试有效期到期后,自动修改到期状态,每天晚上12点执行 + * + */ + @Scheduled(cron = "0 30 0 * * ?") + public void updateExpirationStateTask() { + log.info("开始执行自动修改到期状态定时任务......"); + examRegistrationTaskService.updateExpirationState(); + log.info("完成自动修改到期状态定时任务......"); + } + } diff --git a/exam-admin/src/main/resources/mapper/exam/ExamRegistrationMapper.xml b/exam-admin/src/main/resources/mapper/exam/ExamRegistrationMapper.xml index b8a5ad5..465f84c 100644 --- a/exam-admin/src/main/resources/mapper/exam/ExamRegistrationMapper.xml +++ b/exam-admin/src/main/resources/mapper/exam/ExamRegistrationMapper.xml @@ -44,7 +44,7 @@