zhijiezhao 3 years ago
parent
commit
8f5b970168

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

@@ -187,7 +187,7 @@ public interface OrderClubMapper {
     /**
      * 根据clubCouponId获取优惠券
      */
-    CouponVo getClubCouponById(Integer clubCouponId);
+    CouponVo getClubCouponById(Integer clubCouponId,Integer userId);
     /**
      * 修改优惠券使用情况
      */
@@ -212,4 +212,6 @@ public interface OrderClubMapper {
      * 机构最新订单Id
      */
     Integer getLatestOrderId(Integer userId);
+
+    Integer findUserId(Integer orderId);
 }

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

@@ -326,7 +326,7 @@ public class OrderClubServiceImpl implements OrderClubService {
         if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
             // 确认订单时才真正使用优惠券
             CouponOrderRecordPo couponOrderRecord = orderClubMapper.getOrderCouponRecord(orderId);
-            CouponVo coupon = orderClubMapper.getClubCouponById(couponOrderRecord.getClubCouponId());
+            CouponVo coupon = orderClubMapper.getClubCouponById(couponOrderRecord.getClubCouponId(),orderClubMapper.findUserId(orderId));
             if (coupon == null) {
                 return ResponseJson.error("订单内优惠券已被使用", null);
             } else {

+ 2 - 2
src/main/java/com/caimei365/order/service/impl/PayNonOrderServiceImpl.java

@@ -979,7 +979,7 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
         discernReceipt.setDelFlag(0);
         // 保存 收款记录
         baseMapper.insertDiscernReceipt(discernReceipt);
-        log.info("【购买优惠券异步回调】>>>>>>>>>>>>>>保存识别款项(insert[cm_discern_receipt])id:" + discernReceipt.getId() + ",vipRecordId:" + recordId);
+        log.info("【购买优惠券异步回调】>>>>>>>>>>>>>>保存识别款项(insert[cm_discern_receipt])id:" + discernReceipt.getId() + ",couponRecordId:" + recordId);
         // 收款项和订单关系表
         OrderReceiptRelationPo relation = new OrderReceiptRelationPo();
         relation.setReceiptId(discernReceipt.getId());
@@ -992,7 +992,7 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
         relation.setDelFlag(0);
         // 保存 收款项和订单关系
         baseMapper.insertOrderReceiptRelation(relation);
-        log.info("【购买优惠券异步回调】>>>>>>>>>>>收款项和购买历史关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",vipRecordId:" + recordId);
+        log.info("【购买优惠券异步回调】>>>>>>>>>>>收款项和购买历史关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",couponRecordId:" + recordId);
         //修改分账付款状态
         payOrderMapper.updateSplitAccountByPay(mbOrderId);
         return "SUCCESS";

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

@@ -909,7 +909,7 @@ public class SubmitServiceImpl implements SubmitService {
         Double couponAmount = 0d;
         CouponVo coupon = null;
         if (null != orderParamBo.getClubCouponId() && orderParamBo.getClubCouponId() > 0) {
-            coupon = orderClubMapper.getClubCouponById(orderParamBo.getClubCouponId());
+            coupon = orderClubMapper.getClubCouponById(orderParamBo.getClubCouponId(),orderParamBo.getUserId());
             if (null == coupon) {
                 // 设置手动回滚事务
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

+ 2 - 2
src/main/resources/mapper/BaseMapper.xml

@@ -264,9 +264,9 @@
     </insert>
     <insert id="insertOrderReceiptRelation" keyColumn="id" keyProperty="id"
             parameterType="com.caimei365.order.model.po.OrderReceiptRelationPo" useGeneratedKeys="true">
-        INSERT INTO cm_receipt_order_relation (relationType, receiptId, associateAmount, orderId, vipRecordId, delFlag,
+        INSERT INTO cm_receipt_order_relation (relationType, receiptId, associateAmount, orderId, couponRecordId, vipRecordId, delFlag,
                                                mbOrderId, orderRequestNo, splitStatus, productId)
-        VALUES (#{relationType}, #{receiptId}, #{associateAmount}, #{orderId}, #{vipRecordId}, #{delFlag}, #{mbOrderId},
+        VALUES (#{relationType}, #{receiptId}, #{associateAmount}, #{orderId},#{couponRecordId}, #{vipRecordId}, #{delFlag}, #{mbOrderId},
                 #{orderRequestNo}, #{splitStatus}, #{productId})
     </insert>
     <insert id="insertBeansHistory" parameterType="com.caimei365.order.model.po.UserBeansHistoryPo">

+ 9 - 3
src/main/resources/mapper/OrderClubMapper.xml

@@ -507,12 +507,15 @@
         cc.categoryType
         FROM cm_coupon_club a
         LEFT JOIN cm_coupon cc ON a.couponId = cc.id
-        WHERE cc.delFlag = 0
+        WHERE if(cc.moneyCouponFlag=2,cc.delFlag = 0,cc.id>0)
         AND a.delFlag = 0
         AND a.id = #{clubCouponId}
         AND a.status = 1
-        AND NOW() BETWEEN cc.startDate
-        AND cc.endDate
+        AND NOW() <![CDATA[ > ]]> startDate
+        AND NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,
+        date_add
+         (if((SELECT registerTime FROM user WHERE userID = #{userId}) <![CDATA[ > ]]> startDate,(SELECT registerTime FROM user WHERE userID = #{userId}),startDate),
+            interval receivePeriod day))
         AND cc.status != 2
     </select>
     <select id="getOrderCouponRecord" resultType="com.caimei365.order.model.po.CouponOrderRecordPo">
@@ -530,4 +533,7 @@
         WHERE userId = #{userId}
         ORDER BY orderID DESC limit 1
     </select>
+    <select id="findUserId" resultType="java.lang.Integer">
+        select userId from cm_order where orderID = #{orderId}
+    </select>
 </mapper>