From e2c56f53fcfeb638c35464e9da18b78334daad0f Mon Sep 17 00:00:00 2001
From: tj <1378534974@qq.com>
Date: 星期三, 02 四月 2025 14:15:46 +0800
Subject: [PATCH] 1.VIP订单过期检测-每天凌晨一点执行一次

---
 src/main/java/com/mzl/flower/schedule/ScheduleService.java         |   11 +++++++++++
 src/main/java/com/mzl/flower/mapper/customer/CustomerMapper.java   |    2 ++
 src/main/resources/mapper/customer/CustomerMapper.xml              |    5 +++++
 src/main/java/com/mzl/flower/service/customer/CustomerService.java |    5 +++++
 4 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mzl/flower/mapper/customer/CustomerMapper.java b/src/main/java/com/mzl/flower/mapper/customer/CustomerMapper.java
index b715cc3..c1f8002 100644
--- a/src/main/java/com/mzl/flower/mapper/customer/CustomerMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/customer/CustomerMapper.java
@@ -41,4 +41,6 @@
 
     @Select("select * from t_customer_info where  user_id  = ( select id from t_user where tel =#{phone} and type = 'customer')")
     CustomerDTO findCustomerByPhone(String phone);
+
+    void checkVipExpireTime();
 }
diff --git a/src/main/java/com/mzl/flower/schedule/ScheduleService.java b/src/main/java/com/mzl/flower/schedule/ScheduleService.java
index 34f94b7..a9e05bd 100644
--- a/src/main/java/com/mzl/flower/schedule/ScheduleService.java
+++ b/src/main/java/com/mzl/flower/schedule/ScheduleService.java
@@ -1,7 +1,9 @@
 package com.mzl.flower.schedule;
 
+import com.mzl.flower.service.customer.CustomerService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Profile;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -10,6 +12,9 @@
 @Slf4j
 public class ScheduleService {
 
+    @Autowired
+    private CustomerService customerService;
+
     @Scheduled(cron = "0 15 17 * * ?")
     @Profile("prod")
     public void DealSendMessageInfoBySupplier() {
@@ -17,4 +22,10 @@
         log.info("供应商下单供货提示结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
     }
 
+    // vip过期时间校验,每隔1个小时执行一次
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void checkVipExpireTime() {
+        customerService.checkVipExpireTime();
+    }
+
 }
diff --git a/src/main/java/com/mzl/flower/service/customer/CustomerService.java b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
index 1c9ae43..1331f6e 100644
--- a/src/main/java/com/mzl/flower/service/customer/CustomerService.java
+++ b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
@@ -276,4 +276,9 @@
     public void updateMemberInfo(Customer customer) {
         customerMapper.updateById(customer);
     }
+
+    public void checkVipExpireTime() {
+        // 获取当天日期之前,且is_member=1的用户,设置为is_member=0并且将member_overtime设置为null
+        customerMapper.checkVipExpireTime();
+    }
 }
diff --git a/src/main/resources/mapper/customer/CustomerMapper.xml b/src/main/resources/mapper/customer/CustomerMapper.xml
index 7b2ee84..dbf189c 100644
--- a/src/main/resources/mapper/customer/CustomerMapper.xml
+++ b/src/main/resources/mapper/customer/CustomerMapper.xml
@@ -4,6 +4,11 @@
     <update id="bindPartner">
         update t_customer_info set partner_id = #{partnerId} , partner_user_id = #{userId} where id = #{id}
     </update>
+    <update id="checkVipExpireTime">
+        update t_customer_info c
+        set c.is_member = 0,c.member_overtime = NULL
+        where c.member_overtime < now() and c.is_member = 1
+    </update>
     <select id="queryCustomer" resultType="com.mzl.flower.dto.response.customer.CustomerDTO">
         SELECT
             c.*,

--
Gitblit v1.9.3