ソースを参照

美博会优惠券

zhijiezhao 2 年 前
コミット
53a3172d75

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

@@ -1,5 +1,6 @@
 package com.caimei365.order.mapper;
 
+import com.caimei365.order.model.bo.OrderParamBo;
 import com.caimei365.order.model.po.*;
 import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
@@ -338,4 +339,10 @@ public interface OrderClubMapper {
     Integer getVipHistoryCount(Integer userId);
 
     Integer clubIdCule(Integer userId);
+
+    List<CouponRecordPo> findCouponRemain(Integer couponId);
+
+    void updateCodeCoupon(CouponRecordPo couponRecordPo);
+
+    OrderParamBo findUserName(Integer userId);
 }

+ 17 - 1
src/main/java/com/caimei365/order/model/po/CouponRecordPo.java

@@ -3,6 +3,7 @@ package com.caimei365.order.model.po;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 @Data
 public class CouponRecordPo implements Serializable {
@@ -12,5 +13,20 @@ public class CouponRecordPo implements Serializable {
     private Integer couponId;
     private Integer payStatus;
     private Integer userId;
-    private Integer orderId;//商品兑换优惠券订单id
+    /**
+     *  商品兑换优惠券订单id
+     */
+    private Integer orderId;
+    /**
+     *  cm_coupon_redemption_code 关联的cm_coupon_club的Id
+     */
+    private Integer clubCouponId;
+    /**
+     *  cm_coupon_redemption_code 兑换状态:1未兑换 2已兑换
+     */
+    private Integer status;
+    /**
+     *  cm_coupon_redemption_code 兑换时间
+     */
+    private Date redemptionTime;
 }

+ 56 - 18
src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

@@ -5,11 +5,13 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei365.order.components.OrderCommonService;
 import com.caimei365.order.components.ProductService;
 import com.caimei365.order.components.WeChatService;
+import com.caimei365.order.feign.ToolsFeign;
 import com.caimei365.order.mapper.BaseMapper;
 import com.caimei365.order.mapper.OrderClubMapper;
 import com.caimei365.order.mapper.OrderCommonMapper;
 import com.caimei365.order.mapper.PayOrderMapper;
 import com.caimei365.order.model.ResponseJson;
+import com.caimei365.order.model.bo.OrderParamBo;
 import com.caimei365.order.model.bo.PayParamBo;
 import com.caimei365.order.model.bo.VipRecordBo;
 import com.caimei365.order.model.dto.PayDto;
@@ -72,6 +74,8 @@ public class PayOrderServiceImpl implements PayOrderService {
     private OrderClubMapper orderClubMapper;
     @Resource
     private RemoteCallService remoteCallService;
+    @Resource
+    private ToolsFeign toolsFeign;
     @Value("${pay.redirect-link}")
     private String redirectLink;
     @Value("${pay.link-page}")
@@ -252,7 +256,7 @@ public class PayOrderServiceImpl implements PayOrderService {
                 }
 
                 //推送信息中心-交易物流
-                MessageCenter messageCenter=new MessageCenter();
+                MessageCenter messageCenter = new MessageCenter();
                 messageCenter.setShopID(null);
                 messageCenter.setClubID(order.getClubId());
                 messageCenter.setUserType(1);
@@ -961,7 +965,7 @@ public class PayOrderServiceImpl implements PayOrderService {
                 }
 
                 //推送信息中心-交易物流
-                MessageCenter messageCenter=new MessageCenter();
+                MessageCenter messageCenter = new MessageCenter();
                 messageCenter.setShopID(null);
                 messageCenter.setClubID(order.getClubId());
                 messageCenter.setUserType(1);
@@ -1613,6 +1617,7 @@ public class PayOrderServiceImpl implements PayOrderService {
 
     @Override
     public void couponCheck() {
+        //优惠券 76,75  兑换码优惠券
         log.info("------------查询是否有优惠券商品下单------------------------>");
         List<CouponCheckVo> checks = payOrderMapper.findCouponOrder();
         log.info("单号列表------------------------>" + checks);
@@ -1628,22 +1633,55 @@ public class PayOrderServiceImpl implements PayOrderService {
 
 
     private void insertCoupon(CouponCheckVo check) {
-        Integer couponId = 7174 == check.getProductId() ? 44 : 49;
-        CouponRecordPo couponRecordPo = new CouponRecordPo();
-        couponRecordPo.setOrderId(check.getOrderId());
-        couponRecordPo.setUserId(check.getUserId());
-        couponRecordPo.setCouponId(couponId);
-        //保存已兑换orderid
-        orderClubMapper.insertCouponRecord(couponRecordPo);
-        CouponClubPo couponClubPo = new CouponClubPo();
-        couponClubPo.setSource(5);
-        couponClubPo.setUserId(check.getUserId());
-        couponClubPo.setCouponId(couponId);
-        couponClubPo.setStatus("1");
-        couponClubPo.setDelFlag("0");
-        couponClubPo.setCreateDate(new Date());
-        orderClubMapper.insertCouponClub(couponClubPo);
-        log.info("兑换优惠券订单-------------------->" + couponRecordPo);
+        Integer couponId = 7620 == check.getProductId() ? 76 : 75;
+        //查询兑换券是否剩余,没有就什么都不干
+        List<CouponRecordPo> couponRecordPos = orderClubMapper.findCouponRemain(couponId);
+        if (null != couponRecordPos && couponRecordPos.size() > 0) {
+            CouponRecordPo couponRecordPo = new CouponRecordPo();
+            couponRecordPo.setOrderId(check.getOrderId());
+            couponRecordPo.setUserId(check.getUserId());
+            couponRecordPo.setCouponId(couponId);
+            //保存已兑换orderid  购买兑换记录
+            orderClubMapper.insertCouponRecord(couponRecordPo);
+            CouponClubPo couponClubPo = new CouponClubPo();
+            couponClubPo.setSource(5);
+            couponClubPo.setUserId(check.getUserId());
+            couponClubPo.setCouponId(couponId);
+            couponClubPo.setStatus("1");
+            couponClubPo.setDelFlag("0");
+            couponClubPo.setCreateDate(new Date());
+            //cm_coupon_club
+            orderClubMapper.insertCouponClub(couponClubPo);
+            //修改cm_coupon_redemption_code 本次美博会是兑换券
+            couponRecordPos.get(0).setRedemptionTime(new Date());
+            couponRecordPos.get(0).setClubCouponId(couponClubPo.getId());
+            couponRecordPos.get(0).setStatus(2);
+            orderClubMapper.updateCodeCoupon(couponRecordPos.get(0));
+            log.info("兑换优惠券订单-------------------->" + couponRecordPo);
+            if (76 == couponId) {
+                OrderParamBo user = orderClubMapper.findUserName(check.getUserId());
+                String userName = user.getUserName();
+                String bindMobile = user.getBindMobile();
+                //B、【采美365】尊敬的会员XXX,您已成功购买”采美云上美博会“线下体验会门票1张,请尽快与您的专属客户经理预约体验时间,如已预约请忽略,体验预约电话:0755-22907771,退订回T
+                String content = "尊敬的会员" + userName + ",您已成功购买”采美云上美博会“线下体验会门票1张,请尽快与您的专属客户经理预约体验时间,如已预约请忽略,体验预约电话:0755-22907771,退订回T";
+                remoteCallService.getSendSms(23, bindMobile, content);
+            }
+            if (75 == couponId) {
+                //A、【采美365】尊敬的会员XXX,您的房间预订成功,广州香格里拉大酒店3天2晚酒店套餐,豪华江景房2晚(含双早),酒店地址:广州市海珠区会展东路1号,凭此短信到酒店前台办理入住登记,入住时间:9月4日-6日,请按时入住酒店,如有问题请拨打客服电话:0755-22907771,退订回T
+                OrderParamBo user = orderClubMapper.findUserName(check.getUserId());
+                String userName = user.getUserName();
+                String bindMobile = user.getBindMobile();
+                String content = "尊敬的会员" + userName + ",您的房间预订成功,广州香格里拉大酒店3天2晚酒店套餐,豪华江景房2晚(含双早),酒店地址:广州市海珠区会展东路1号,凭此短信到酒店前台办理入住登记,入住时间:9月4日-6日,请按时入住酒店,如有问题请拨打客服电话:0755-22907771,退订回T";
+                remoteCallService.getSendSms(23, bindMobile, content);
+                try {
+                    Thread.sleep(10000);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                String contentB = "尊敬的会员" + userName + ",您已成功购买”采美云上美博会“线下体验会门票1张,请尽快与您的专属客户经理预约体验时间,如已预约请忽略,体验预约电话:0755-22907771,退订回T";
+                remoteCallService.getSendSms(23, bindMobile, contentB);
+            }
+        }
     }
 //    /**
 //     * 手动临时分账异步通知回调

+ 426 - 343
src/main/resources/mapper/OrderClubMapper.xml

@@ -2,15 +2,19 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.order.mapper.OrderClubMapper">
     <update id="updateSecondStatus">
-        UPDATE cm_second_hand_detail SET sold = #{sold}
-        WHERE productID = #{productId} AND secondHandType=1
+        UPDATE cm_second_hand_detail
+        SET sold = #{sold}
+        WHERE productID = #{productId}
+          AND secondHandType = 1
     </update>
     <update id="updateUserMoneyByUserId">
-        UPDATE USER SET userMoney = #{userMoney}
+        UPDATE USER
+        SET userMoney = #{userMoney}
         WHERE userID = #{userId}
     </update>
     <update id="updateAbleUserMoneyByUserId">
-        UPDATE USER SET ableUserMoney = #{ableUserMoney}
+        UPDATE USER
+        SET ableUserMoney = #{ableUserMoney}
         WHERE userID = #{userId}
     </update>
     <update id="updateOrderStatus">
@@ -35,20 +39,23 @@
         WHERE orderID = #{orderId}
     </update>
     <update id="cancelBalanceRecord">
-        UPDATE cm_user_balance_record SET
-        remark = #{remark},
-        delFlag = #{delFlag}
-        WHERE userId = #{userId} AND orderId = #{orderId}
+        UPDATE cm_user_balance_record
+        SET remark  = #{remark},
+            delFlag = #{delFlag}
+        WHERE userId = #{userId}
+          AND orderId = #{orderId}
     </update>
     <update id="cancelMainOrder">
-        UPDATE cm_order SET
-        status = #{status},
-        closeReason = #{closeReason},
-        closeTime = #{closeTime}
+        UPDATE cm_order
+        SET status      = #{status},
+            closeReason = #{closeReason},
+            closeTime   = #{closeTime}
         WHERE orderID = #{orderId}
     </update>
     <update id="deleteMainOrder">
-        UPDATE cm_order SET delFlag=1, note=#{note}
+        UPDATE cm_order
+        SET delFlag=1,
+            note=#{note}
         WHERE orderID = #{orderId}
     </update>
     <update id="deleteShopOrder">
@@ -59,7 +66,8 @@
         </foreach>
     </update>
     <update id="deleteOrderReceiptRelation">
-        UPDATE cm_receipt_order_relation SET delFlag=1
+        UPDATE cm_receipt_order_relation
+        SET delFlag=1
         WHERE orderID = #{orderId}
     </update>
     <update id="deleteDiscernReceipt">
@@ -85,27 +93,39 @@
     </update>
     <update id="updateLogisticsBatch">
         UPDATE cm_logistics_batch
-        SET status = 1, updateDate = NOW(), receiptTime = NOW()
+        SET status      = 1,
+            updateDate  = NOW(),
+            receiptTime = NOW()
         WHERE orderID = #{orderId}
     </update>
     <update id="updateOrderShareCode">
         UPDATE cm_mall_order_share_code
-        SET shareCode = #{shareCode}, expiredTime = #{expiredTime}, delFlag = #{delFlag}
+        SET shareCode   = #{shareCode},
+            expiredTime = #{expiredTime},
+            delFlag     = #{delFlag}
         WHERE id = #{id}
     </update>
     <update id="updateCouponClubStatus">
-        UPDATE cm_coupon_club SET
-        status = 2, useDate = NOW(), orderId = #{orderId}
+        UPDATE cm_coupon_club
+        SET status  = 2,
+            useDate = NOW(),
+            orderId = #{orderId}
         WHERE id = #{clubCouponId}
     </update>
     <delete id="deleteOrderSearchHistory">
-        DELETE FROM user_order_history WHERE userId=#{userId}
+        DELETE
+        FROM user_order_history
+        WHERE userId = #{userId}
     </delete>
     <delete id="deleteOrderShareCodeRecord">
-        DELETE FROM cm_mall_share_code_record WHERE orderID = #{orderId}
+        DELETE
+        FROM cm_mall_share_code_record
+        WHERE orderID = #{orderId}
     </delete>
     <update id="deleteCouponClubById">
-        update cm_coupon_club set delFlag = '1' where id = #{clubCouponId}
+        update cm_coupon_club
+        set delFlag = '1'
+        where id = #{clubCouponId}
     </update>
     <insert id="insertOrderShareCode">
         INSERT INTO cm_mall_order_share_code (orderID, shareCode, addTime, expiredTime, delFlag)
@@ -115,132 +135,133 @@
         INSERT INTO cm_mall_share_code_record (openid, orderID, shareCodeId, addTime, delFlag)
         VALUES (#{openId}, #{orderId}, #{shareCodeId}, #{addTime}, #{delFlag})
     </insert>
-    <insert id="insertCouponClub">
+    <insert id="insertCouponClub" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
         INSERT INTO cm_coupon_club(userId, couponId, orderId, returnedId, source, status, createDate, useDate, delFlag)
-        VALUES (#{userId},#{couponId},#{orderId},#{returnedId},#{source},#{status},#{createDate},#{useDate},#{delFlag})
+        VALUES (#{userId}, #{couponId}, #{orderId}, #{returnedId}, #{source}, #{status}, #{createDate}, #{useDate},
+                #{delFlag})
     </insert>
     <insert id="insertCouponRecord">
-        INSERT INTO cm_coupon_buyrecord(couponId,payStatus,userId,orderId,delflag)
-        values (#{couponId},1,#{userId},#{orderId},0)
+        INSERT INTO cm_coupon_buyrecord(couponId, payStatus, userId, orderId, delflag)
+        values (#{couponId}, 1, #{userId}, #{orderId}, 0)
     </insert>
     <select id="countMainOrderByOrderId" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM cm_order WHERE orderID = #{orderId}
+        SELECT COUNT(*)
+        FROM cm_order
+        WHERE orderID = #{orderId}
     </select>
     <select id="getMainOrderByOrderId" resultType="com.caimei365.order.model.po.OrderPo">
-        SELECT
-            ifnull(orderSeen,0) AS orderSeen,
-            orderID AS orderId,
-            shopOrderIds,
-            orderSource,
-            orderNo,
-            userID AS userId,
-            clubID AS clubId,
-            buyUserID AS buyUserId,
-            orderTime AS orderTime,
-            updateDate AS updateDate,
-            delFlag,
-            userBeans,
-            orderType,
-            orderSubmitType,
-            confirmFlag,
-            onlinePayFlag,
-            splitFlag,
-            payFlag,
-            receiptStatus,
-            payStatus,
-            zeroCostFlag,
-            sendOutStatus,
-            refundType,
-            affirmPaymentFlag,
-            productCount,
-            presentCount,
-            promotionalGiftsCount,
-            hasActProduct,
-            promotionFullReduction,
-            svipFullReduction,
-            secondHandOrderFlag,
-            invoiceFlag,
-            freePostFlag AS postageFlag,
-            freight AS postage,
-            productTotalFee,
-            orderTotalFee,
-            payTotalFee,
-            payableAmount,
-            balancePayFee,
-            discountFee,
-            couponAmount,
-            status,
-            confirmTime,
-            payTime,
-            rebateFlag,
-            clauseID AS clauseId,
-            clauseName
+        SELECT ifnull(orderSeen, 0) AS orderSeen,
+               orderID              AS orderId,
+               shopOrderIds,
+               orderSource,
+               orderNo,
+               userID               AS userId,
+               clubID               AS clubId,
+               buyUserID            AS buyUserId,
+               orderTime            AS orderTime,
+               updateDate           AS updateDate,
+               delFlag,
+               userBeans,
+               orderType,
+               orderSubmitType,
+               confirmFlag,
+               onlinePayFlag,
+               splitFlag,
+               payFlag,
+               receiptStatus,
+               payStatus,
+               zeroCostFlag,
+               sendOutStatus,
+               refundType,
+               affirmPaymentFlag,
+               productCount,
+               presentCount,
+               promotionalGiftsCount,
+               hasActProduct,
+               promotionFullReduction,
+               svipFullReduction,
+               secondHandOrderFlag,
+               invoiceFlag,
+               freePostFlag         AS postageFlag,
+               freight              AS postage,
+               productTotalFee,
+               orderTotalFee,
+               payTotalFee,
+               payableAmount,
+               balancePayFee,
+               discountFee,
+               couponAmount,
+               status,
+               confirmTime,
+               payTime,
+               rebateFlag,
+               clauseID             AS clauseId,
+               clauseName
         FROM cm_order
         WHERE orderID = #{orderId}
     </select>
     <select id="getOrderProductList" resultType="com.caimei365.order.model.po.OrderProductPo">
-        SELECT
-            cop.orderID AS orderId,
-            cop.orderNo,
-            cop.shopOrderID AS shopOrderId,
-            cop.shopOrderNo,
-            cop.orderPromotionsId,
-            cop.productId,
-            cop.shopID AS shopId,
-            cop.name,
-            cop.productImage AS image,
-            cop.price,
-            cop.shopName,
-            cop.costPrice,
-            cop.normalPrice,
-            cop.ladderPriceFlag,
-            cop.discountPrice,
-            cop.discount,
-            cop.totalAmount,
-            cop.totalFee,
-            cop.shouldPayFee,
-            cop.productUnit,
-            cop.num,
-            IFNULL(cop.presentNum,0) AS presentNum,
-            cop.discountFee,
-            cop.includedTax,
-            cop.invoiceType,
-            cop.taxRate,
-            cop.addedValueTax,
-            cop.totalAddedValueTax,
-            cop.singleShouldPayTotalTax,
-            cop.shouldPayTotalTax,
-            cop.shopProductAmount,
-            cop.singleShopFee,
-            cop.shopFee,
-            cop.singleOtherFee,
-            cop.otherFee,
-            cop.singleCmFee,
-            cop.cmFee,
-            cop.payStatus,
-            cop.buyAgainFlag,
-            cop.notOutStore,
-            cop.isActProduct AS actProduct,
-            p.productCategory AS productCategory
+        SELECT cop.orderID               AS orderId,
+               cop.orderNo,
+               cop.shopOrderID           AS shopOrderId,
+               cop.shopOrderNo,
+               cop.orderPromotionsId,
+               cop.productId,
+               cop.shopID                AS shopId,
+               cop.name,
+               cop.productImage          AS image,
+               cop.price,
+               cop.shopName,
+               cop.costPrice,
+               cop.normalPrice,
+               cop.ladderPriceFlag,
+               cop.discountPrice,
+               cop.discount,
+               cop.totalAmount,
+               cop.totalFee,
+               cop.shouldPayFee,
+               cop.productUnit,
+               cop.num,
+               IFNULL(cop.presentNum, 0) AS presentNum,
+               cop.discountFee,
+               cop.includedTax,
+               cop.invoiceType,
+               cop.taxRate,
+               cop.addedValueTax,
+               cop.totalAddedValueTax,
+               cop.singleShouldPayTotalTax,
+               cop.shouldPayTotalTax,
+               cop.shopProductAmount,
+               cop.singleShopFee,
+               cop.shopFee,
+               cop.singleOtherFee,
+               cop.otherFee,
+               cop.singleCmFee,
+               cop.cmFee,
+               cop.payStatus,
+               cop.buyAgainFlag,
+               cop.notOutStore,
+               cop.isActProduct          AS actProduct,
+               p.productCategory         AS productCategory
         FROM cm_order_product cop
-        LEFT JOIN product p ON p.productID = cop.productID
+                 LEFT JOIN product p ON p.productID = cop.productID
         WHERE cop.orderID = #{orderID}
     </select>
     <select id="getOrderReceiptIds" resultType="java.lang.String">
         SELECT c.id
         FROM cm_discern_receipt c
-        LEFT JOIN cm_receipt_order_relation r ON r.receiptID = c.id
+                 LEFT JOIN cm_receipt_order_relation r ON r.receiptID = c.id
         WHERE r.orderID = #{orderID}
-        AND r.relationType = '2'
-        AND r.delFlag = '0'
-        AND c.delFlag = '0'
-        AND c.receiptStatus = '3'
-        AND c.payType != '16'
+          AND r.relationType = '2'
+          AND r.delFlag = '0'
+          AND c.delFlag = '0'
+          AND c.receiptStatus = '3'
+          AND c.payType != '16'
     </select>
     <select id="getPayShopIds" resultType="java.lang.String">
         SELECT payShopID FROM cm_pay_shop_record
         WHERE delFlag = 0
-        AND shopOrderID  IN
+        AND shopOrderID IN
         <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
             #{shopOrderId}
         </foreach>
@@ -282,56 +303,56 @@
         <if test="orderState == 5 ">
             AND refundType IN(1,2)
         </if>
-            AND orderSeen = 2
+        AND orderSeen = 2
     </select>
     <select id="getOrderList" resultType="com.caimei365.order.model.vo.OrderVo">
         SELECT
-            ifnull(orderSeen,0) AS orderSeen,
-            orderID AS orderId,
-            shopOrderIds,
-            orderSource,
-            orderNo,
-            userID AS userId,
-            clubID AS clubId,
-            buyUserID AS buyUserId,
-            orderTime,
-            updateDate,
-            delFlag,
-            userBeans,
-            orderType,
-            orderSubmitType,
-            confirmFlag,
-            onlinePayFlag,
-            splitFlag,
-            payFlag,
-            receiptStatus,
-            payStatus,
-            zeroCostFlag,
-            sendOutStatus,
-            refundType,
-            affirmPaymentFlag,
-            productCount,
-            presentCount,
-            promotionalGiftsCount,
-            hasActProduct,
-            promotionFullReduction,
-            secondHandOrderFlag,
-            invoiceFlag,
-            freePostFlag AS postageFlag,
-            freight AS postage,
-            productTotalFee,
-            orderTotalFee,
-            payTotalFee,
-            payableAmount,
-            balancePayFee,
-            discountFee,
-            couponAmount,
-            status,
-            confirmTime,
-            payTime,
-            rebateFlag,
-            clauseID AS clauseId,
-            clauseName
+        ifnull(orderSeen,0) AS orderSeen,
+        orderID AS orderId,
+        shopOrderIds,
+        orderSource,
+        orderNo,
+        userID AS userId,
+        clubID AS clubId,
+        buyUserID AS buyUserId,
+        orderTime,
+        updateDate,
+        delFlag,
+        userBeans,
+        orderType,
+        orderSubmitType,
+        confirmFlag,
+        onlinePayFlag,
+        splitFlag,
+        payFlag,
+        receiptStatus,
+        payStatus,
+        zeroCostFlag,
+        sendOutStatus,
+        refundType,
+        affirmPaymentFlag,
+        productCount,
+        presentCount,
+        promotionalGiftsCount,
+        hasActProduct,
+        promotionFullReduction,
+        secondHandOrderFlag,
+        invoiceFlag,
+        freePostFlag AS postageFlag,
+        freight AS postage,
+        productTotalFee,
+        orderTotalFee,
+        payTotalFee,
+        payableAmount,
+        balancePayFee,
+        discountFee,
+        couponAmount,
+        status,
+        confirmTime,
+        payTime,
+        rebateFlag,
+        clauseID AS clauseId,
+        clauseName
         FROM cm_order
         WHERE delFlag = 0 AND userID = #{userId} and (orderseen IS NULL OR orderseen!=2)
         <if test="orderState == 1 ">
@@ -361,57 +382,57 @@
         ORDER BY orderTime DESC
     </select>
     <select id="getOrderListByKeyword" resultType="com.caimei365.order.model.vo.OrderVo">
-        SELECT DISTINCT
-        ifnull(co.orderSeen,0) AS orderSeen,
-        co.orderID AS orderId,
-        shopOrderIds,
-        co.orderSource,
-        co.orderNo,
-        co.userID AS userId,
-        co.clubID AS clubId,
-        co.buyUserID AS buyUserId,
-        co.orderTime,
-        co.updateDate,
-        co.delFlag,
-        co.userBeans,
-        co.orderType,
-        co.orderSubmitType,
-        co.confirmFlag,
-        co.onlinePayFlag,
-        co.splitFlag,
-        co.payFlag,
-        co.receiptStatus,
-        co.payStatus,
-        co.zeroCostFlag,
-        co.sendOutStatus,
-        co.refundType,
-        co.affirmPaymentFlag,
-        co.productCount,
-        co.presentCount,
-        co.promotionalGiftsCount,
-        co.hasActProduct,
-        co.promotionFullReduction,
-        co.secondHandOrderFlag,
-        co.invoiceFlag,
-        co.freePostFlag AS postageFlag,
-        co.freight AS postage,
-        co.productTotalFee,
-        co.orderTotalFee,
-        co.payTotalFee,
-        co.payableAmount,
-        co.balancePayFee,
-        co.discountFee,
-        co.couponAmount,
-        co.status,
-        co.confirmTime,
-        co.payTime,
-        co.rebateFlag,
-        co.clauseID AS clauseId,
-        co.clauseName
+        SELECT DISTINCT ifnull(co.orderSeen, 0) AS orderSeen,
+                        co.orderID              AS orderId,
+                        shopOrderIds,
+                        co.orderSource,
+                        co.orderNo,
+                        co.userID               AS userId,
+                        co.clubID               AS clubId,
+                        co.buyUserID            AS buyUserId,
+                        co.orderTime,
+                        co.updateDate,
+                        co.delFlag,
+                        co.userBeans,
+                        co.orderType,
+                        co.orderSubmitType,
+                        co.confirmFlag,
+                        co.onlinePayFlag,
+                        co.splitFlag,
+                        co.payFlag,
+                        co.receiptStatus,
+                        co.payStatus,
+                        co.zeroCostFlag,
+                        co.sendOutStatus,
+                        co.refundType,
+                        co.affirmPaymentFlag,
+                        co.productCount,
+                        co.presentCount,
+                        co.promotionalGiftsCount,
+                        co.hasActProduct,
+                        co.promotionFullReduction,
+                        co.secondHandOrderFlag,
+                        co.invoiceFlag,
+                        co.freePostFlag         AS postageFlag,
+                        co.freight              AS postage,
+                        co.productTotalFee,
+                        co.orderTotalFee,
+                        co.payTotalFee,
+                        co.payableAmount,
+                        co.balancePayFee,
+                        co.discountFee,
+                        co.couponAmount,
+                        co.status,
+                        co.confirmTime,
+                        co.payTime,
+                        co.rebateFlag,
+                        co.clauseID             AS clauseId,
+                        co.clauseName
         FROM cm_order co
-        LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
-        WHERE co.delFlag = 0 AND co.userID = #{userId}
-        AND cop.name LIKE CONCAT('%',#{searchWord},'%')
+                 LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
+        WHERE co.delFlag = 0
+          AND co.userID = #{userId}
+          AND cop.name LIKE CONCAT('%', #{searchWord}, '%')
         GROUP BY co.orderID, co.orderTime
         ORDER BY co.orderTime DESC
     </select>
@@ -422,52 +443,51 @@
         ORDER BY id DESC
     </select>
     <select id="getReturnedPurchaseList" resultType="com.caimei365.order.model.vo.ReturnedPurchaseVo">
-        SELECT
-            id,
-            returnedNo,
-            orderID AS orderId,
-            userID AS userId,
-            status,
-            returnedWay,
-            payType,
-            operatingOrderStatus,
-            bankAccountName,
-            bankAccountNo,
-            openBank,
-            bankAccountType,
-            returnedPurchaseFee,
-            refundFee,
-            refundBalanceFee,
-            refundOnlineFee,
-            refundOfflineFee,
-            image1,
-            image2,
-            image3,
-            image4,
-            image5,
-            reviewImage1,
-            reviewImage2,
-            reviewImage3,
-            reviewImage4,
-            reviewImage5,
-            remarks,
-            reviewRemarks,
-            applicationUserID AS applicationUserId,
-            returnTime,
-            reviewUserID AS reviewUserId,
-            confirmReturnTime,
-            delFlag
+        SELECT id,
+               returnedNo,
+               orderID           AS orderId,
+               userID            AS userId,
+               status,
+               returnedWay,
+               payType,
+               operatingOrderStatus,
+               bankAccountName,
+               bankAccountNo,
+               openBank,
+               bankAccountType,
+               returnedPurchaseFee,
+               refundFee,
+               refundBalanceFee,
+               refundOnlineFee,
+               refundOfflineFee,
+               image1,
+               image2,
+               image3,
+               image4,
+               image5,
+               reviewImage1,
+               reviewImage2,
+               reviewImage3,
+               reviewImage4,
+               reviewImage5,
+               remarks,
+               reviewRemarks,
+               applicationUserID AS applicationUserId,
+               returnTime,
+               reviewUserID      AS reviewUserId,
+               confirmReturnTime,
+               delFlag
         FROM cm_returned_purchase
-        WHERE orderID = #{orderId} AND STATUS = '2'
+        WHERE orderID = #{orderId}
+          AND STATUS = '2'
         ORDER BY confirmReturnTime DESC
     </select>
     <select id="getClauseById" resultType="com.caimei365.order.model.vo.ClauseVo">
-        SELECT
-            id,
-            name,
-            content,
-            clauseType,
-            enabledStatus
+        SELECT id,
+               name,
+               content,
+               clauseType,
+               enabledStatus
         FROM bp_clause
         where id = #{clauseId}
     </select>
@@ -475,122 +495,151 @@
         SELECT shopOrderID
         FROM cm_logistics_record
         WHERE orderID = #{orderId}
-        AND logisticsBatchID = #{id}
+          AND logisticsBatchID = #{id}
     </select>
     <select id="getOrderCodeById" resultType="com.caimei365.order.model.vo.OrderShareCodeVo">
-        SELECT
-            id,
-            orderID AS orderId,
-            shareCode,
-            addTime,
-            expiredTime,
-            delFlag
+        SELECT id,
+               orderID AS orderId,
+               shareCode,
+               addTime,
+               expiredTime,
+               delFlag
         FROM cm_mall_order_share_code
-        WHERE orderID = #{orderId} AND delFlag = '0'
+        WHERE orderID = #{orderId}
+          AND delFlag = '0'
         LIMIT 1
     </select>
     <select id="countShareCodeRecord" resultType="java.lang.Integer">
         SELECT COUNT(*)
         FROM cm_mall_share_code_record scr
-        LEFT JOIN cm_mall_order_share_code osc ON scr.shareCodeId = osc.id
-        WHERE scr.openid = #{openId} AND osc.orderID = #{orderId}
-        AND scr.delFlag = '0' AND osc.expiredTime > NOW()
+                 LEFT JOIN cm_mall_order_share_code osc ON scr.shareCodeId = osc.id
+        WHERE scr.openid = #{openId}
+          AND osc.orderID = #{orderId}
+          AND scr.delFlag = '0'
+          AND osc.expiredTime > NOW()
     </select>
     <select id="getOpenidListByPermission" resultType="java.lang.String">
-        SELECT openid FROM `wechat_user` WHERE unionId= #{unionId}
+        SELECT openid
+        FROM `wechat_user`
+        WHERE unionId = #{unionId}
     </select>
 
     <select id="getOpenidunionId" resultType="java.lang.String">
-        SELECT DISTINCT cm.unionId FROM  `cm_mall_operation_user` cm
-        LEFT JOIN `user` u ON u.userID = cm.userID
-        WHERE u.userID=#{userId}
+        SELECT DISTINCT cm.unionId
+        FROM `cm_mall_operation_user` cm
+                 LEFT JOIN `user` u ON u.userID = cm.userID
+        WHERE u.userID = #{userId}
     </select>
 
     <select id="getProductOrder" resultType="java.lang.Integer">
-        SELECT productID FROM `cm_order_product` WHERE orderId=#{orderId}
+        SELECT productID
+        FROM `cm_order_product`
+        WHERE orderId = #{orderId}
     </select>
 
     <select id="getOrderIds" resultType="java.lang.String">
-        SELECT DISTINCT p.name FROM  product p
-         LEFT JOIN cm_order_product cmp ON p.productID = cmp.productID
-         LEFT JOIN `cm_order` cm ON cm.orderNo=cmp.orderNo
-         WHERE cmp.orderId=#{orderId}
+        SELECT DISTINCT p.name
+        FROM product p
+                 LEFT JOIN cm_order_product cmp ON p.productID = cmp.productID
+                 LEFT JOIN `cm_order` cm ON cm.orderNo = cmp.orderNo
+        WHERE cmp.orderId = #{orderId}
     </select>
 
     <select id="getpayTotalFee" resultType="java.lang.Double">
-        SELECT payTotalFee FROM cm_order  WHERE orderId=#{orderId}
+        SELECT payTotalFee
+        FROM cm_order
+        WHERE orderId = #{orderId}
     </select>
 
     <select id="getpayTime" resultType="java.lang.String">
-        SELECT payTime FROM cm_order  WHERE orderId=#{orderId}
+        SELECT payTime
+        FROM cm_order
+        WHERE orderId = #{orderId}
     </select>
 
     <select id="getReceiptStatus" resultType="java.lang.Integer">
-        SELECT receiptStatus FROM cm_order  WHERE orderId=#{orderId}
+        SELECT receiptStatus
+        FROM cm_order
+        WHERE orderId = #{orderId}
     </select>
 
     <select id="getsecondHandOrderFlag" resultType="java.lang.Integer">
-        SELECT secondHandOrderFlag FROM cm_order  WHERE orderId=#{orderId}
+        SELECT secondHandOrderFlag
+        FROM cm_order
+        WHERE orderId = #{orderId}
     </select>
 
     <select id="getrebateFlag" resultType="java.lang.Integer">
-        SELECT rebateFlag FROM cm_order  WHERE orderId=#{orderId}
+        SELECT rebateFlag
+        FROM cm_order
+        WHERE orderId = #{orderId}
     </select>
 
     <select id="getOrderNo" resultType="java.lang.String">
-        SELECT DISTINCT cm.orderNo FROM  product p
-        LEFT JOIN cm_order_product cmp ON p.productID = cmp.productID
-        LEFT JOIN `cm_order` cm ON cm.orderNo=cmp.orderNo
-        WHERE cmp.orderId=#{orderId}
+        SELECT DISTINCT cm.orderNo
+        FROM product p
+                 LEFT JOIN cm_order_product cmp ON p.productID = cmp.productID
+                 LEFT JOIN `cm_order` cm ON cm.orderNo = cmp.orderNo
+        WHERE cmp.orderId = #{orderId}
     </select>
 
     <select id="getOrderMess" resultType="com.caimei365.order.model.vo.OrderVo">
-        SELECT DISTINCT p.`name` AS proName,cm.payFlag AS payFlag,cm.onlinePayFlag AS onlinePayFlag,COUNT(p.name)AS proCount,u.`mobile`AS mobile,cm.orderNo AS orderNo
+        SELECT DISTINCT p.`name`         AS proName,
+                        cm.payFlag       AS payFlag,
+                        cm.onlinePayFlag AS onlinePayFlag,
+                        COUNT(p.name)    AS proCount,
+                        u.`mobile`       AS mobile,
+                        cm.orderNo       AS orderNo
         FROM `cm_order` cm
-         LEFT JOIN cm_order_product cmp ON cm.orderID = cmp.orderID
-         LEFT JOIN  product p ON p.productID=cmp.productID
-         LEFT JOIN `user` u ON u.`userID` = cm.userId
-        WHERE cm.orderId=#{orderId}
+                 LEFT JOIN cm_order_product cmp ON cm.orderID = cmp.orderID
+                 LEFT JOIN product p ON p.productID = cmp.productID
+                 LEFT JOIN `user` u ON u.`userID` = cm.userId
+        WHERE cm.orderId = #{orderId}
     </select>
 
     <select id="getcartNess" resultType="com.caimei365.order.model.vo.OrderVo">
-        SELECT DISTINCT p.`name` AS proName,cm.payFlag AS payFlag,cm.onlinePayFlag AS onlinePayFlag,COUNT(p.name)AS proCount,u.`bindMobile`AS mobile,cm.orderNo AS orderNo
+        SELECT DISTINCT p.`name`         AS proName,
+                        cm.payFlag       AS payFlag,
+                        cm.onlinePayFlag AS onlinePayFlag,
+                        COUNT(p.name)    AS proCount,
+                        u.`bindMobile`   AS mobile,
+                        cm.orderNo       AS orderNo
         FROM `cm_order` cm
-        LEFT JOIN cm_order_product cmp ON cm.orderID = cmp.orderID
-        LEFT JOIN  product p ON p.productID=cmp.productID
-        LEFT JOIN `user` u ON u.`userID` = cm.userId
-        WHERE cm.userID=#{userID}
+                 LEFT JOIN cm_order_product cmp ON cm.orderID = cmp.orderID
+                 LEFT JOIN product p ON p.productID = cmp.productID
+                 LEFT JOIN `user` u ON u.`userID` = cm.userId
+        WHERE cm.userID = #{userID}
     </select>
 
     <select id="userIds" resultType="java.lang.Integer">
-        SELECT  DISTINCT userID FROM cm_cart
-        WHERE
-            YEAR(`addTime`)>YEAR(NOW())-3 AND userID IS NOT NULL
+        SELECT DISTINCT userID
+        FROM cm_cart
+        WHERE YEAR(`addTime`) > YEAR(NOW()) - 3
+          AND userID IS NOT NULL
     </select>
 
     <select id="getClubCouponById" resultType="com.caimei365.order.model.vo.CouponVo">
-        SELECT
-        a.id AS clubCouponId,
-        cc.id AS couponId,
-        cc.couponAmount,
-        cc.touchPrice,
-        cc.startDate,
-        cc.endDate,
-        cc.couponType,
-        cc.userId,
-        cc.shopId,
-        cc.productType,
-        cc.categoryType
+        SELECT a.id  AS clubCouponId,
+               cc.id AS couponId,
+               cc.couponAmount,
+               cc.touchPrice,
+               cc.startDate,
+               cc.endDate,
+               cc.couponType,
+               cc.userId,
+               cc.shopId,
+               cc.productType,
+               cc.categoryType
         FROM cm_coupon_club a
-        LEFT JOIN cm_coupon cc ON a.couponId = cc.id
-        WHERE if(cc.moneyCouponFlag=2,cc.delFlag = 0,cc.id>0)
-        AND a.delFlag = 0
-        AND a.id = #{clubCouponId}
-        AND a.status = 1
-        AND if(cc.vipFlag = 1,
-             NOW() BETWEEN cc.startDate AND cc.endDate,
-             NOW() BETWEEN a.createDate AND date_add(a.createDate, interval cc.usePeriod day))
-        AND cc.status != 2
+                 LEFT JOIN cm_coupon cc ON a.couponId = cc.id
+        WHERE if(cc.moneyCouponFlag = 2, cc.delFlag = 0, cc.id > 0)
+          AND a.delFlag = 0
+          AND a.id = #{clubCouponId}
+          AND a.status = 1
+          AND if(cc.vipFlag = 1,
+                 NOW() BETWEEN cc.startDate AND cc.endDate,
+                 NOW() BETWEEN a.createDate AND date_add(a.createDate, interval cc.usePeriod day))
+          AND cc.status != 2
     </select>
     <select id="getOrderCouponRecord" resultType="com.caimei365.order.model.po.CouponOrderRecordPo">
         SELECT id, orderId, clubCouponId, couponType, couponAmount, touchPrice, createDate
@@ -598,46 +647,80 @@
         WHERE orderId = #{orderId}
     </select>
     <select id="getCouponClubById" resultType="com.caimei365.order.model.po.CouponClubPo">
-        SELECT userId,couponId
+        SELECT userId, couponId
         FROM cm_coupon_club
         WHERE id = #{clubCouponId}
     </select>
     <select id="getLatestOrderId" resultType="java.lang.Integer">
-        SELECT orderID FROM cm_order
+        SELECT orderID
+        FROM cm_order
         WHERE userId = #{userId}
-        ORDER BY orderID DESC limit 1
+        ORDER BY orderID DESC
+        limit 1
     </select>
     <select id="findUserId" resultType="java.lang.Integer">
-        select userId from cm_order where orderID = #{orderId}
+        select userId
+        from cm_order
+        where orderID = #{orderId}
     </select>
     <select id="getUserId" resultType="java.lang.Integer">
-        SELECT userID FROM `cm_order` WHERE orderID=#{orderId}
+        SELECT userID
+        FROM `cm_order`
+        WHERE orderID = #{orderId}
     </select>
 
     <update id="AddUnionId">
-        UPDATE `cm_order` SET
-            unionID=#{unionId}
-        WHERE orderID=#{orderId}
+        UPDATE `cm_order`
+        SET unionID=#{unionId}
+        WHERE orderID = #{orderId}
+    </update>
+    <update id="updateCodeCoupon">
+        update cm_coupon_redemption_code
+        <set>
+            <if test="clubCouponId != null">
+                clubCouponId = #{clubCouponId},
+            </if>
+            <if test="status != null">
+                status = #{status},
+            </if>
+            <if test="redemptionTime != null">
+                redemptionTime = #{redemptionTime}
+            </if>
+        </set>
     </update>
-
     <select id="FromUnionId" resultType="java.lang.String">
-        SELECT unionID FROM `cm_order` WHERE orderID=#{orderId}
+        SELECT unionID
+        FROM `cm_order`
+        WHERE orderID = #{orderId}
     </select>
 
 
     <insert id="addMessageCenter">
-        INSERT INTO message_center (shopID, clubID, userType, messageType, content,time,orderMessageType,orderID,accountType)
-        VALUES (#{shopID}, #{clubID}, #{userType}, #{messageType}, #{content},#{time},#{orderMessageType},#{orderID},#{accountType})
+        INSERT INTO message_center (shopID, clubID, userType, messageType, content, time, orderMessageType, orderID,
+                                    accountType)
+        VALUES (#{shopID}, #{clubID}, #{userType}, #{messageType}, #{content}, #{time}, #{orderMessageType}, #{orderID},
+                #{accountType})
     </insert>
 
     <select id="getVipHistoryCount" resultType="java.lang.Integer">
         SELECT count(1)
         FROM cm_svip_history
-        WHERE  userId = #{userId}
+        WHERE userId = #{userId}
     </select>
 
     <select id="clubIdCule" resultType="java.lang.Integer">
-        SELECT clubID FROM `user` WHERE userId=#{userId}
+        SELECT clubID
+        FROM `user`
+        WHERE userId = #{userId}
+    </select>
+    <select id="findCouponRemain" resultType="com.caimei365.order.model.po.CouponRecordPo">
+        select id, couponId, clubCouponId, redemptionTime, status
+        from cm_coupon_redemption_code
+        where couponId = #{couponId}
+    </select>
+    <select id="findUserName" resultType="com.caimei365.order.model.bo.OrderParamBo">
+        select userName,bindMobile
+        from user
+        where userId = #{userId}
     </select>
-
 </mapper>

+ 3 - 1
src/main/resources/mapper/PayOrderMapper.xml

@@ -326,7 +326,9 @@
         FROM cm_order_product cop
         LEFT JOIN cm_order co ON cop.orderId = co.orderId
         LEFT JOIN cm_coupon_buyrecord ccb ON ccb.orderId = co.orderId
-        WHERE  cop.productId IN (7174,7175)
+        WHERE
+#               cop.productId IN (7619,7620)
+            cop.productId IN (7423,7422)
           AND co.receiptStatus = 3
           AND co.delflag = 0
           AND cop.orderId NOT IN (SELECT orderId FROM cm_coupon_buyrecord WHERE orderId IS NOT NULL)