修改订单,添加假删字段
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