From efb7d4e40bfc75a56e60da658fa18f824a6eb2dd Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com> Date: 星期一, 02 九月 2024 11:03:54 +0800 Subject: [PATCH] 确认收货 后置处理 --- src/main/java/com/mzl/flower/service/payment/OrderService.java | 54 +++++++++++++++++++++++++-- src/main/java/com/mzl/flower/schedule/ScheduleService.java | 7 +++ src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java | 4 + 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/mzl/flower/schedule/ScheduleService.java b/src/main/java/com/mzl/flower/schedule/ScheduleService.java index 4ffb145..eea6f6f 100644 --- a/src/main/java/com/mzl/flower/schedule/ScheduleService.java +++ b/src/main/java/com/mzl/flower/schedule/ScheduleService.java @@ -133,7 +133,12 @@ @Scheduled(cron = "1 20 0/1 * * ?") public void autoReceive() { log.info("自动收货开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); - orderService.autoReceive(); + List<Order> ls = orderService.autoReceive(); + if(ls != null && ls.size() > 0){ + for(Order o : ls){ + orderService.processAfterReceive(o); + } + } log.info("自动收货结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java index 5d8fa5a..ca0a23a 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java @@ -12,6 +12,7 @@ import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.PriceDTO; +import com.mzl.flower.dto.request.menber.MemberGrowthRecordDTO; import com.mzl.flower.dto.request.payment.*; import com.mzl.flower.dto.response.flower.FlowerCartListDTO; import com.mzl.flower.dto.response.flower.FlowerCartListWrapDTO; @@ -40,6 +41,8 @@ import com.mzl.flower.mapper.warehouse.WarehouseLocationMapper; import com.mzl.flower.service.BaseService; import com.mzl.flower.service.flower.FlowerService; +import com.mzl.flower.service.menber.MemberGrowthRecordService; +import com.mzl.flower.service.point.CustomerPointService; import com.mzl.flower.service.system.CodeService; import com.mzl.flower.service.system.WeChatService; import com.mzl.flower.service.transport.TransportService; @@ -50,6 +53,7 @@ import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -135,6 +139,13 @@ @Autowired private OrderPointGoodsMapper pointGoodsMapper; + + @Autowired + @Lazy + private MemberGrowthRecordService memberGrowthRecordService; + + @Autowired + private CustomerPointService customerPointService; public void changeFlower2Cart(CartSaveDTO dto) { String userId = SecurityUtils.getUserId(); @@ -904,12 +915,12 @@ return result; } - public void autoReceive() { + public List<Order> autoReceive() { int days = -5; //5天前的订单自动收货 LocalDateTime endTime = LocalDateTime.now().plusDays(days); List<Order> ls = orderMapper.getOrderForAutoReceive(endTime); if (ls == null || ls.size() == 0) { - return; + return ls; } for (Order o : ls) { @@ -918,8 +929,41 @@ o.setReceiveTime(LocalDateTime.now()); o.update("sys"); orderMapper.updateById(o); - } + + return ls; + } + + public void processAfterReceive(Order o){ + String status = o.getStatus(); + if(!Constants.ORDER_STATUS.EVALUATE.name().equals(status)){ + log.warn("订单未确认收货,无法处理积分和成长值"); + return; + } + + BigDecimal totalAmount = o.getTotalAmount(); + List<OrderItemCheck> checkList = orderItemCheckMapper.selectList(new QueryWrapper<OrderItemCheck>() + .eq("order_id", o.getId()) + .eq("audit_status", Constants.CHECK_AUDIT_STATUS.AGREED.name()) + ); + + if(checkList != null && checkList.size() > 0){ + for(OrderItemCheck c : checkList){ + totalAmount = totalAmount.subtract(getAmount(c.getDeductAmount())); + } + } + + //成长值计算 + MemberGrowthRecordDTO mDto = new MemberGrowthRecordDTO(); + mDto.setTotalAmount(totalAmount); + mDto.setUserId(o.getCreateBy()); + mDto.setSource(Constants.GROWTH_SOURCE.consume.name()); + mDto.setType(Constants.GROWTH_TYPE.add.name()); + mDto.setRemarks("订单: " + o.getOrderNo()); + memberGrowthRecordService.saveMemberGrowthRecord(mDto); + + //积分计算 + customerPointService.consumptionPoint(totalAmount, o.getOrderNo(), o.getCreateBy()); } public JSONObject sendWxDeliveryGood(Order o) { @@ -961,7 +1005,7 @@ } } - public void confirmOrderReceive(String id) { + public Order confirmOrderReceive(String id) { Order o = orderMapper.selectById(id); String userId = SecurityUtils.getUserId(); if (!userId.equals(o.getCreateBy())) { @@ -980,6 +1024,8 @@ o.setReceiveTime(LocalDateTime.now()); o.update(userId); orderMapper.updateById(o); + + return o; } public Integer getMyOrderStatusCount(String status) { diff --git a/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java b/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java index cf1772b..f76374b 100644 --- a/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java +++ b/src/main/java/com/mzl/flower/web/customer/OrderCustomerController.java @@ -11,6 +11,7 @@ import com.mzl.flower.dto.response.payment.OrderDTO; import com.mzl.flower.dto.response.payment.OrderItemListDTO; import com.mzl.flower.dto.response.payment.OrderListDTO; +import com.mzl.flower.entity.payment.Order; import com.mzl.flower.service.payment.OrderService; import com.mzl.flower.service.payment.UserPaymentV3Service; import io.swagger.annotations.Api; @@ -68,7 +69,8 @@ @ApiImplicitParam(name = "id", value = "订单id", required = true, dataType = "String", paramType = "query") }) public ResponseEntity<ReturnDataDTO<?>> confirmOrderReceive(String id){ - orderService.confirmOrderReceive(id); + Order o = orderService.confirmOrderReceive(id); + orderService.processAfterReceive(o); return returnData(R.SUCCESS.getCode(), null); } -- Gitblit v1.9.3