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