From 2b7ec842c2b0fff4b872084e828edd5c3f5dbaf5 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期六, 21 九月 2024 22:51:21 +0800
Subject: [PATCH] 1.优惠券-活动优惠券-定时任务-领取时间小于当前时间,自动下架 2.优惠券-优惠券使用记录-定时任务-使用时间小于当前时间,自动过期 3.优惠券-积分优惠券-增加已领取数和未领取数

---
 src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
index a071bcd..8ee01c1 100644
--- a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
@@ -274,6 +274,8 @@
 
         dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class));
 
+        dto.setNum(oi.getNum());
+
         return dto;
     }
 
@@ -308,6 +310,8 @@
         dto.setFlowerCategory(oi.getFlowerCategory());
 
         dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class));
+
+        dto.setNum(oi.getNum());
 
         return dto;
     }
@@ -406,7 +410,7 @@
         );
         if (count == 0) {
             Order o = orderMapper.selectById(orderId);
-            if(!Constants.ORDER_STATUS_BACKEND.COLLECTION.name().equals(o.getStatus())){
+            if(!Constants.ORDER_STATUS_BACKEND.COLLECTION.name().equals(o.getStatusBackend())){
                 log.warn("非待集货状态,不可设置待发货");
                 return;
             }
@@ -607,7 +611,7 @@
         return dto;
     }
 
-    public OrderItemCheckNumDTO getOtherCheck(String itemId, String type){
+    public OrderItemCheckNumDTO getOtherCheck(String itemId, String type, boolean isSupplier){
         OrderItemCheck c = orderItemCheckMapper.selectOne(new QueryWrapper<OrderItemCheck>()
                 .eq("type", type)
                 .eq("order_item_id", itemId)
@@ -619,6 +623,12 @@
             BeanUtils.copyProperties(c, dto);
             User user = userMapper.selectById(c.getCreateBy());
             dto.setCreateName(user.getNickName());
+
+            if(Constants.CHECK_TYPE.lack.name().equals(c.getType()) && isSupplier){
+                OrderItem oi = orderItemMapper.selectById(itemId);
+                BigDecimal lackFeeSupplier = oi.getSupplierPrice().multiply(new BigDecimal(c.getNum()));
+                dto.setDeductAmount(lackFeeSupplier);
+            }
         }
 
         return dto;
@@ -638,6 +648,16 @@
         OrderItem oi = orderItemMapper.selectById(dto.getOrderItemId());
         if(dto.getNum() > oi.getNum()){
             throw new ValidationException("处理数量不能大于商品数量");
+        }
+
+        Order o = orderMapper.selectById(oi.getOrderId());
+        if(StringUtils.isNotEmpty(o.getTransferId())){
+            throw new ValidationException("已质检退款,不可提交质检记录");
+        }
+
+        if(!Constants.ORDER_STATUS_BACKEND.COLLECTION.name().equals(o.getStatusBackend())
+            && !Constants.ORDER_STATUS_BACKEND.SEND.name().equals(o.getStatusBackend())){
+            throw new ValidationException("订单状态异常,不可提交质检记录");
         }
 
         List<OrderItemCheck> cLs = orderItemCheckMapper.selectList(new QueryWrapper<OrderItemCheck>()
@@ -663,13 +683,19 @@
             deduct = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum()));
         } else if(Constants.CHECK_TYPE.lack.name().equals(dto.getType())){
             deduct = realPrice.multiply(new BigDecimal(dto.getNum()));
+            //质检退款,按照这个单价扣,如果3扎都缺货,按照总的金额退
+            //缺货数量等于商品总数时按真实总价退款
+            if(dto.getNum().intValue() == oi.getNum() && oi.getRealTotal() != null){
+                deduct = oi.getRealTotal();
+            }
         } else if (Constants.CHECK_TYPE.reduce.name().equals(dto.getType())) {
             if(deductAmount == null){
                 throw new ValidationException("降级金额不能为空");
             }
             deduct = deductAmount.multiply(new BigDecimal(dto.getNum()));
             BigDecimal dt = realPrice.multiply(new BigDecimal(dto.getNum()));
-            if(deduct.doubleValue() > dt.doubleValue()){
+            if(deduct.doubleValue() > dt.doubleValue()
+                    || (oi.getRealTotal() != null && deduct.doubleValue() > oi.getRealTotal().doubleValue())){
                 throw new ValidationException("降级金额不能大于商品处理数量金额");
             }
         }

--
Gitblit v1.9.3