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); } } }