浏览文件服务到期时间使用新算法计算,直接加天数

Merge pull request  from 德仔/xzj
This commit is contained in:
德仔 2021-04-12 18:21:21 +08:00 committed by Gitee
commit 450ec6363b

@ -38,6 +38,9 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
@Autowired
private ISysOrderNutritionistReplaceRecordService sysOrderNutritionistReplaceRecordService;
//2021-04-13开始使用新的算法计算服务结束日期直接加上对应天数
public static final LocalDate newVersionServerDateStartDate = DateUtils.stringToLocalDate("2021-04-13", "yyyy-MM-dd");
@Override
public List<SysCommissionDayDetail> calculateCommissionByDay(SysCommision sysCommision){
List<SysCommissionDayDetail> result = new ArrayList<>();
@ -85,14 +88,10 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
if(sysOrder != null && sysOrder.getStartTime() != null){
//服务开始时间食谱开始时间
LocalDate serverStartDate = DateUtils.dateToLocalDate(sysOrder.getStartTime());
//订单总服务月数
int serverMonth = sysOrder.getServeTimeId() != null ? sysOrder.getServeTimeId().intValue()/30 : 0;
//服务天数(不满一个月的零头)
int serverSmallDay = sysOrder.getServeTimeId().intValue()%30 - (serverMonth > 0 ? 0 : 1);
//赠送时长
int giveDay = sysOrder.getGiveServeDay() != null ? sysOrder.getGiveServeDay().intValue() : 0;
//服务到期时间加赠送时间不加暂停时间
serverEndDate = serverStartDate.plusMonths(serverMonth).plusDays(giveDay+serverSmallDay);
//计算基础服务到期时间不包含暂停
serverEndDate = getBaseServerEndDate(sysOrder);
List<SysOrderPause> pausesList = new ArrayList<>();
if(sysOrder.getOrderId() != null){
SysOrderPause sysOrderPause = new SysOrderPause();
@ -110,6 +109,36 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
return serverEndDate;
}
/**
* 计算基础服务到期时间食谱计划提成计算服务到期时间共用方法不包含暂停
* @param sysOrder
* @return
*/
public LocalDate getBaseServerEndDate(SysOrder sysOrder){
LocalDate serverEndDate = null;
//服务开始时间食谱开始时间
LocalDate serverStartDate = DateUtils.dateToLocalDate(sysOrder.getStartTime());
//成交时间
LocalDate orderDate = DateUtils.dateToLocalDate(sysOrder.getOrderTime());
//大于界限时间
if(ChronoUnit.DAYS.between(newVersionServerDateStartDate, orderDate) >= 0){
//订单总服务天数
long serverDay = sysOrder.getServeTimeId() != null ? sysOrder.getServeTimeId() : 0L;
serverDay += sysOrder.getGiveServeDay() != null ? sysOrder.getGiveServeDay().intValue() : 0;
serverEndDate = serverStartDate.plusDays(serverDay - 1);
}else{
//订单总服务月数
int serverMonth = sysOrder.getServeTimeId() != null ? sysOrder.getServeTimeId().intValue()/30 : 0;
//服务天数(不满一个月的零头)
int serverSmallDay = sysOrder.getServeTimeId().intValue()%30 - (serverMonth > 0 ? 0 : 1);
//赠送时长
int giveDay = sysOrder.getGiveServeDay() != null ? sysOrder.getGiveServeDay().intValue() : 0;
//服务到期时间加赠送时间不加暂停时间
serverEndDate = serverStartDate.plusMonths(serverMonth).plusDays(giveDay+serverSmallDay);
}
return serverEndDate;
}
/**
* 计算订单提成详情
* @param sysCommision
@ -570,11 +599,11 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
//订单总服务月数
int serverMonth = sysOrder.getServeTimeId().intValue()/30;
//服务天数(不满一个月的零头)
int serverSmallDay = sysOrder.getServeTimeId().intValue()%30 - (serverMonth > 0 ? 0 : 1);
//int serverSmallDay = sysOrder.getServeTimeId().intValue()%30 - (serverMonth > 0 ? 0 : 1);
//赠送时长
int giveDay = sysOrder.getGiveServeDay().intValue();
//服务到期时间加赠送时间不加暂停时间
LocalDate serverEndDate = sysOrder.getServerEndTime() == null ? serverStartDate.plusMonths(serverMonth).plusDays(giveDay+serverSmallDay) : DateUtils.dateToLocalDate(sysOrder.getServerEndTime());
LocalDate serverEndDate = sysOrder.getServerEndTime() == null ? getBaseServerEndDate(sysOrder) : DateUtils.dateToLocalDate(sysOrder.getServerEndTime());
//订单金额
BigDecimal orderAmount = sysOrder.getAmount();
//查询暂停列表