From dffca9256460b2dbfbac276b5bde2a8b2cf254a7 Mon Sep 17 00:00:00 2001 From: xiezhijun <15270898033@163.com> Date: Thu, 25 Mar 2021 17:26:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E6=88=90=E8=AE=A1=E7=AE=97=E4=BC=98?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=8F=90=E6=88=90=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/stdiet/custom/domain/SysOrder.java | 5 +++++ .../impl/SysCommissionDayServiceImpl.java | 18 ++++-------------- .../service/impl/SysOrderServiceImpl.java | 18 +++++++++++++++++- .../resources/mapper/custom/SysOrderMapper.xml | 9 +++++++-- .../views/custom/commision/detail/index.vue | 2 +- .../custom/commision/detail_day/index.vue | 2 +- 6 files changed, 35 insertions(+), 19 deletions(-) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java index 07534dbd4..40f178e46 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysOrder.java @@ -255,6 +255,11 @@ public class SysOrder extends BaseEntity { /** 售后二开提成单, 0非提成单 1提成单 */ private Integer afterSaleCommissOrder; + /** 提成计算开始时间,与食谱计划开始时间区分开 */ + @JsonFormat(pattern = "yyyy-MM-dd") + //@Excel(name = "提成计算开始时间,与食谱计划开始时间区分开", width = 30, dateFormat = "yyyy-MM-dd") + private Date commissStartTime; + /** 删除标记 */ private Integer delFlag; diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java index 95cc237a1..02e223550 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCommissionDayServiceImpl.java @@ -108,14 +108,6 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { * 根据用户ID统计出该用户在该月所有订单的服务数量、服务总天数、服务订单总额、暂停总天数 * **/ public void dealServerOrderCommissionDetail(List orderDetailList, SysCommissionDayDetail sysCommissionDayDetail){ - /*System.out.println("------------------开始--------------"); - if(orderDetailList != null){ - for(SysOrderCommisionDayDetail sysOrderCommisionDayDetail : orderDetailList){ - System.out.println("姓名:"+sysOrderCommisionDayDetail.getName() + " 总天数:"+sysOrderCommisionDayDetail.getServerDay() - +" 每天金额:"+sysOrderCommisionDayDetail.getDayMoney() + " 一月服务天数:"+sysOrderCommisionDayDetail.getEveryYearMonthServerDay().get("20211") - +" 一月对应金额:"+ sysOrderCommisionDayDetail.getEveryYearMonthServerMoney().get("20211")); - } - }*/ //总提成 BigDecimal totalCommissionAmount = new BigDecimal(0); //已发放提成 @@ -135,7 +127,6 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { } commissionMonthSet.addAll(sysOrderCommisionDayDetail.getEveryYearMonthServerMoney().keySet()); } - //System.out.println("总提成:"+sysCommissionDayDetail.getNickName()+"-"+orderAmount.get("20211")); //获取提成比例以及计算提成 Map rateMap = getRateByAmount(sysCommissionDayDetail.getUserId(), sysCommissionDayDetail.getPostId(), orderAmount); @@ -170,7 +161,6 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { sendDetailList.add(map); } i++; - } } sysCommissionDayDetail.setTotalCommissionAmount(totalCommissionAmount); @@ -239,8 +229,8 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { //整理出每个用户对应的订单List Map> userOrderResultMap = new HashMap<>(); for (SysOrder sysOrder : orderList) { - //开始时间为空、售后人员ID为空、营养师ID都为空、订单金额为空,都视为异常订单 - if(sysOrder.getOrderTime() == null || sysOrder.getStartTime() == null || sysOrder.getServeTimeId() == null + //提成开始时间为空、售后人员ID为空、营养师ID都为空、订单金额为空,都视为异常订单 + if(sysOrder.getOrderTime() == null || sysOrder.getCommissStartTime() == null || sysOrder.getServeTimeId() == null || (sysOrder.getAfterSaleId() == null && sysOrder.getNutritionistId() == null) || sysOrder.getAmount() == null){ //System.out.println("客户:"+ sysOrder.getCustomer() +",营养师:"+sysOrder.getNutritionist() + ",售后" + sysOrder.getAfterSale()); @@ -275,8 +265,8 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { * 统计每笔订单的服务开始时间、结束时间、每年每月服务天数、服务金额、服务暂停天数等信息 * */ public SysOrderCommisionDayDetail statisticsOrderMessage(SysOrder sysOrder){ - //服务开始时间(客户建档时间) - LocalDate serverStartDate = DateUtils.dateToLocalDate(sysOrder.getStartTime()); + //提成计算开始时间(与食谱计划开始时间可能不同) + LocalDate serverStartDate = DateUtils.dateToLocalDate(sysOrder.getCommissStartTime()); //订单总服务月数 int serverMonth = sysOrder.getServeTimeId().intValue()/30; //服务天数(不满一个月的零头) diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java index 27c17c8e9..9ee2c1a41 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java @@ -17,7 +17,9 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDate; +import java.time.ZoneId; import java.time.temporal.ChronoUnit; +import java.time.temporal.TemporalAdjusters; import java.util.Date; import java.util.List; @@ -75,7 +77,8 @@ public class SysOrderServiceImpl implements ISysOrderService { Date orderTime = DateUtils.getNowDate(); sysOrder.setCreateTime(orderTime); sysOrder.setCreateBy(SecurityUtils.getUsername()); - //sysOrder.setOrderTime(orderTime); + //新增订单时,食谱开始时间和提成计算开始时间保持一致 + sysOrder.setCommissStartTime(sysOrder.getStartTime()); //计算服务到期时间 setOrderServerEndDate(sysOrder); sysOrder.setOrderId(Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, orderTime))); @@ -204,6 +207,19 @@ public class SysOrderServiceImpl implements ISysOrderService { sysOrder.setOperatorId(null); sysOrder.setOperatorAssisId(null); } + LocalDate oldStartDate = oldSysOrder.getStartTime() != null ? DateUtils.dateToLocalDate(oldSysOrder.getStartTime()) : null; + LocalDate nowStartDate = sysOrder.getStartTime() != null ? DateUtils.dateToLocalDate(sysOrder.getStartTime()) : null; + //判断修改的开始时间是否为上个月时间,为上个月时间则不修改提成开始时间 + if (oldStartDate != null && nowStartDate != null + && ChronoUnit.DAYS.between(oldStartDate, nowStartDate) != 0) { + //本月第一天 + LocalDate monthStart = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()); + //System.out.println(monthStart.toString()); + //旧的开始时间和新的开始时间都要需要大于本月第一天 + if(ChronoUnit.DAYS.between(monthStart, oldStartDate) >= 0 && ChronoUnit.DAYS.between(monthStart, nowStartDate) >= 0){ + sysOrder.setCommissStartTime(sysOrder.getStartTime()); + } + } //更新订单 int row = sysOrderMapper.updateSysOrder(sysOrder); // 审核后的订单才生成食谱 diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml index dff79ab11..0d38fd545 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml @@ -47,6 +47,7 @@ + @@ -219,6 +220,7 @@ order_money_type, main_order_id, after_sale_commiss_order, + commiss_start_time, del_flag, @@ -259,6 +261,7 @@ #{orderMoneyType}, #{mainOrderId}, #{afterSaleCommissOrder}, + #{commissStartTime}, #{delFlag}, @@ -303,6 +306,7 @@ order_money_type = #{orderMoneyType}, main_order_id = #{mainOrderId}, after_sale_commiss_order = #{afterSaleCommissOrder}, + commiss_start_time = #{commissStartTime}, del_flag = #{delFlag}, where order_id = #{orderId} @@ -362,6 +366,7 @@ + @@ -389,9 +394,9 @@ where del_flag = 0 and order_id = #{order_id} - +