Browse Source

促销/优惠券bugfix

zhijiezhao 1 year ago
parent
commit
753834915d

+ 1 - 1
src/main/java/com/caimei365/order/mapper/OrderClubMapper.java

@@ -421,7 +421,7 @@ public interface OrderClubMapper {
     /**
      * 查询订单优惠信息
      */
-    CouponOrderRecordPo getOrderCouponRecord(Integer orderId);
+    CouponOrderRecordPo getOrderCouponRecord(Integer orderId,Integer couponClubId);
 
     /**
      * 查询用户优惠券关联数据

+ 2 - 0
src/main/java/com/caimei365/order/model/vo/ShopOrderVo.java

@@ -18,6 +18,8 @@ import java.util.List;
 @Data
 public class ShopOrderVo implements Serializable {
     private static final long serialVersionUID = 1L;
+
+    private Integer couponClubId;
     /**
      * 虚拟字段,不包含店铺满减的子订单应付
      */

+ 56 - 65
src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java

@@ -217,7 +217,7 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 机构订单详情
      *
-     * @param userId  用户Id
+     * @param userId      用户Id
      * @param shopOrderId 子订单Id
      */
     @Override
@@ -243,52 +243,52 @@ public class OrderClubServiceImpl implements OrderClubService {
 //        List<ShopOrderVo> shopOrderList = order.getShopOrderList();
         AtomicDouble expensesOfTaxation = new AtomicDouble(0d);
 //        shopOrderList.forEach(shopOrder -> {
-            List<OrderProductVo> orderProductList = shopOrder.getOrderProductList();
-            orderProductList.forEach(orderProduct -> {
-                // 是否充值商品
-                boolean recharge = productService.isRechargeProduct(orderProduct.getProductId());
-                if (recharge) {
-                    shopOrder.setRechargeGoods(true);
-                }
-                //是否能退货
-                if (null != orderProduct.getReturnGoodsStutas() && 2 == orderProduct.getReturnGoodsStutas()) {
-                    String helpContent = orderCommonMapper.getHelpContent(1040);
-                    orderProduct.setHelpContent(helpContent);
-                }
-                // 总税费
-                expensesOfTaxation.set(MathUtil.add(expensesOfTaxation.get(), orderProduct.getTotalAddedValueTax()).doubleValue());
-                //已发货数量
-                orderProduct.setShipmentsNum(orderProduct.getNum() + orderProduct.getPresentNum() - orderProduct.getNotOutStore());
-                //已退货数量
-                Integer returnedNum = orderCommonMapper.countReturnedNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
-                returnedNum = null != returnedNum ? returnedNum : 0;
-                orderProduct.setReturnedNum(returnedNum);
-                //已取消发货数量
-                Integer actualCancelNum = orderCommonMapper.countActualCancelNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
-                actualCancelNum = null != actualCancelNum ? actualCancelNum : 0;
-                orderProduct.setActualCancelNum(actualCancelNum);
-                //判断商品价格是否含税
-                boolean taxFlag = (Integer.valueOf(1).equals(orderProduct.getIncludedTax()) || (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && (Integer.valueOf(1).equals(orderProduct.getInvoiceType()) || Integer.valueOf(2).equals(orderProduct.getInvoiceType()))));
-                if (taxFlag) {
-                    orderProduct.setIncludedTaxFlag(2);
-                } else if (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && Integer.valueOf(3).equals(orderProduct.getInvoiceType())) {
-                    orderProduct.setIncludedTaxFlag(1);
-                } else {
-                    orderProduct.setIncludedTaxFlag(3);
-                }
-            });
-            // 支付凭证
-            List<VoucherPo> voucher = orderClubMapper.getVoucher(shopOrder.getShopOrderId());
-            // 支付凭证图片
-            if (null != voucher) {
-                List<Integer> ids = voucher.stream().map(VoucherPo::getId).collect(Collectors.toList());
-                List<VoucherImageDto> voucherImage = orderClubMapper.getVoucherImage(ids);
-                voucher.forEach(v -> {
-                    List<VoucherImageDto> imageList = voucherImage.stream().filter(m -> m.getVoucherId().equals(v.getId())).collect(Collectors.toList());
-                    v.setImgs(imageList);
-                });
+        List<OrderProductVo> orderProductList = shopOrder.getOrderProductList();
+        orderProductList.forEach(orderProduct -> {
+            // 是否充值商品
+            boolean recharge = productService.isRechargeProduct(orderProduct.getProductId());
+            if (recharge) {
+                shopOrder.setRechargeGoods(true);
+            }
+            //是否能退货
+            if (null != orderProduct.getReturnGoodsStutas() && 2 == orderProduct.getReturnGoodsStutas()) {
+                String helpContent = orderCommonMapper.getHelpContent(1040);
+                orderProduct.setHelpContent(helpContent);
             }
-            shopOrder.setVoucher(voucher);
+            // 总税费
+            expensesOfTaxation.set(MathUtil.add(expensesOfTaxation.get(), orderProduct.getTotalAddedValueTax()).doubleValue());
+            //已发货数量
+            orderProduct.setShipmentsNum(orderProduct.getNum() + orderProduct.getPresentNum() - orderProduct.getNotOutStore());
+            //已退货数量
+            Integer returnedNum = orderCommonMapper.countReturnedNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
+            returnedNum = null != returnedNum ? returnedNum : 0;
+            orderProduct.setReturnedNum(returnedNum);
+            //已取消发货数量
+            Integer actualCancelNum = orderCommonMapper.countActualCancelNum(orderProduct.getShopOrderId(), orderProduct.getProductId());
+            actualCancelNum = null != actualCancelNum ? actualCancelNum : 0;
+            orderProduct.setActualCancelNum(actualCancelNum);
+            //判断商品价格是否含税
+            boolean taxFlag = (Integer.valueOf(1).equals(orderProduct.getIncludedTax()) || (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && (Integer.valueOf(1).equals(orderProduct.getInvoiceType()) || Integer.valueOf(2).equals(orderProduct.getInvoiceType()))));
+            if (taxFlag) {
+                orderProduct.setIncludedTaxFlag(2);
+            } else if (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && Integer.valueOf(3).equals(orderProduct.getInvoiceType())) {
+                orderProduct.setIncludedTaxFlag(1);
+            } else {
+                orderProduct.setIncludedTaxFlag(3);
+            }
+        });
+        // 支付凭证
+        List<VoucherPo> voucher = orderClubMapper.getVoucher(shopOrder.getShopOrderId());
+        // 支付凭证图片
+        if (null != voucher) {
+            List<Integer> ids = voucher.stream().map(VoucherPo::getId).collect(Collectors.toList());
+            List<VoucherImageDto> voucherImage = orderClubMapper.getVoucherImage(ids);
+            voucher.forEach(v -> {
+                List<VoucherImageDto> imageList = voucherImage.stream().filter(m -> m.getVoucherId().equals(v.getId())).collect(Collectors.toList());
+                v.setImgs(imageList);
+            });
+        }
+        shopOrder.setVoucher(voucher);
 //        });
         shopOrder.setExpensesOfTaxation(expensesOfTaxation.get());
         // 发票信息
@@ -377,7 +377,7 @@ public class OrderClubServiceImpl implements OrderClubService {
     @Override
     public ResponseJson voucher(VoucherDto voucherDto) {
         if (null == voucherDto.getShopOrderId()) {
-            return ResponseJson.error(-1,"订单Id不能为空",null);
+            return ResponseJson.error(-1, "订单Id不能为空", null);
         }
         // 上传支付凭证
         orderClubMapper.insertVoucher(voucherDto);
@@ -398,7 +398,7 @@ public class OrderClubServiceImpl implements OrderClubService {
                 orderClubMapper.insertVoucherImage(voucherImageDto);
             }
         } else {
-            return ResponseJson.error(-1,"请上传支付凭证",null);
+            return ResponseJson.error(-1, "请上传支付凭证", null);
         }
 
         return ResponseJson.success();
@@ -471,7 +471,7 @@ public class OrderClubServiceImpl implements OrderClubService {
                 secondFlag = true;
             }
             // 更新复购价格库
-             // productService.savePurchasePrice(order, product, secondFlag, note);
+            // productService.savePurchasePrice(order, product, secondFlag, note);
             // 二手商品确认商品如果是二手仪器则需要把该二手商品置为已售
             if (secondFlag) {
                 orderClubMapper.updateSecondStatus(product.getProductId(), 1);
@@ -581,7 +581,7 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 机构取消订单
      *
-     * @param shopOrderId      订单Id
+     * @param shopOrderId  订单Id
      * @param userIdentity 用户身份 1协销 其他用户
      * @param remark       备注(订单取消原因)
      */
@@ -615,15 +615,6 @@ public class OrderClubServiceImpl implements OrderClubService {
             log.info(note + ">>>>>>>>>>>>取消余额收支记录(update[cm_user_balance_record])shopOrderId:" + shopOrderId);
         }
         shopOrder.setStatus(4);
-        if (StringUtils.isBlank(remark)) {
-            if (userIdentity == 1) {
-                remark = "协销帮用户取消订单";
-            } else {
-                remark = "用户主动取消订单";
-            }
-        }
-        /*order.setCloseReason(remark);
-        order.setCloseTime(curDateStr);*/
         // 取消 订单
         orderClubMapper.cancelMainShopOrder(shopOrder);
         //二手订单取消订单, 二手商品标记未售
@@ -724,8 +715,8 @@ public class OrderClubServiceImpl implements OrderClubService {
             }
         }
         //优惠券退回
-        /*if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
-            CouponOrderRecordPo couponRecord = orderClubMapper.getOrderCouponRecord(order.getOrderId());
+        if (MathUtil.compare(shopOrder.getCouponAmount(), 0) > 0) {
+            CouponOrderRecordPo couponRecord = orderClubMapper.getOrderCouponRecord(shopOrder.getOrderId(), shopOrder.getCouponClubId());
             if (couponRecord != null) {
                 orderClubMapper.deleteCouponClubById(couponRecord.getClubCouponId());
                 CouponClubPo couponClub = orderClubMapper.getCouponClubById(couponRecord.getClubCouponId());
@@ -738,7 +729,7 @@ public class OrderClubServiceImpl implements OrderClubService {
                 couponClub.setDelFlag("0");
                 orderClubMapper.insertCouponClub(couponClub);
             }
-        }*/
+        }
         return ResponseJson.success("取消订单成功!", null);
     }
 
@@ -956,7 +947,7 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 分享订单,用户身份
      *
-     * @param shopOrderId           订单Id
+     * @param shopOrderId       订单Id
      * @param userId            用户Id
      * @param serviceProviderId 协销Id
      * @param code              微信code
@@ -1024,7 +1015,7 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 分享订单,校验分享码
      *
-     * @param shopOrderId       订单Id
+     * @param shopOrderId   订单Id
      * @param shareCode     分享码
      * @param code          微信code
      * @param encryptedData 微信加密数据
@@ -1047,7 +1038,7 @@ public class OrderClubServiceImpl implements OrderClubService {
         } else {
             loginData = remoteCallService.appletsOrganizeAuthorization(code, encryptedData, iv, headers, userId);
         }
-        log.info("loginData====="+loginData);
+        log.info("loginData=====" + loginData);
         if (StringUtils.isEmpty(loginData)) {
             return ResponseJson.error("微信授权登录异常!", null);
         }

+ 3 - 0
src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java

@@ -1449,6 +1449,9 @@ public class SubmitServiceImpl implements SubmitService {
                         s.setNeedPayAmount(s.getNeedPayAmount() - finalCoupon.getCouponAmount());
                         s.setTotalAmount(s.getTotalAmount() - finalCoupon.getCouponAmount());
                         s.setRealPay(realPay - finalCoupon.getCouponAmount());
+                        log.info("s.setShopProductAmount-------------------" + s.getShopProductAmount());
+                        log.info("s.setShouldPayShopAmount-------------------" + s.getShouldPayShopAmount());
+                        log.info("finalCoupon.getCouponAmount()-------------------" + finalCoupon.getCouponAmount());
                         s.setShopProductAmount(s.getShopProductAmount() - finalCoupon.getCouponAmount());
                         s.setShouldPayShopAmount(s.getShouldPayShopAmount() - finalCoupon.getCouponAmount());
                         submitMapper.updateShopOrderCoupon(s);

+ 2 - 0
src/main/resources/mapper/OrderClubMapper.xml

@@ -295,6 +295,7 @@
             ifnull(cso.receiptStatus, 1) as receiptStatus,
             ifnull(cso.orderStatusFlag, 1) as orderStatusFlag,
             ifnull(cso.refundStatus, 1) as refundStatus,
+            cso.couponClubId,
             cso.couponAmount,
             cso.shopStatus as status
         FROM cm_shop_order cso
@@ -972,6 +973,7 @@
         SELECT id, orderId, clubCouponId, couponType, couponAmount, touchPrice, createDate
         FROM cm_coupon_order_record
         WHERE orderId = #{orderId}
+         and clubCouponId = #{couponClubId}
     </select>
     <select id="getCouponClubById" resultType="com.caimei365.order.model.po.CouponClubPo">
         SELECT userId, couponId