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