Browse Source

促销/优惠券bugfix

zhijiezhao 1 year ago
parent
commit
10ac7e1179

+ 5 - 0
src/main/java/com/caimei365/order/mapper/OrderRefundMapper.java

@@ -1,5 +1,6 @@
 package com.caimei365.order.mapper;
 
+import com.caimei365.order.model.po.CouponRecordPo;
 import com.caimei365.order.model.po.OrderReceiptRelationPo;
 import com.caimei365.order.model.po.UserBeansHistoryPo;
 import com.caimei365.order.model.vo.CmRefundRecord;
@@ -60,4 +61,8 @@ public interface OrderRefundMapper {
     OrderReceiptRelationPo findOrderRelationByNo(String orderRequestNo);
 
     Integer findSendOut(Integer shopOrderId);
+
+    CouponRecordPo getCouponRecord(Integer couponClubId);
+
+    void insertCouponClub(CouponRecordPo couponClub);
 }

+ 4 - 0
src/main/java/com/caimei365/order/model/po/CouponRecordPo.java

@@ -33,4 +33,8 @@ public class CouponRecordPo implements Serializable {
      *  cm_coupon_redemption_code 兑换时间
      */
     private Date redemptionTime;
+    /**
+     * 领取渠道:1小程序 2网站 3订单退回 4后台
+     */
+    private Integer source;
 }

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

@@ -14,6 +14,8 @@ import java.util.List;
 @Data
 public class OrderVo implements Serializable {
     private static final long serialVersionUID = 1L;
+
+    private Integer couponClubId;
     /**
      * orderSeen:订单对机构可见度,1可见,2不可见
      */

+ 8 - 26
src/main/java/com/caimei365/order/service/impl/OrderRefundServiceImpl.java

@@ -147,24 +147,13 @@ public class OrderRefundServiceImpl implements OrderRefundService {
                 userBeans = userBeans - num;
                 user.setUserBeans(userBeans);
             }
-//            //订单低于1000扣500豆子退回
-//            if (order.getPayTotalFee() != null && order.getPayTotalFee() < 1000) {
-//                // 查本单是否扣豆子,有且订单交易全退就返回
-//                UserBeansHistoryPo bean = refundMapper.findLowOrder(order.getOrderId());
-//                if (bean != null && 0 == count) {
-//                    //有扣豆子记录
-//                    UserBeansHistoryPo beanHistory = new UserBeansHistoryPo();
-//                    beanHistory.setUserId(order.getUserId());
-//                    beanHistory.setOrderId(order.getOrderId());
-//                    beanHistory.setBeansType(16);
-//                    beanHistory.setType(1);
-//                    beanHistory.setNum(500);
-//                    beanHistory.setPushStatus(0);
-//                    beanHistory.setAddTime(new Date());
-//                    baseMapper.insertBeansHistory(beanHistory);
-//                    user.setUserBeans(user.getUserBeans() + 500);
-//                }
-//            }
+        }
+        //优惠券退回
+        if (order.getCouponAmount() > 0 && null != order.getCouponClubId()) {
+            CouponRecordPo couponClub = refundMapper.getCouponRecord(order.getCouponClubId());
+            couponClub.setSource(3);
+            couponClub.setStatus(1);
+            refundMapper.insertCouponClub(couponClub);
         }
         // 修改user信息
         refundMapper.updateUser(user);
@@ -253,14 +242,7 @@ public class OrderRefundServiceImpl implements OrderRefundService {
         accountPayOrder.setP6_ext(ext);
         // 生成签名
         StringBuilder builder = new StringBuilder();
-        builder.append(Constant.SPLIT)
-                .append(accountPayOrder.getP1_bizType()).append(Constant.SPLIT)
-                .append(accountPayOrder.getP2_signType()).append(Constant.SPLIT)
-                .append(accountPayOrder.getP3_timestamp()).append(Constant.SPLIT)
-                .append(accountPayOrder.getP4_orderId()).append(Constant.SPLIT)
-                .append(accountPayOrder.getP5_customerNumber()).append(Constant.SPLIT)
-                .append(accountPayOrder.getP6_ext()).append(Constant.SPLIT)
-                .append(Constant.XUNI);
+        builder.append(Constant.SPLIT).append(accountPayOrder.getP1_bizType()).append(Constant.SPLIT).append(accountPayOrder.getP2_signType()).append(Constant.SPLIT).append(accountPayOrder.getP3_timestamp()).append(Constant.SPLIT).append(accountPayOrder.getP4_orderId()).append(Constant.SPLIT).append(accountPayOrder.getP5_customerNumber()).append(Constant.SPLIT).append(accountPayOrder.getP6_ext()).append(Constant.SPLIT).append(Constant.XUNI);
         String sign = Disguiser.disguiseMD5(builder.toString().trim());
         Map<String, String> bean = OnlinePostFormUtil.splitConvertBean(accountPayOrder);
         log.info("--------------------> 网银退款-手续费转账 参数:  " + bean);

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

@@ -1449,9 +1449,6 @@ 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);

