From 5bb359883bda6f15b6a6937a2c17ac9bbc67ab8e Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期日, 22 九月 2024 17:17:24 +0800
Subject: [PATCH] add:会员成长值规则
---
src/main/java/com/mzl/flower/schedule/PointScheduleService.java | 42 ++++++++++++++++++++++++------------------
1 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/mzl/flower/schedule/PointScheduleService.java b/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
index ca05ac0..9a6a612 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,21 +28,24 @@
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;
}
/**
* 定时计算用户过期积分
*/
- @Scheduled(cron = "0 20 9 * * ?")
+ @Scheduled(cron = "0 10 0 * * ?")
public void calculatingExpiredPoint() {
log.info("过期积分计算开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
LocalDate now = LocalDate.now().minusDays(1);//前一天
LocalDate lastYear = now.minus(1, ChronoUnit.YEARS); // 日期减去一年
- List<ExpiredPointDTO> pointDTOS = customerPointDetailMapper.tongjiExpiredPoint(lastYear);
+ List<ExpiredPointDTO> pointDTOS = customerPointDetailMapper.tongjiExpiredPoint(lastYear,null);
if(pointDTOS != null && pointDTOS.size() > 0){
for (ExpiredPointDTO pointDTO : pointDTOS) {
if(pointDTO.getAddPoint().intValue()> pointDTO.getReducePoint().intValue()){ //积分增加大于减少
@@ -55,9 +56,9 @@
customerPointDetail.setChangeType(Constants.POINT_CHANGE_TYPE.reduce.name());
customerPointDetail.setType(Constants.POINT_TYPE.expired.name());
customerPointDetail.setPoint(expiredPoint);
- customerPointDetail.setRecordDate(now);
+ customerPointDetail.setRecordDate(lastYear);
customerPointDetail.create("sys");
- customerPointDetail.setRemarks(DateUtils.toString(now,"yyyy-MM-dd")+"过期积分结算");
+ customerPointDetail.setRemarks(DateUtils.toString(now,"yyyy-MM-dd")+"过期积分结算,过期积分"+expiredPoint);
customerPointDetailMapper.insert(customerPointDetail);
//更新用户积分记录
@@ -65,16 +66,10 @@
.eq(CustomerPoint::getCustomerId, pointDTO.getCustomerId())
.eq(CustomerPoint::getUserId, pointDTO.getUserId()));
if(customerPoint == null ){
- customerPoint = new CustomerPoint();
- customerPoint.setCustomerId(pointDTO.getCustomerId());
- customerPoint.setUserId(pointDTO.getUserId());
- customerPoint.setTotalPoint(0);
- customerPoint.setUsedPoint(0);
- customerPoint.setExpiredPoint(0);
- customerPoint.create("sys");
- customerPointMapper.insert(customerPoint);
+ log.error("用户积分记录不存在,userId={},customerId={}",pointDTO.getUserId(),pointDTO.getCustomerId());
}else {
- customerPoint.setExpiredPoint(expiredPoint);
+ Integer expiredPointTotal = customerPoint.getExpiredPoint()==null?0:customerPoint.getExpiredPoint();
+ customerPoint.setExpiredPoint(expiredPoint+expiredPointTotal);
customerPointMapper.updateById(customerPoint);
}
@@ -87,4 +82,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"));
+ }
+
+
}
--
Gitblit v1.9.3