Merge branch 'xzj' of gitee.com:darlk/ShengTangManage into develop
This commit is contained in:
@ -27,6 +27,7 @@ public class AsyncCommonServiceImpl implements AsyncCommonService {
|
||||
@Autowired
|
||||
private SysFoodHeatStatisticsMapper sysFoodHeatStatisticsMapper;
|
||||
|
||||
public static final long sleepTime = 5000; //异步线程睡眠时间,毫秒
|
||||
|
||||
/**
|
||||
* 异步更新每个食材对应的蛋白质、脂肪、碳水的质量
|
||||
@ -34,6 +35,11 @@ public class AsyncCommonServiceImpl implements AsyncCommonService {
|
||||
@Override
|
||||
@Async
|
||||
public void updateFoodNutritionalQualityAndHeat(Long customerHeatId){
|
||||
try {
|
||||
Thread.sleep(sleepTime);
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
SysCustomerHeatStatistics sysCustomerHeatStatistics = sysCustomerHeatStatisticsMapper.selectSysCustomerHeatStatisticsById(customerHeatId);
|
||||
if(sysCustomerHeatStatistics != null && sysCustomerHeatStatistics.getFoodHeatStatisticsList() != null
|
||||
&& sysCustomerHeatStatistics.getFoodHeatStatisticsList().size() > 0){
|
||||
|
@ -76,10 +76,12 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
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);
|
||||
serverEndDate = serverStartDate.plusMonths(serverMonth).plusDays(giveDay+serverSmallDay);
|
||||
List<SysOrderPause> pausesList = sysOrder.getOrderPauseList();
|
||||
if(pausesList == null){
|
||||
if(sysOrder.getOrderId() != null){
|
||||
@ -90,12 +92,10 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
pausesList = new ArrayList<>();
|
||||
}
|
||||
}
|
||||
//System.out.println("结束时间:"+serverEndDate);
|
||||
//每年每月暂停天数,key为年份加月份,如:2021年1月=20211
|
||||
Map<String, Integer> everyYearMonthPauseDay = getEveryYearMonthPauseDay(pausesList, serverStartDate, serverEndDate);
|
||||
//该笔订单暂停总天数
|
||||
int pauseTotalDay = getTotalByMap(everyYearMonthPauseDay);
|
||||
//System.out.println("暂停天数:"+pauseTotalDay);
|
||||
//服务到期时间加上暂停时间
|
||||
serverEndDate = serverEndDate.plusDays(pauseTotalDay);
|
||||
}
|
||||
@ -278,10 +278,12 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
LocalDate serverStartDate = DateUtils.dateToLocalDate(sysOrder.getStartTime());
|
||||
//订单总服务月数
|
||||
int serverMonth = sysOrder.getServeTimeId().intValue()/30;
|
||||
//服务天数(不满一个月的零头)
|
||||
int serverSmallDay = sysOrder.getServeTimeId().intValue()%30 - (serverMonth > 0 ? 0 : 1);
|
||||
//赠送时长
|
||||
int giveDay = sysOrder.getGiveServeDay().intValue();
|
||||
//服务到期时间(加赠送时间,不加暂停时间)
|
||||
LocalDate serverEndDate = serverStartDate.plusMonths(serverMonth).plusDays(giveDay);
|
||||
LocalDate serverEndDate = serverStartDate.plusMonths(serverMonth).plusDays(giveDay+serverSmallDay);
|
||||
//订单金额
|
||||
BigDecimal orderAmount = sysOrder.getAmount();
|
||||
//每年每月暂停天数,key为年份加月份,如:2021年1月=20211
|
||||
@ -355,9 +357,6 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
//服务到期时间刷新
|
||||
serverEndDate = serverEndDate.plusDays(totalDay);
|
||||
}
|
||||
/*for(String key : pauseMap.keySet()){
|
||||
System.out.println(key+":"+pauseMap.get(key).intValue());
|
||||
}*/
|
||||
return pauseMap;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import com.stdiet.common.annotation.Excel;
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.common.utils.SecurityUtils;
|
||||
import com.stdiet.custom.domain.SysOrder;
|
||||
@ -76,14 +77,101 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
//计算服务到期时间
|
||||
setOrderServerEndDate(sysOrder);
|
||||
sysOrder.setOrderId(Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, orderTime)));
|
||||
int row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
// if (row > 0) {
|
||||
// //异步生成食谱计划
|
||||
// sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
// }
|
||||
//获取订单类型
|
||||
Integer[] orderType = sysOrder.getOrderTypeList();
|
||||
if(orderType == null || orderType.length != 3){
|
||||
return 0;
|
||||
}
|
||||
sysOrder.setOrderType(String.valueOf(orderType[0]));
|
||||
sysOrder.setOrderCountType(String.valueOf(orderType[1]));
|
||||
sysOrder.setOrderMoneyType(String.valueOf(orderType[2]));
|
||||
int row = 0;
|
||||
//普通单
|
||||
if("0".equals(sysOrder.getOrderType())){
|
||||
sysOrder.setNutritionistId((sysOrder.getNutritionistIdList() != null && sysOrder.getNutritionistIdList().length > 0) ? sysOrder.getNutritionistIdList()[0] : null);
|
||||
sysOrder.setMainOrderId(0L);
|
||||
sysOrder.setAfterSaleCommissOrder(0);
|
||||
sysOrder.setOnSaleId(null);
|
||||
//二开单
|
||||
if("1".equals(sysOrder.getOrderCountType())){
|
||||
row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
//需要自动创建售后二开提成单
|
||||
if(row > 0 && sysOrder.getSecondAfterSaleFlag() != null && sysOrder.getSecondAfterSaleFlag().intValue() == 1){
|
||||
autoCreateSecondAfterSaleOrder(sysOrder);
|
||||
}
|
||||
}else{
|
||||
row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
}
|
||||
}
|
||||
//比例拆分单
|
||||
else if("1".equals(sysOrder.getOrderType())){
|
||||
sysOrder.setAfterSaleCommissOrder(0);
|
||||
sysOrder.setOnSaleId(null);
|
||||
String rate = sysOrder.getNutritionistRate();
|
||||
if(StringUtils.isEmpty(rate) || rate.indexOf(",") == -1 || "0,10".equals(rate) || sysOrder.getNutritionistIdList().length != 2){
|
||||
return 0;
|
||||
}
|
||||
String[] rateArray = rate.split(",");
|
||||
if(Integer.parseInt(rateArray[0]) + Integer.parseInt(rateArray[1]) != 10){
|
||||
return 0;
|
||||
}
|
||||
BigDecimal amount = sysOrder.getAmount();
|
||||
//获取主单的数组下标
|
||||
int mainIndex = 0;
|
||||
if(Integer.parseInt(rateArray[1]) > Integer.parseInt(rateArray[0])){
|
||||
mainIndex = 1;
|
||||
}
|
||||
//添加主单
|
||||
sysOrder.setNutritionistId(sysOrder.getNutritionistIdList()[mainIndex]);
|
||||
sysOrder.setAmount(BigDecimal.valueOf(amount.doubleValue()*Integer.parseInt(rateArray[mainIndex])/10));
|
||||
sysOrder.setMainOrderId(0L);
|
||||
row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
//添加副单
|
||||
sysOrder.setMainOrderId(sysOrder.getOrderId());
|
||||
sysOrder.setOrderId(sysOrder.getOrderId()+1);
|
||||
sysOrder.setNutritionistId(sysOrder.getNutritionistIdList()[1-mainIndex]);
|
||||
sysOrder.setAmount(BigDecimal.valueOf(amount.doubleValue()*Integer.parseInt(rateArray[1-mainIndex])/10));
|
||||
row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
//二开,是否需要自动创建售后二开提成单
|
||||
if(row > 0 && "1".equals(sysOrder.getOrderCountType()) && sysOrder.getSecondAfterSaleFlag() != null && sysOrder.getSecondAfterSaleFlag().intValue() == 1){
|
||||
sysOrder.setAmount(amount);
|
||||
autoCreateSecondAfterSaleOrder(sysOrder);
|
||||
}
|
||||
}
|
||||
//体验单
|
||||
else if("2".equals(sysOrder.getOrderType())){
|
||||
sysOrder.setMainOrderId(0L);
|
||||
sysOrder.setAfterSaleCommissOrder(0);
|
||||
sysOrder.setAfterSaleId(null);
|
||||
sysOrder.setNutritionistId(null);
|
||||
sysOrder.setNutriAssisId(null);
|
||||
row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建售后二开提成订单
|
||||
* @param sysOrder
|
||||
* @return
|
||||
*/
|
||||
private int autoCreateSecondAfterSaleOrder(SysOrder sysOrder){
|
||||
if(sysOrder != null){
|
||||
sysOrder.setPreSaleId(sysOrder.getAfterSaleId());
|
||||
sysOrder.setAfterSaleId(null);
|
||||
sysOrder.setNutritionistId(null);
|
||||
sysOrder.setNutriAssisId(null);
|
||||
sysOrder.setPlannerId(null);
|
||||
sysOrder.setPlannerAssisId(null);
|
||||
sysOrder.setOperatorId(null);
|
||||
sysOrder.setOperatorAssisId(null);
|
||||
sysOrder.setAfterSaleCommissOrder(1);
|
||||
sysOrder.setOrderId(sysOrder.getOrderId()+1);
|
||||
return sysOrderMapper.insertSysOrder(sysOrder);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改销售订单
|
||||
*
|
||||
|
Reference in New Issue
Block a user