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<SysOrderCommisionDayDetail> 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<String, Float> 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<Long, List<SysOrderCommisionDayDetail>> 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 @@ <result property="orderMoneyType" column="order_money_type" /> <result property="mainOrderId" column="main_order_id" /> <result property="afterSaleCommissOrder" column="after_sale_commiss_order" /> + <result property="commissStartTime" column="commiss_start_time" /> <result property="delFlag" column="del_flag" /> <!-- 非持久化字段 --> @@ -219,6 +220,7 @@ <if test="orderMoneyType != null">order_money_type,</if> <if test="mainOrderId != null">main_order_id,</if> <if test="afterSaleCommissOrder != null">after_sale_commiss_order,</if> + <if test="commissStartTime != null">commiss_start_time,</if> <if test="delFlag != null">del_flag,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> @@ -259,6 +261,7 @@ <if test="orderMoneyType != null">#{orderMoneyType},</if> <if test="mainOrderId != null">#{mainOrderId},</if> <if test="afterSaleCommissOrder != null">#{afterSaleCommissOrder},</if> + <if test="commissStartTime != null">#{commissStartTime},</if> <if test="delFlag != null">#{delFlag},</if> </trim> </insert> @@ -303,6 +306,7 @@ <if test="orderMoneyType != null">order_money_type = #{orderMoneyType},</if> <if test="mainOrderId != null">main_order_id = #{mainOrderId},</if> <if test="afterSaleCommissOrder != null">after_sale_commiss_order = #{afterSaleCommissOrder},</if> + <if test="commissStartTime != null">commiss_start_time = #{commissStartTime},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> </trim> where order_id = #{orderId} @@ -362,6 +366,7 @@ <result property="orderMoneyType" column="order_money_type" /> <result property="mainOrderId" column="main_order_id" /> <result property="afterSaleCommissOrder" column="after_sale_commiss_order" /> + <result property="commissStartTime" column="commiss_start_time" /> <result property="delFlag" column="del_flag" /> <!-- 非持久化字段 --> @@ -389,9 +394,9 @@ where del_flag = 0 and order_id = #{order_id} </select> - <!-- 查询2021年开始的已审核的订单信息(用于计算提成) --> + <!-- 查询2021年开始的已审核的订单信息(用于计算提成,请勿随意改动) --> <select id="selectSimpleOrderMessage" resultMap="SysOrderResultExtended" parameterType="SysCommision"> - select o.order_id,o.order_time,o.start_time,o.customer,o.review_status,o.amount,o.serve_time_id,o.give_serve_day,o.after_sale_id,su_sale.nick_name as afterSale_name,o.nutritionist_id,su_nutritionist.nick_name as nutritionist_name + select o.order_id,o.order_time,o.commiss_start_time,o.server_end_time,o.customer,o.review_status,o.amount,o.serve_time_id,o.give_serve_day,o.after_sale_id,su_sale.nick_name as afterSale_name,o.nutritionist_id,su_nutritionist.nick_name as nutritionist_name from sys_order o left join sys_user su_sale on su_sale.user_id = o.after_sale_id and su_sale.del_flag = 0 left join sys_user su_nutritionist on su_nutritionist.user_id = o.nutritionist_id and su_nutritionist.del_flag = 0 diff --git a/stdiet-ui/src/views/custom/commision/detail/index.vue b/stdiet-ui/src/views/custom/commision/detail/index.vue index 3c9e56b93..531f94efa 100644 --- a/stdiet-ui/src/views/custom/commision/detail/index.vue +++ b/stdiet-ui/src/views/custom/commision/detail/index.vue @@ -180,7 +180,7 @@ export default { pageSize: 10, userId: null, postId: null, - reviewStatus: "yes" + reviewStatus: null }, }; }, diff --git a/stdiet-ui/src/views/custom/commision/detail_day/index.vue b/stdiet-ui/src/views/custom/commision/detail_day/index.vue index af3232316..28583eaf7 100644 --- a/stdiet-ui/src/views/custom/commision/detail_day/index.vue +++ b/stdiet-ui/src/views/custom/commision/detail_day/index.vue @@ -266,7 +266,7 @@ export default { pageSize: 20, userId: null, postId: null, - reviewStatus: "yes", + reviewStatus: null, }, sendCommissionPlanTable: false, sendCommissionPlan: {},