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