package com.mzl.flower.service.menber.impl;
|
|
import com.mzl.flower.entity.payment.Order;
|
import com.mzl.flower.service.menber.GrowthValueDeductionStrategy;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
import java.time.temporal.ChronoUnit;
|
|
/**
|
* packageName com.mzl.flower.service.menber.impl
|
* @author fanghaowei
|
* @version version2.0
|
* @className GrowthValueDealService
|
* @date 2024/9/2
|
* @description TODO
|
*/
|
|
@Service
|
public class GrowthValueDealService {
|
|
@Resource
|
private GrowthValueStrategyContext growthValueStrategyContext;
|
public void deductionGrowthValue(Order order) {
|
//当前时间
|
LocalDateTime now = LocalDateTime.now();
|
|
//最后消费时间
|
LocalDateTime receiveTime = order.getReceiveTime();
|
|
// 将时间转换为LocalDate,只保留年月日部分
|
LocalDate nowDate = now.toLocalDate();
|
LocalDate receiveTimeDate = receiveTime.toLocalDate();
|
long daysBetween = ChronoUnit.DAYS.between(receiveTimeDate, nowDate);
|
|
if (daysBetween > 30 && daysBetween <= 90) {
|
GrowthValueDeductionStrategy growthInfo = growthValueStrategyContext.getGrowthInfo("SecondDeduction");
|
growthInfo.deduct(order);
|
} else if (daysBetween > 90) {
|
GrowthValueDeductionStrategy growthInfo = growthValueStrategyContext.getGrowthInfo("ThirdDeduction");
|
growthInfo.deduct(order);
|
}
|
}
|
|
|
}
|