修改订单,添加假删字段
This commit is contained in:
		| @@ -1,6 +1,8 @@ | ||||
| package com.stdiet.custom.service; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import com.stdiet.custom.domain.SysOrder; | ||||
| import com.stdiet.custom.domain.SysRecipesPlan; | ||||
| import org.springframework.core.annotation.Order; | ||||
|  | ||||
| @@ -87,4 +89,6 @@ public interface ISysRecipesPlanService | ||||
|      * @return | ||||
|      */ | ||||
|     List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan); | ||||
|  | ||||
|     public void myGenerateRecipesPlan(SysOrder sysOrder); | ||||
| } | ||||
| @@ -1,22 +1,22 @@ | ||||
| package com.stdiet.custom.service.impl; | ||||
|  | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import com.stdiet.custom.domain.SysOrder; | ||||
| import com.stdiet.custom.mapper.SysOrderMapper; | ||||
| import com.stdiet.custom.service.ISysCommissionDayService; | ||||
| import com.stdiet.custom.service.ISysOrderPauseService; | ||||
| import com.stdiet.custom.service.ISysOrderService; | ||||
| import com.stdiet.custom.service.ISysRecipesPlanService; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
|  | ||||
| import java.math.BigDecimal; | ||||
| import java.time.LocalDate; | ||||
| import java.time.temporal.ChronoUnit; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
|  | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import com.stdiet.custom.service.ISysCommissionDayService; | ||||
| import com.stdiet.custom.service.ISysOrderPauseService; | ||||
| import com.stdiet.custom.service.ISysRecipesPlanService; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| import com.stdiet.custom.mapper.SysOrderMapper; | ||||
| import com.stdiet.custom.domain.SysOrder; | ||||
| import com.stdiet.custom.service.ISysOrderService; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
|  | ||||
| /** | ||||
|  * 销售订单Service业务层处理 | ||||
|  * | ||||
| @@ -75,10 +75,10 @@ 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()); | ||||
|         } | ||||
| //        if (row > 0) { | ||||
| //            //异步生成食谱计划 | ||||
| //            sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId()); | ||||
| //        } | ||||
|         return row; | ||||
|     } | ||||
|  | ||||
| @@ -97,9 +97,10 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|         sysOrder.setUpdateTime(DateUtils.getNowDate()); | ||||
|         //更新订单 | ||||
|         int row = sysOrderMapper.updateSysOrder(sysOrder); | ||||
|         if(row > 0){ | ||||
|         // 审核后的订单才生成食谱 | ||||
|         if (row > 0 && oldSysOrder.getReviewStatus().equals("no") && sysOrder.getReviewStatus().equals("yes")) { | ||||
|             //异步更新食谱计划 | ||||
|             if(isNeedRegenerateRecipesPlan(oldSysOrder, sysOrder)){ | ||||
|             if (isNeedRegenerateRecipesPlan(oldSysOrder, sysOrder)) { | ||||
|                 sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId()); | ||||
|             } | ||||
|         } | ||||
| @@ -108,19 +109,20 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|  | ||||
|     /** | ||||
|      * 判断是否需要重新生成食谱计划 | ||||
|      * | ||||
|      * @param oldSysOrder | ||||
|      * @param newSysOrder | ||||
|      * @return | ||||
|      */ | ||||
|     private boolean isNeedRegenerateRecipesPlan(SysOrder oldSysOrder, SysOrder newSysOrder){ | ||||
|         if(oldSysOrder.getServeTimeId() != null && newSysOrder.getServeTimeId() != null && oldSysOrder.getServeTimeId().intValue() != newSysOrder.getServeTimeId().intValue()){ | ||||
|     private boolean isNeedRegenerateRecipesPlan(SysOrder oldSysOrder, SysOrder newSysOrder) { | ||||
|         if (oldSysOrder.getServeTimeId() != null && newSysOrder.getServeTimeId() != null && oldSysOrder.getServeTimeId().intValue() != newSysOrder.getServeTimeId().intValue()) { | ||||
|             return true; | ||||
|         } | ||||
|         if(newSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay().intValue() != newSysOrder.getGiveServeDay().intValue()){ | ||||
|         if (newSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay().intValue() != newSysOrder.getGiveServeDay().intValue()) { | ||||
|             return true; | ||||
|         } | ||||
|         if(oldSysOrder.getStartTime() != null && newSysOrder.getStartTime() != null | ||||
|                 && ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(oldSysOrder.getStartTime()), DateUtils.dateToLocalDate(newSysOrder.getStartTime())) != 0){ | ||||
|         if (oldSysOrder.getStartTime() != null && newSysOrder.getStartTime() != null | ||||
|                 && ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(oldSysOrder.getStartTime()), DateUtils.dateToLocalDate(newSysOrder.getStartTime())) != 0) { | ||||
|             return true; | ||||
|         } | ||||
|         return false; | ||||
| @@ -135,7 +137,7 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|     @Override | ||||
|     public int deleteSysOrderByIds(Long[] orderIds) { | ||||
|         int row = sysOrderMapper.deleteSysOrderByIds(orderIds); | ||||
|         if(row > 0){ | ||||
|         if (row > 0) { | ||||
|             deletePauseAndPlan(orderIds); | ||||
|         } | ||||
|         return row; | ||||
| @@ -150,7 +152,7 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|     @Override | ||||
|     public int deleteSysOrderById(Long orderId) { | ||||
|         int row = sysOrderMapper.deleteSysOrderById(orderId); | ||||
|         if(row > 0){ | ||||
|         if (row > 0) { | ||||
|             Long[] orderIdArray = new Long[1]; | ||||
|             orderIdArray[0] = orderId; | ||||
|             deletePauseAndPlan(orderIdArray); | ||||
| @@ -160,6 +162,7 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|  | ||||
|     /** | ||||
|      * 计算所有订单总额 | ||||
|      * | ||||
|      * @param sysOrder | ||||
|      * @return | ||||
|      */ | ||||
| @@ -170,21 +173,22 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|  | ||||
|     /** | ||||
|      * 根据订单ID更新该订单的服务到期时间,异步更新食谱计划 | ||||
|      * @param orderId  订单ID | ||||
|      * | ||||
|      * @param orderId    订单ID | ||||
|      * @param updatePlan 是否更新食谱 | ||||
|      * @return | ||||
|      */ | ||||
|     @Override | ||||
|     public int updateOrderServerEndDate(Long orderId, boolean updatePlan){ | ||||
|     public int updateOrderServerEndDate(Long orderId, boolean updatePlan) { | ||||
|         int row = 0; | ||||
|         //更新订单服务到期时间 | ||||
|         SysOrder sysOrder = selectSysOrderById(orderId); | ||||
|         if(sysOrder != null){ | ||||
|         if (sysOrder != null) { | ||||
|             //设置服务到期时间 | ||||
|             setOrderServerEndDate(sysOrder); | ||||
|             sysOrder.setUpdateTime(new Date()); | ||||
|             row = updateSysOrder(sysOrder); | ||||
|             if(row > 0){ | ||||
|             if (row > 0) { | ||||
|                 //异步更新食谱计划 | ||||
|                 sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId()); | ||||
|             } | ||||
| @@ -194,18 +198,20 @@ public class SysOrderServiceImpl implements ISysOrderService { | ||||
|  | ||||
|     /** | ||||
|      * 给对象SysOrder对象设置服务到期时间 | ||||
|      * | ||||
|      * @param sysOrder | ||||
|      */ | ||||
|     private void setOrderServerEndDate(SysOrder sysOrder){ | ||||
|     private void setOrderServerEndDate(SysOrder sysOrder) { | ||||
|         LocalDate serverEndDate = sysCommissionDayService.getServerEndDate(sysOrder); | ||||
|         sysOrder.setServerEndTime(serverEndDate != null ? DateUtils.localDateToDate(serverEndDate) : null); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 删除订单的同时删除暂停记录、食谱计划安排 | ||||
|      * | ||||
|      * @param orderIds 订单ID集合 | ||||
|      */ | ||||
|     private void deletePauseAndPlan(Long[] orderIds){ | ||||
|     private void deletePauseAndPlan(Long[] orderIds) { | ||||
|         //删除暂停记录 | ||||
|         sysOrderPauseService.deletePauseByOrderId(orderIds); | ||||
|         //删除食谱计划 | ||||
|   | ||||
| @@ -109,6 +109,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { | ||||
|         return sysRecipesPlanMapper.deleteSysRecipesPlanById(id); | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 异步方法,根据订单ID生成对应的食谱计划,退款订单不生成食谱计划 | ||||
|      * | ||||
| @@ -122,8 +124,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { | ||||
|             return; | ||||
|         } | ||||
|         SysOrder sysOrder = sysOrderService.selectSysOrderById(orderId); | ||||
|         //订单为空、金额小于0不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成 | ||||
|         if (sysOrder == null && DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear() < 2021) { | ||||
|         //订单为空、金额小于0不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成,判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划 | ||||
|         if (sysOrder == null && DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear() < 2021 | ||||
|                 || sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) { | ||||
|             return; | ||||
|         } | ||||
| //        System.out.println(DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear()); | ||||
| @@ -140,10 +143,10 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { | ||||
|                     //删除该订单对于食谱 | ||||
|                     delRecipesPlanByOrderId(orderIdArray); | ||||
|                 } | ||||
|                 //判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划 | ||||
|                 if (sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) { | ||||
|                     return; | ||||
|                 } | ||||
| //                //判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划 | ||||
| //                if (sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null) { | ||||
| //                    return; | ||||
| //                } | ||||
|                 SysOrderPause pauseParam = new SysOrderPause(); | ||||
|                 pauseParam.setOrderId(sysOrder.getOrderId()); | ||||
|                 //暂停记录列表 | ||||
| @@ -288,4 +291,9 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService { | ||||
|     public List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan) { | ||||
|         return sysRecipesPlanMapper.selectPlanListByOrderId(sysRecipesPlan); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void myGenerateRecipesPlan(SysOrder sysOrder) { | ||||
|  | ||||
|     } | ||||
| } | ||||
| @@ -31,7 +31,7 @@ | ||||
|     <sql id="groupAmountVo"> | ||||
|         SELECT ${column} AS user_id, ${postId} AS post_id, SUM(amount) AS amount | ||||
|         FROM sys_order | ||||
|         WHERE ${column} IS NOT NULL AND ${column} <> 0 | ||||
|         WHERE ${column} IS NOT NULL AND ${column} <> 0 AND del_flag = 0 | ||||
|         AND review_status = 'yes' | ||||
|         <if test="beginTime != null and beginTime != ''">AND date_format(order_time,'%y%m%d') >= | ||||
|             date_format(${beginTime},'%y%m%d') | ||||
|   | ||||
| @@ -90,6 +90,7 @@ | ||||
|                     and 0 > amount | ||||
|                 </if> | ||||
|             </if> | ||||
|             <if test="true">and del_flag = 0</if> | ||||
|         </where> | ||||
|     </select> | ||||
|  | ||||
| @@ -126,6 +127,7 @@ | ||||
|                     and 0 > amount | ||||
|                 </if> | ||||
|             </if> | ||||
|             <if test="true">and del_flag = 0</if> | ||||
|         </where> | ||||
|         order by order_time desc | ||||
|     </select> | ||||
| @@ -246,14 +248,14 @@ | ||||
|     </update> | ||||
|  | ||||
|     <delete id="deleteSysOrderById" parameterType="Long"> | ||||
|         delete from sys_order where order_id = #{orderId} | ||||
|         update sys_order set del_flag = 1 where order_id = #{orderId} | ||||
|     </delete> | ||||
|  | ||||
|     <delete id="deleteSysOrderByIds" parameterType="String"> | ||||
|         delete from sys_order where order_id in | ||||
|         <foreach item="orderId" collection="array" open="(" separator="," close=")"> | ||||
|             #{orderId} | ||||
|         </foreach> | ||||
| <!--        delete from sys_order where order_id in--> | ||||
| <!--        <foreach item="orderId" collection="array" open="(" separator="," close=")">--> | ||||
| <!--            #{orderId}--> | ||||
| <!--        </foreach>--> | ||||
|     </delete> | ||||
|  | ||||
|     <resultMap type="SysOrder" id="SysOrderResultExtended"> | ||||
| @@ -323,7 +325,7 @@ | ||||
|       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 | ||||
|       where review_status = 'yes' and o.order_time >= '2021-01-01' | ||||
|       where review_status = 'yes' and o.order_time >= '2021-01-01' and del_flag = 0 | ||||
|       <if test="userId != null"> | ||||
|           and (su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId}) | ||||
|       </if> | ||||
|   | ||||
| @@ -31,12 +31,13 @@ | ||||
|     </resultMap> | ||||
|  | ||||
|     <sql id="selectSysRecipesPlanVo"> | ||||
|         select id, order_id, start_date, end_date, recipes_id, send_flag, send_time, create_time, create_by, update_time, update_by, del_flag from sys_recipes_plan | ||||
|         select id, order_id, cus_id, start_date, end_date, recipes_id, send_flag, send_time, create_time, create_by, update_time, update_by, del_flag from sys_recipes_plan | ||||
|     </sql> | ||||
|  | ||||
|     <select id="selectSysRecipesPlanList" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult"> | ||||
|         <include refid="selectSysRecipesPlanVo"/> where del_flag = 0 | ||||
|         <if test="orderId != null "> and order_id = #{orderId}</if> | ||||
|         <if test="cusId != null "> and cus_id = #{cusId}</if> | ||||
|         <if test="startDate != null "> and start_date = #{startDate}</if> | ||||
|         <if test="endDate != null "> and end_date = #{endDate}</if> | ||||
|         <if test="recipesId != null "> and recipes_id = #{recipesId}</if> | ||||
| @@ -53,6 +54,7 @@ | ||||
|         insert into sys_recipes_plan | ||||
|         <trim prefix="(" suffix=")" suffixOverrides=","> | ||||
|             <if test="orderId != null">order_id,</if> | ||||
|             <if test="cusId != null">cus_id,</if> | ||||
|             <if test="startDate != null">start_date,</if> | ||||
|             <if test="endDate != null">end_date,</if> | ||||
|             <if test="recipesId != null">recipes_id,</if> | ||||
| @@ -66,6 +68,7 @@ | ||||
|         </trim> | ||||
|         <trim prefix="values (" suffix=")" suffixOverrides=","> | ||||
|             <if test="orderId != null">#{orderId},</if> | ||||
|             <if test="cusId != null">#{cusId},</if> | ||||
|             <if test="startDate != null">#{startDate},</if> | ||||
|             <if test="endDate != null">#{endDate},</if> | ||||
|             <if test="recipesId != null">#{recipesId},</if> | ||||
| @@ -83,6 +86,7 @@ | ||||
|         update sys_recipes_plan | ||||
|         <trim prefix="SET" suffixOverrides=","> | ||||
|             <if test="orderId != null">order_id = #{orderId},</if> | ||||
|             <if test="cusId != null">cus_id = #{cusId},</if> | ||||
|             <if test="startDate != null">start_date = #{startDate},</if> | ||||
|             <if test="endDate != null">end_date = #{endDate},</if> | ||||
|             <if test="recipesId != null">recipes_id = #{recipesId},</if> | ||||
| @@ -111,10 +115,10 @@ | ||||
|     <!-- 批量插入食谱计划 --> | ||||
|     <insert id="insertBatch"> | ||||
|         INSERT INTO sys_recipes_plan | ||||
|         (order_id, start_date, end_date, send_flag, send_time, recipes_id) | ||||
|         (order_id, cus_id, start_date, end_date, send_flag, send_time, recipes_id) | ||||
|         VALUES | ||||
|         <foreach collection ="list" item="plan" separator =","> | ||||
|             (#{plan.orderId}, #{plan.startDate}, #{plan.endDate}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId}) | ||||
|             (#{plan.orderId}, #{plan.cusId}, #{plan.startDate}, #{plan.endDate}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId}) | ||||
|         </foreach > | ||||
|     </insert> | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user