diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java index 03df73d03..eb7558f29 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysOrderController.java @@ -84,8 +84,8 @@ public class SysOrderController extends OrderBaseController { order.setPhone(StringUtils.hiddenPhoneNumber(order.getPhone())); } //根据服务时长、赠送天数计算服务天数 - int month = order.getServeTimeId() != null ? order.getServeTimeId().intValue()/30 : 0; - if(order.getStartTime() != null && order.getServerEndTime() != null && order.getServeTimeId() != null && month > 0){ + int month = order.getServeTimeId() != null ? order.getServeTimeId().intValue() / 30 : 0; + if (order.getStartTime() != null && order.getServerEndTime() != null && order.getServeTimeId() != null && month > 0) { long serverDay = ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(order.getStartTime()), DateUtils.dateToLocalDate(order.getStartTime()).plusMonths(month).plusDays(order.getGiveServeDay() == null ? 0 : order.getGiveServeDay())) + 1; order.setServerDay(Integer.parseInt(serverDay + "")); } @@ -155,9 +155,9 @@ public class SysOrderController extends OrderBaseController { @GetMapping(value = "/getInfoDetail") public AjaxResult getInfoDetail(@RequestParam("orderId") Long orderId) { SysOrder order = sysOrderService.selectSysOrderById(orderId); - if(order != null){ + if (order != null) { List userList = userService.selectAllUser(); - for(SysUser user : userList){ + for (SysUser user : userList) { if (user.getUserId().equals(order.getPreSaleId())) { order.setPreSale(user.getNickName()); } @@ -212,9 +212,9 @@ public class SysOrderController extends OrderBaseController { */ @PreAuthorize("@ss.hasPermi('custom:order:remove')") @Log(title = "销售订单", businessType = BusinessType.DELETE) - @DeleteMapping("/{orderIds}") - public AjaxResult remove(@PathVariable Long[] orderIds) { - return toAjax(sysOrderService.deleteSysOrderByIds(orderIds)); + @DeleteMapping("/{orderId}") + public AjaxResult remove(@PathVariable Long orderId) { + return toAjax(sysOrderService.deleteSysOrderById(orderId)); } diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java index 196f86977..c0b66280b 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysRecipesPlanService.java @@ -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 selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan); + + public void myGenerateRecipesPlan(SysOrder sysOrder); } \ No newline at end of file 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 c8b665ef8..2101510b2 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 @@ -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); //删除食谱计划 diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java index d94cc5448..08e1d689e 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesPlanServiceImpl.java @@ -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 selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan) { return sysRecipesPlanMapper.selectPlanListByOrderId(sysRecipesPlan); } + + @Override + public void myGenerateRecipesPlan(SysOrder sysOrder) { + + } } \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml index 7be516ec3..7ba3957bd 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysCommisionMapper.xml @@ -31,7 +31,7 @@ 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' AND date_format(order_time,'%y%m%d') >= date_format(${beginTime},'%y%m%d') diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml index 0bac02658..20c43cceb 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml @@ -90,6 +90,7 @@ and 0 > amount + and del_flag = 0 @@ -126,6 +127,7 @@ and 0 > amount + and del_flag = 0 order by order_time desc @@ -246,14 +248,14 @@ - delete from sys_order where order_id = #{orderId} + update sys_order set del_flag = 1 where order_id = #{orderId} - delete from sys_order where order_id in - - #{orderId} - + + + + @@ -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 and (su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId}) diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml index 64f53456f..619537d9e 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml @@ -31,12 +31,13 @@ - 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