+ 46 - 28
src/main/resources/mapper/OrderRefundMapper.xml

@@ -61,29 +61,31 @@
 
     <insert id="insertReturnProduct">
         insert into cm_returned_purchase_product(returnedID, productID, orderProductID, shopOrderID, shopID,
-                                                 applicationReturnedNum, applicationCancelNum, actualReturnedNum,
-                                                 actualCancelNum)
-            (SELECT #{id},
-                    productId,
-                    orderProductId,
-                    shopOrderId,
-                    shopId,
-                    <choose>
-                        <when test="sendCount>0">
-                            (select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId}),
-                            num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId}),
-                            (select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId}),
-                            num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId})
-                        </when>
-                        <otherwise>
-                            0,
-                            num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId}),
-                            0,
-                            num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId})
-                        </otherwise>
-                    </choose>
-             FROM cm_order_product
-             WHERE shopOrderId = #{shopOrderId})
+        applicationReturnedNum, applicationCancelNum, actualReturnedNum,
+        actualCancelNum)
+        (SELECT #{id},
+        productId,
+        orderProductId,
+        shopOrderId,
+        shopId,
+        <choose>
+            <when test="sendCount>0">
+                (select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId}),
+                num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId =
+                #{shopOrderId}),
+                (select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId}),
+                num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId})
+            </when>
+            <otherwise>
+                0,
+                num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId =
+                #{shopOrderId}),
+                0,
+                num + presentnum-(select ifnull(sum(num),0) from cm_logistics_record where shopOrderId = #{shopOrderId})
+            </otherwise>
+        </choose>
+        FROM cm_order_product
+        WHERE shopOrderId = #{shopOrderId})
     </insert>
 
     <insert id="insertTransfer">
@@ -91,6 +93,11 @@
         values (1, now(), #{money}, #{orderRequestNo}, #{shopOrderId})
     </insert>
 
+    <insert id="insertCouponClub">
+        insert into cm_coupon_club(userId, couponId, source, status, createDate, delFlag)
+        values (#{userId}, #{couponId}, #{source}, #{status}, now(), 0)
+    </insert>
+
     <update id="updateSecondProduct">
         UPDATE cm_second_hand_detail
         SET sold = 0
@@ -100,7 +107,7 @@
     <update id="updateShopOrder">
         update cm_shop_order
         set refundStatus = 3,
-            shopStatus = 5
+            shopStatus   = 5
         where shopOrderID = #{shopOrderId}
     </update>
 
@@ -153,7 +160,7 @@
     </select>
 
     <select id="findOrder" resultType="com.caimei365.order.model.vo.OrderVo">
-        select secondHandOrderFlag, status, co.orderId, co.userId, co.payTotalFee
+        select secondHandOrderFlag, status, co.orderId, co.userId, co.payTotalFee, cso.couponAmount, cso.couponClubId
         from cm_order co
                  left join cm_shop_order cso on co.orderId = cso.orderId
         where cso.shopOrderID = #{shopOrderId}
@@ -248,14 +255,25 @@
     </select>
 
     <select id="findOrderRelationByNo" resultType="com.caimei365.order.model.po.OrderReceiptRelationPo">
-        select cso.splitCode,cror.associateAmount,cror.orderRequestNo,cror.shopOrderId
+        select cso.splitCode, cror.associateAmount, cror.orderRequestNo, cror.shopOrderId
         from cm_receipt_order_relation cror
-        left join cm_shop_order cso on cror.shopOrderId = cso.shopOrderId
+                 left join cm_shop_order cso on cror.shopOrderId = cso.shopOrderId
         where cror.orderRequestNo = #{orderRequestNo}
     </select>
 
     <select id="findSendOut" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM cm_logistics_batch WHERE shoporderid=#{shopOrderId}
+        SELECT COUNT(*)
+        FROM cm_logistics_batch
+        WHERE shoporderid = #{shopOrderId}
+    </select>
+
+    <select id="getCouponRecord" resultType="com.caimei365.order.model.po.CouponRecordPo">
+        select userId,
+               couponId,
+               source,
+               status
+        from cm_coupon_club
+        where id = #{couponClubId}
     </select>
 
 </mapper>