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