食谱计划优化、按天计算提成优化、图片logo修改
This commit is contained in:
		| @@ -29,6 +29,7 @@ public class SysRecipesPlan extends BaseEntity | ||||
|     private String customer; | ||||
|  | ||||
|     //非持久化字段,客户手机号 | ||||
|     @Excel(name = "客户手机号") | ||||
|     private String phone; | ||||
|  | ||||
|     /** 食谱开始日期 */ | ||||
|   | ||||
| @@ -79,4 +79,11 @@ public interface SysRecipesPlanMapper | ||||
|      * @return | ||||
|      */ | ||||
|     List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan); | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID查询食谱计划 | ||||
|      * @param sysRecipesPlan | ||||
|      * @return | ||||
|      */ | ||||
|     List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan); | ||||
| } | ||||
| @@ -80,4 +80,11 @@ public interface ISysRecipesPlanService | ||||
|      * @return | ||||
|      */ | ||||
|     List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan); | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID查询食谱计划 | ||||
|      * @param sysRecipesPlan | ||||
|      * @return | ||||
|      */ | ||||
|     List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan); | ||||
| } | ||||
| @@ -123,6 +123,7 @@ 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); | ||||
|  | ||||
| @@ -225,10 +226,10 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         //整理出每个用户对应的订单List | ||||
|         Map<Long, List<SysOrderCommisionDayDetail>> userOrderResultMap = new HashMap<>(); | ||||
|         for (SysOrder sysOrder : orderList) { | ||||
|             //建档时间为空、售后人员ID为空、营养师ID为空、订单金额为空或小于0,都视为异常订单 | ||||
|             //开始时间为空、售后人员ID为空、营养师ID都为空、订单金额为空,都视为异常订单 | ||||
|             if(sysOrder.getOrderTime() == null || sysOrder.getStartTime() == null || sysOrder.getServeTimeId() == null | ||||
|                     || (sysOrder.getAfterSaleId() == null && sysOrder.getNutritionistId() == null) | ||||
|                     || sysOrder.getAmount() == null || sysOrder.getAmount().doubleValue() < 0){ | ||||
|                     || sysOrder.getAmount() == null){ | ||||
|                 //System.out.println("客户:"+ sysOrder.getCustomer() +",营养师:"+sysOrder.getNutritionist() + ",售后" + sysOrder.getAfterSale()); | ||||
|                 continue; | ||||
|             } | ||||
| @@ -436,7 +437,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|      * double转为BigDecimal,保留一位小数,向下舍去 | ||||
|      * */ | ||||
|     public BigDecimal getMoney(Double money, int n){ | ||||
|         return new BigDecimal(money).setScale(n, BigDecimal.ROUND_HALF_UP); | ||||
|         return new BigDecimal(money.toString()).setScale(n, BigDecimal.ROUND_DOWN); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -459,7 +460,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         nf.setRoundingMode(RoundingMode.DOWN); | ||||
|         System.out.println(Double.parseDouble(nf.format(s))); | ||||
|         System.out.println( new BigDecimal(nf.format(s)).doubleValue());*/ | ||||
|         System.out.println(new BigDecimal(s).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()); | ||||
|         /*System.out.println(new BigDecimal(s).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()); | ||||
|  | ||||
|         LocalDate localDate = LocalDate.of(2020, 1, 15); | ||||
|         System.out.println(ChronoUnit.MONTHS.between(localDate, LocalDate.now())); | ||||
| @@ -467,6 +468,14 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService { | ||||
|         System.out.println(localDate.getDayOfWeek()); | ||||
|         System.out.println(localDate.getDayOfYear()); | ||||
|  | ||||
|         System.out.println(ChronoUnit.DAYS.between(LocalDate.of(2021, 1,14), LocalDate.now())); | ||||
|         System.out.println(ChronoUnit.DAYS.between(LocalDate.of(2021, 1,14), LocalDate.now()));*/ | ||||
|  | ||||
|         /*System.out.println(ts(109792.8 * 6 / 100D, 1)); | ||||
|         System.out.println(ts(6587.8,2).doubleValue());*/ | ||||
|         System.out.println(ts(1.919,1).doubleValue()); | ||||
|     } | ||||
|  | ||||
|     public static BigDecimal ts(Double money, int n){ | ||||
|         return new BigDecimal(money.toString()).setScale(n, BigDecimal.ROUND_DOWN); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| package com.stdiet.custom.service.impl; | ||||
|  | ||||
| import java.math.BigDecimal; | ||||
| import java.time.LocalDate; | ||||
| import java.time.temporal.ChronoUnit; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| @@ -196,7 +197,8 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|      * @param sysOrder | ||||
|      */ | ||||
|     private void setOrderServerEndDate(SysOrder sysOrder){ | ||||
|         sysOrder.setServerEndTime(DateUtils.localDateToDate(sysCommissionDayService.getServerEndDate(sysOrder))); | ||||
|         LocalDate serverEndDate = sysCommissionDayService.getServerEndDate(sysOrder); | ||||
|         sysOrder.setServerEndTime(serverEndDate != null ? DateUtils.localDateToDate(serverEndDate) : null); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -133,10 +133,11 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService | ||||
|             return; | ||||
|         } | ||||
|         SysOrder sysOrder = sysOrderService.selectSysOrderById(orderId); | ||||
|         //订单为空、金额小于0不进行食谱生成、更新 | ||||
|         if(sysOrder == null){ | ||||
|         //订单为空、金额小于0不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成 | ||||
|         if(sysOrder == null && DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear() > 2020){ | ||||
|             return; | ||||
|         } | ||||
|         System.out.println(DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear()); | ||||
|         try{ | ||||
|             //获取redis中该订单对应的锁 | ||||
|             if(synchrolockUtil.lock(String.format(generateRecipesPlanLockKey, orderId))){ | ||||
| @@ -281,4 +282,14 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService | ||||
|     public List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan){ | ||||
|         return sysRecipesPlanMapper.selectPlanListByCondition(sysRecipesPlan); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID查询食谱计划 | ||||
|      * @param sysRecipesPlan | ||||
|      * @return | ||||
|      */ | ||||
|     @Override | ||||
|     public List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan){ | ||||
|         return sysRecipesPlanMapper.selectPlanListByOrderId(sysRecipesPlan); | ||||
|     } | ||||
| } | ||||
| @@ -96,11 +96,11 @@ | ||||
|     </update> | ||||
|  | ||||
|     <delete id="deleteSysRecipesPlanById" parameterType="Long"> | ||||
|         update sys_recipes_plan set del_flag = 1 where id = #{id} | ||||
|         delete from sys_recipes_plan where id = #{id} | ||||
|     </delete> | ||||
|  | ||||
|     <delete id="deleteSysRecipesPlanByIds" parameterType="String"> | ||||
|         update sys_recipes_plan set del_flag = 1 where id in | ||||
|         delete from sys_recipes_plan where id in | ||||
|         <foreach item="id" collection="array" open="(" separator="," close=")"> | ||||
|             #{id} | ||||
|         </foreach> | ||||
| @@ -118,7 +118,7 @@ | ||||
|  | ||||
|     <!-- 根据订单ID删除对应食谱计划 --> | ||||
|     <update id="delRecipesPlanByOrderId" parameterType="String"> | ||||
|       update sys_recipes_plan set del_flag = 1 where order_id in | ||||
|       delete from sys_recipes_plan where order_id in | ||||
|       <foreach item="orderId" collection="array" open="(" separator="," close=")"> | ||||
|             #{orderId} | ||||
|       </foreach> | ||||
| @@ -133,10 +133,38 @@ | ||||
|       LEFT JOIN sys_user su_nutritionist_assis ON su_nutritionist_assis.user_id = sr.nutri_assis_id AND su_nutritionist_assis.del_flag = 0 | ||||
|       WHERE srp.del_flag = 0 | ||||
|       <if test="orderId != null">AND srp.order_id = #{orderId}</if> | ||||
|       <if test="customer != null and customer != ''">AND sr.customer like concat('%',#{customer},'%')</if> | ||||
|         <if test="sendFlag != null">AND srp.send_flag = #{sendFlag}</if> | ||||
|       <if test="customer != null and customer != ''">AND (sr.customer like concat('%',#{customer},'%') OR sr.phone like concat('%',#{customer},'%'))</if> | ||||
|       <if test="nutritionistId != null">AND su_nutritionist.user_id = #{nutritionistId}</if> | ||||
|       <if test="nutritionistAssisId != null">AND su_nutritionist_assis.user_id = #{nutritionistAssisId}</if> | ||||
|       <if test="startDate != null and endDate != null ">AND srp.start_date BETWEEN date_format(#{startDate},'%y%m%d') AND date_format(#{endDate},'%y%m%d') </if> | ||||
|       ORDER BY srp.order_id DESC,srp.id ASC | ||||
|     </select> | ||||
|     <!-- 食谱计划、订单表联查 --> | ||||
|     <!--<select id="selectPlanListByCondition" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult"> | ||||
|         SELECT sr.order_id,sr.customer,sr.phone,su_nutritionist.nick_name nutritionist,su_nutritionist_assis.nick_name AS nutritionist_assis,sr.start_time,sr.server_end_time | ||||
|         FROM sys_order sr | ||||
|         LEFT JOIN sys_user su_nutritionist ON su_nutritionist.user_id = sr.nutritionist_id AND su_nutritionist.del_flag = 0 | ||||
|         LEFT JOIN sys_user su_nutritionist_assis ON su_nutritionist_assis.user_id = sr.nutri_assis_id AND su_nutritionist_assis.del_flag = 0 | ||||
|         <where> | ||||
|             <if test="orderId != null">AND sr.order_id = #{orderId}</if> | ||||
|             <if test="customer != null and customer != ''">AND (sr.customer like concat('%',#{customer},'%') OR sr.phone like concat('%',#{customer},'%'))</if> | ||||
|             <if test="nutritionistId != null">AND su_nutritionist.user_id = #{nutritionistId}</if> | ||||
|             <if test="nutritionistAssisId != null">AND su_nutritionist_assis.user_id = #{nutritionistAssisId}</if> | ||||
|             <if test="startDate != null and endDate != null "> | ||||
|                 AND sr.order_id IN ( SELECT order_id FROM sys_recipes_plan srp WHERE srp.del_flag = 0 AND srp.start_date BETWEEN date_format(#{startDate},'%y%m%d') AND date_format(#{endDate},'%y%m%d')) | ||||
|             </if> | ||||
|         </where> | ||||
|         ORDER BY sr.order_id DESC | ||||
|     </select>--> | ||||
|  | ||||
|     <!-- 根据订单ID查询食谱计划 --> | ||||
|     <select id="selectPlanListByOrderId" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult"> | ||||
|       SELECT srp.id,srp.order_id,sr.customer,sr.phone, srp.start_date,srp.end_date,srp.send_flag,srp.send_time | ||||
|       FROM sys_recipes_plan srp | ||||
|       LEFT JOIN sys_order sr ON sr.order_id = srp.order_id | ||||
|       WHERE srp.del_flag = 0 AND srp.order_id = #{orderId} | ||||
|       <if test="sendFlag != null">AND srp.send_flag = #{sendFlag}</if> | ||||
|       ORDER BY srp.id ASC | ||||
|     </select> | ||||
| </mapper> | ||||
		Reference in New Issue
	
	Block a user