From 2a5856d769175488fa583e7ac0db56e43b21a298 Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期四, 12 九月 2024 13:11:35 +0800
Subject: [PATCH] 兑换券到期时间
---
src/main/java/com/mzl/flower/dto/response/point/PointGoodsRecordDTO.java | 5 +++++
src/main/java/com/mzl/flower/entity/point/PointGoodsRecord.java | 7 +++++++
src/main/resources/mapper/point/PointGoodMapper.xml | 7 +++++++
src/main/java/com/mzl/flower/service/point/PointGoodsService.java | 5 +++++
src/main/java/com/mzl/flower/schedule/PointScheduleService.java | 22 +++++++++++++++++-----
src/main/java/com/mzl/flower/mapper/point/PointGoodsRecordMapper.java | 2 ++
6 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/mzl/flower/dto/response/point/PointGoodsRecordDTO.java b/src/main/java/com/mzl/flower/dto/response/point/PointGoodsRecordDTO.java
index 51d6b39..7114439 100644
--- a/src/main/java/com/mzl/flower/dto/response/point/PointGoodsRecordDTO.java
+++ b/src/main/java/com/mzl/flower/dto/response/point/PointGoodsRecordDTO.java
@@ -5,6 +5,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.time.LocalDateTime;
+
@Data
public class PointGoodsRecordDTO extends AbstractTransDTO {
@@ -48,4 +50,7 @@
private String status;
private String statusStr;
+
+ @ApiModelProperty(value = "到期时间")
+ private LocalDateTime expireTime;
}
diff --git a/src/main/java/com/mzl/flower/entity/point/PointGoodsRecord.java b/src/main/java/com/mzl/flower/entity/point/PointGoodsRecord.java
index c694181..a0b2b6e 100644
--- a/src/main/java/com/mzl/flower/entity/point/PointGoodsRecord.java
+++ b/src/main/java/com/mzl/flower/entity/point/PointGoodsRecord.java
@@ -5,6 +5,9 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
@Data
@TableName("t_point_goods_record")
public class PointGoodsRecord extends BaseAutoEntity {
@@ -47,4 +50,8 @@
@ApiModelProperty(value = "绑定订单ID")
private String orderId;
+
+
+ @ApiModelProperty(value = "到期时间")
+ private LocalDateTime expireTime;
}
diff --git a/src/main/java/com/mzl/flower/mapper/point/PointGoodsRecordMapper.java b/src/main/java/com/mzl/flower/mapper/point/PointGoodsRecordMapper.java
index af6a6db..5ce4510 100644
--- a/src/main/java/com/mzl/flower/mapper/point/PointGoodsRecordMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/point/PointGoodsRecordMapper.java
@@ -13,4 +13,6 @@
@Repository
public interface PointGoodsRecordMapper extends BaseMapper<PointGoodsRecord> {
List<PointGoodsRecordDTO> selectMyExchangeGoods(@Param("dto") QueryExchangeGoodsDTO dto, Page page);
+
+ void updateExpiredPointGoodsRecord();
}
diff --git a/src/main/java/com/mzl/flower/schedule/PointScheduleService.java b/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
index 4465d23..9871346 100644
--- a/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
+++ b/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
@@ -1,23 +1,21 @@
package com.mzl.flower.schedule;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mzl.flower.constant.Constants;
import com.mzl.flower.dto.response.point.ExpiredPointDTO;
-import com.mzl.flower.entity.flower.FlowerCategory;
-import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.entity.point.CustomerPoint;
import com.mzl.flower.entity.point.CustomerPointDetail;
import com.mzl.flower.mapper.point.CustomerPointDetailMapper;
import com.mzl.flower.mapper.point.CustomerPointMapper;
+import com.mzl.flower.mapper.point.PointGoodsRecordMapper;
import com.mzl.flower.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
-import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
@@ -30,9 +28,12 @@
private final CustomerPointDetailMapper customerPointDetailMapper;
- public PointScheduleService(CustomerPointMapper customerPointMapper, CustomerPointDetailMapper customerPointDetailMapper) {
+ private final PointGoodsRecordMapper pointGoodsRecordMapper;
+
+ public PointScheduleService(CustomerPointMapper customerPointMapper, CustomerPointDetailMapper customerPointDetailMapper, PointGoodsRecordMapper pointGoodsRecordMapper) {
this.customerPointMapper = customerPointMapper;
this.customerPointDetailMapper = customerPointDetailMapper;
+ this.pointGoodsRecordMapper = pointGoodsRecordMapper;
}
@@ -80,4 +81,15 @@
}
+ /**
+ * 积分兑换券过期
+ */
+ @Scheduled(cron = "0 46 11 * * ?")
+ public void expiredPointGoodsRecord() {
+ log.info("积分兑换券过期计算开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
+ pointGoodsRecordMapper.updateExpiredPointGoodsRecord();
+ log.info("积分兑换券过期计算开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
+ }
+
+
}
diff --git a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
index d0ee148..28efa42 100644
--- a/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
+++ b/src/main/java/com/mzl/flower/service/point/PointGoodsService.java
@@ -19,6 +19,7 @@
import com.mzl.flower.mapper.point.PointGoodsRecordMapper;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.payment.RedisLockService;
+import com.mzl.flower.utils.DateUtils;
import com.mzl.flower.utils.UUIDGenerator;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +27,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.util.List;
@Service
@@ -163,6 +165,9 @@
record.setCover(p.getCover());
record.setRedeemCode(UUIDGenerator.getUUID());
record.setStatus(Constants.POINT_GOODS_RECORD_STATUS.A.name());//未使用
+ LocalDate expireDate = LocalDate.now().plusYears(1);
+ String expireDateStr = DateUtils.toString(expireDate,"yyyy-MM-dd");
+ record.setExpireTime(DateUtils.dateToLocalDateTime(expireDateStr,false));
record.create(SecurityUtils.getUserId());
pointGoodsRecordMapper.insert(record);
diff --git a/src/main/resources/mapper/point/PointGoodMapper.xml b/src/main/resources/mapper/point/PointGoodMapper.xml
index 866bb09..3a8ee5c 100644
--- a/src/main/resources/mapper/point/PointGoodMapper.xml
+++ b/src/main/resources/mapper/point/PointGoodMapper.xml
@@ -1,6 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.mzl.flower.mapper.point.PointGoodsRecordMapper">
+ <update id="updateExpiredPointGoodsRecord">
+ update t_point_goods_record p set p.`status`='E' where p.deleted = 0 and p.`status` = 'A' and
+ <![CDATA[
+ p.expire_time < NOW()
+ ]]>
+
+ </update>
<select id="selectMyExchangeGoods" resultType="com.mzl.flower.dto.response.point.PointGoodsRecordDTO">
SELECT
--
Gitblit v1.9.3