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