zhijiezhao 3 年之前
父節點
當前提交
0f5e7c6b6a

+ 3 - 3
src/main/java/com/caimei365/order/components/HeliPayUtil.java

@@ -111,7 +111,7 @@ public class HeliPayUtil {
             pay.setP3_customerNumber(Constant.CUSTOMERNUM);
         } else if ("order".equals(payFlag)) {
             //普通订单
-            OrderVo order = orderCommonMapper.getOrderByOrderId(heliDto.getOrderId());
+            OrderVo order = orderCommonMapper.getOrderByShopOrderId(heliDto.getShopOrderId());
             orderId = order.getOrderNo() + "T" + time + environment;
             pay.setP9_orderAmount(heliDto.getPayAmount().toString());
             pay.setP12_notifyUrl(notifyUrl);
@@ -255,9 +255,9 @@ public class HeliPayUtil {
                 pay.setP15_desc(attach);
             }
             else if ("order".equals(payFlag)) {
-                OrderVo order = orderCommonMapper.getOrderByOrderId(heliDto.getOrderId());
+                OrderVo order = orderCommonMapper.getOrderByShopOrderId(heliDto.getShopOrderId());
                 orderId = order.getOrderNo() + "T" + time + environment;
-                pay.setP4_orderAmount(heliDto.getPayAmount().toString());
+                pay.setP4_orderAmount(heliDto.getPayAmount());
                 pay.setP12_serverCallback(unionPay);
                 String product = "采美订单" + order.getOrderNo();
                 URLEncoder.encode(product,"UTF-8");

+ 2 - 8
src/main/java/com/caimei365/order/controller/HeliPayApi.java

@@ -130,12 +130,6 @@ public class HeliPayApi {
     @ApiOperation("生成网银支付链接(旧:/PayOrder/payLink)")
     @PostMapping("/link")
     public ResponseJson<String> getPayLink(PayLinkDto payLinkDto) {
-        if (null == payLinkDto.getOrderId() && null == payLinkDto.getVipRecordId()) {
-            return ResponseJson.error("订单Id和会员购买记录Id不能同时为空!", null);
-        }
-        if (null != payLinkDto.getOrderId() && null != payLinkDto.getVipRecordId()) {
-            return ResponseJson.error("订单Id和会员购买记录Id不能同时出现!", null);
-        }
         return payOrderService.getPayLink(payLinkDto);
     }
 
@@ -205,7 +199,7 @@ public class HeliPayApi {
      */
     @ApiOperation("合利宝支付宝扫码支付")
     @PostMapping("/scan/pay")
-    public ResponseJson<JSONObject> payByWeChat(HeliDto heliDto, @RequestHeader HttpHeaders headers) {
+    public ResponseJson<JSONObject> payByWeChat(HeliDto heliDto, @RequestHeader HttpHeaders headers) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
         if (null == heliDto.getShopOrderId()) {
             return ResponseJson.error("子订单Id不能为空!", null);
         }
@@ -217,7 +211,7 @@ public class HeliPayApi {
      */
     @ApiOperation("合利宝微信小程序/公众号支付")
     @PostMapping("/online")
-    public ResponseJson<JSONObject> payOnline(HeliDto heliDto, @RequestHeader HttpHeaders headers) {
+    public ResponseJson<JSONObject> payOnline(HeliDto heliDto, @RequestHeader HttpHeaders headers) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
         if (null == heliDto.getShopOrderId()) {
             return ResponseJson.error("子订单Id不能为空!", null);
         }

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

@@ -21,9 +21,9 @@ import java.util.List;
  * @date : 2021/11/11
  */
 public interface HeliPayService {
-    ResponseJson<JSONObject> payByWeChat(HeliDto heliDto, HttpHeaders headers);
+    ResponseJson<JSONObject> payByWeChat(HeliDto heliDto, HttpHeaders headers) throws IntrospectionException, InvocationTargetException, IllegalAccessException;
 
-    ResponseJson<JSONObject> payOnline(HeliDto heliDto, HttpHeaders headers);
+    ResponseJson<JSONObject> payOnline(HeliDto heliDto, HttpHeaders headers) throws IntrospectionException, InvocationTargetException, IllegalAccessException;
     /**
      * 回调
      */

+ 85 - 95
src/main/java/com/caimei365/order/service/impl/HeliPayServiceImpl.java

@@ -104,108 +104,98 @@ public class HeliPayServiceImpl implements HeliPayService {
      * 签名	sign	是	String(40)	d3382b9a9b08cefc1a79d276ec03d83a	MD5 签名结果,详见“第 5 章 数字签名”
      */
     @Override
-    public ResponseJson<JSONObject> payByWeChat(HeliDto heliDto, HttpHeaders headers) {
+    public ResponseJson<JSONObject> payByWeChat(HeliDto heliDto, HttpHeaders headers) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
         log.info("--------进入支付二维码创建接口----------");
-        try {
-            AppCreateOrderVo pay = new AppCreateOrderVo();
-            String splitCode = payOrderMapper.findShopOrderSplitCode(heliDto.getShopOrderId());
-            if (StringUtils.isBlank(splitCode)) {
-                return ResponseJson.error("子订单无商户号!", null);
-            }
-            pay.setP3_customerNumber(splitCode);
-            //合利宝主扫接口参数赋值
-            heliPayUtil.setValue(pay, heliDto, "order", headers);
-            if (!(StringUtils.equals(AppPayType.ALIPAY.name(), pay.getP8_appType())
-                    && StringUtils.equals(PayType.SWIPE.name(), pay.getP4_payType()))) {
-                pay.setOpenId(null);
-                pay.setAuthConfirmMode(null);
-            }
-            Map<String, String> map = MyBeanUtils.convertBean(pay, new LinkedHashMap());
-            String oriMessage = MyBeanUtils.getSignedByPresetParameter(map, AppCreateOrderVo.NEED_SIGN_PARAMS);
-            //密钥拼接
-            oriMessage += SPLIT + Constant.SAOMA;
-            log.info("签名原文串:" + oriMessage);
-            String sign = Disguiser.disguiseMD5(oriMessage.trim());
-            log.info("签名串:" + sign);
-            map.put("sign", sign);
-            log.info("发送参数:" + map);
-            Map<String, Object> resultMap = HttpClientService.getHttpResp(map, Constant.REQUEST_URL);
-            log.info("响应结果:" + resultMap);
-            if ((Integer) resultMap.get("statusCode") == HttpStatus.SC_OK) {
-                String resultMsg = (String) resultMap.get("response");
-                AppCreateOrderResponseVo orderResponseVo = JSONObject.parseObject(resultMsg, AppCreateOrderResponseVo.class);
-                String assemblyRespOriSign = MyBeanUtils.getSignedByPresetParameter(orderResponseVo, AppCreateOrderResponseVo.NEED_SIGN_PARAMS);
-                assemblyRespOriSign += Constant.SPLIT + Constant.SAOMA;
-                log.info("组装返回结果签名串:" + assemblyRespOriSign);
-                String responseSign = orderResponseVo.getSign();
-                log.info("响应签名:" + responseSign);
-                String checkSign = Disguiser.disguiseMD5(assemblyRespOriSign.trim());
-                JSONObject jsonObject = JSONObject.parseObject(resultMsg);
-                if (checkSign.equals(responseSign) && "0000".equals(orderResponseVo.getRt2_retCode())) {
-                    return ResponseJson.success("二维码创建成功", jsonObject);
-                } else {
-                    return ResponseJson.error("二维码创建失败", jsonObject);
-                }
+        AppCreateOrderVo pay = new AppCreateOrderVo();
+        String splitCode = payOrderMapper.findShopOrderSplitCode(heliDto.getShopOrderId());
+        if (StringUtils.isBlank(splitCode)) {
+            return ResponseJson.error("子订单无商户号!", null);
+        }
+        pay.setP3_customerNumber(splitCode);
+        //合利宝主扫接口参数赋值
+        heliPayUtil.setValue(pay, heliDto, "order", headers);
+        if (!(StringUtils.equals(AppPayType.ALIPAY.name(), pay.getP8_appType())
+                && StringUtils.equals(PayType.SWIPE.name(), pay.getP4_payType()))) {
+            pay.setOpenId(null);
+            pay.setAuthConfirmMode(null);
+        }
+        Map<String, String> map = MyBeanUtils.convertBean(pay, new LinkedHashMap());
+        String oriMessage = MyBeanUtils.getSignedByPresetParameter(map, AppCreateOrderVo.NEED_SIGN_PARAMS);
+        //密钥拼接
+        oriMessage += SPLIT + Constant.SAOMA;
+        log.info("签名原文串:" + oriMessage);
+        String sign = Disguiser.disguiseMD5(oriMessage.trim());
+        log.info("签名串:" + sign);
+        map.put("sign", sign);
+        log.info("发送参数:" + map);
+        Map<String, Object> resultMap = HttpClientService.getHttpResp(map, Constant.REQUEST_URL);
+        log.info("响应结果:" + resultMap);
+        if ((Integer) resultMap.get("statusCode") == HttpStatus.SC_OK) {
+            String resultMsg = (String) resultMap.get("response");
+            AppCreateOrderResponseVo orderResponseVo = JSONObject.parseObject(resultMsg, AppCreateOrderResponseVo.class);
+            String assemblyRespOriSign = MyBeanUtils.getSignedByPresetParameter(orderResponseVo, AppCreateOrderResponseVo.NEED_SIGN_PARAMS);
+            assemblyRespOriSign += Constant.SPLIT + Constant.SAOMA;
+            log.info("组装返回结果签名串:" + assemblyRespOriSign);
+            String responseSign = orderResponseVo.getSign();
+            log.info("响应签名:" + responseSign);
+            String checkSign = Disguiser.disguiseMD5(assemblyRespOriSign.trim());
+            JSONObject jsonObject = JSONObject.parseObject(resultMsg);
+            if (checkSign.equals(responseSign) && "0000".equals(orderResponseVo.getRt2_retCode())) {
+                return ResponseJson.success("二维码创建成功", jsonObject);
             } else {
-                return ResponseJson.error("二维码创建失败", null);
+                return ResponseJson.error("二维码创建失败", jsonObject);
             }
-        } catch (Exception e) {
-            log.error("二维码创建失败" + e);
+        } else {
             return ResponseJson.error("二维码创建失败", null);
         }
     }
 
     @Override
-    public ResponseJson<JSONObject> payOnline(HeliDto heliDto, HttpHeaders headers) {
+    public ResponseJson<JSONObject> payOnline(HeliDto heliDto, HttpHeaders headers) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
         log.info("--------进入公众号/小程序预创建订单接口----------");
-        try {
-            AppPayPublicCreateOrderVo pay = new AppPayPublicCreateOrderVo();
-            String splitCode = payOrderMapper.findShopOrderSplitCode(heliDto.getShopOrderId());
-            if (StringUtils.isBlank(splitCode)) {
-                return ResponseJson.error("子订单无商户号!", null);
-            }
-            pay.setP3_customerNumber(splitCode);
-            //合利宝主扫接口参数赋值
-            heliPayUtil.setOnlineValue(pay, heliDto, "order", headers);
-            if ("GZH".equals(heliDto.getPayType()) || "XCX".equals(heliDto.getPayType())) {
-                //公众号/小程序
-                String openId = getOpenId(heliDto, headers);
-                if (StringUtils.isEmpty(openId)) {
-                    return ResponseJson.error("微信openId获取失败", null);
-                }
-                pay.setP8_openid(openId);
+        AppPayPublicCreateOrderVo pay = new AppPayPublicCreateOrderVo();
+        String splitCode = payOrderMapper.findShopOrderSplitCode(heliDto.getShopOrderId());
+        if (StringUtils.isBlank(splitCode)) {
+            return ResponseJson.error("子订单无商户号!", null);
+        }
+        pay.setP3_customerNumber(splitCode);
+        //合利宝主扫接口参数赋值
+        heliPayUtil.setOnlineValue(pay, heliDto, "order", headers);
+        if ("GZH".equals(heliDto.getPayType()) || "XCX".equals(heliDto.getPayType())) {
+            //公众号/小程序
+            String openId = getOpenId(heliDto, headers);
+            if (StringUtils.isEmpty(openId)) {
+                return ResponseJson.error("微信openId获取失败", null);
             }
-            Map<String, String> map = MyBeanUtils.convertBean(pay, new LinkedHashMap());
-            String oriMessage = MyBeanUtils.getSignedByPresetParameter(map, AppPayPublicCreateOrderVo.NEED_SIGN_PARAMS);
-            oriMessage += SPLIT + Constant.SAOMA;
-            log.info("签名原文串:" + oriMessage);
-            String sign = Disguiser.disguiseMD5(oriMessage.trim());
-            log.info("签名串:" + sign);
-            map.put("sign", sign);
-            log.info("发送参数:" + map);
-            Map<String, Object> resultMap = HttpClientService.getHttpResp(map, Constant.REQUEST_URL);
-            log.info("响应结果:" + resultMap);
-            if ((Integer) resultMap.get("statusCode") == HttpStatus.SC_OK) {
-                String resultMsg = (String) resultMap.get("response");
-                AppPayPublicOrderResponseVo orderResponseVo = JSONObject.parseObject(resultMsg, AppPayPublicOrderResponseVo.class);
-                String assemblyRespOriSign = MyBeanUtils.getSignedByPresetParameter(orderResponseVo, AppPayPublicOrderResponseVo.NEED_SIGN_PARAMS);
-                assemblyRespOriSign += Constant.SPLIT + Constant.SAOMA;
-                log.info("组装返回结果签名串:" + assemblyRespOriSign);
-                String responseSign = orderResponseVo.getSign();
-                log.info("响应签名:" + responseSign);
-                String checkSign = Disguiser.disguiseMD5(assemblyRespOriSign.trim());
-                if (checkSign.equals(responseSign) && "0000".equals(orderResponseVo.getRt2_retCode())) {
-                    JSONObject jsonObject = JSONObject.parseObject(resultMsg);
-                    return ResponseJson.success("请求成功", jsonObject);
-                } else {
-                    return ResponseJson.error("请求参数有误", JSONObject.parseObject(resultMsg));
-                }
+            pay.setP8_openid(openId);
+        }
+        Map<String, String> map = MyBeanUtils.convertBean(pay, new LinkedHashMap());
+        String oriMessage = MyBeanUtils.getSignedByPresetParameter(map, AppPayPublicCreateOrderVo.NEED_SIGN_PARAMS);
+        oriMessage += SPLIT + Constant.SAOMA;
+        log.info("签名原文串:" + oriMessage);
+        String sign = Disguiser.disguiseMD5(oriMessage.trim());
+        log.info("签名串:" + sign);
+        map.put("sign", sign);
+        log.info("发送参数:" + map);
+        Map<String, Object> resultMap = HttpClientService.getHttpResp(map, Constant.REQUEST_URL);
+        log.info("响应结果:" + resultMap);
+        if ((Integer) resultMap.get("statusCode") == HttpStatus.SC_OK) {
+            String resultMsg = (String) resultMap.get("response");
+            AppPayPublicOrderResponseVo orderResponseVo = JSONObject.parseObject(resultMsg, AppPayPublicOrderResponseVo.class);
+            String assemblyRespOriSign = MyBeanUtils.getSignedByPresetParameter(orderResponseVo, AppPayPublicOrderResponseVo.NEED_SIGN_PARAMS);
+            assemblyRespOriSign += Constant.SPLIT + Constant.SAOMA;
+            log.info("组装返回结果签名串:" + assemblyRespOriSign);
+            String responseSign = orderResponseVo.getSign();
+            log.info("响应签名:" + responseSign);
+            String checkSign = Disguiser.disguiseMD5(assemblyRespOriSign.trim());
+            if (checkSign.equals(responseSign) && "0000".equals(orderResponseVo.getRt2_retCode())) {
+                JSONObject jsonObject = JSONObject.parseObject(resultMsg);
+                return ResponseJson.success("请求成功", jsonObject);
             } else {
-                return ResponseJson.error("请求失败", null);
+                return ResponseJson.error("请求参数有误", JSONObject.parseObject(resultMsg));
             }
-        } catch (Exception e) {
-            log.error("交易失败" + e);
-            return ResponseJson.error("交易失败", null);
+        } else {
+            return ResponseJson.error("请求失败", null);
         }
     }
 
@@ -1133,10 +1123,10 @@ public class HeliPayServiceImpl implements HeliPayService {
 
     @Override
     public ResponseJson<List<ShopOrderVo>> getShopOrders(Integer orderId) {
-        String shopOrderId=baseMapper.findShopOrderIds(orderId);
+        String shopOrderId = baseMapper.findShopOrderIds(orderId);
         // 子订单
-        if (StringUtils.isBlank(shopOrderId)){
-            return ResponseJson.error("子订单为空!",null);
+        if (StringUtils.isBlank(shopOrderId)) {
+            return ResponseJson.error("子订单为空!", null);
         }
         String[] shopOrderIdArr = shopOrderId.split(",");
         List<String> shopOrderIds = Arrays.asList(shopOrderIdArr);
@@ -1173,12 +1163,12 @@ public class HeliPayServiceImpl implements HeliPayService {
                 if (null != orderProduct.getSvipPriceFlag() && 1 == orderProduct.getSvipPriceFlag()) {
                     if (1 == orderProduct.getSvipPriceType()) {
                         orderProduct.setSvipPriceTag(MathUtil.div(orderProduct.getSvipDiscount(), 10, 1) + "折");
-                    } else if (2 == orderProduct.getSvipPriceType()){
+                    } else if (2 == orderProduct.getSvipPriceType()) {
                         orderProduct.setSvipPriceTag("¥" + orderProduct.getDiscountPrice());
                     }
                 }
             });
-            shopOrder.setObligation(MathUtil.sub(shopOrder.getRealPay(),shopOrder.getReceiptAmount()).doubleValue());
+            shopOrder.setObligation(MathUtil.sub(shopOrder.getRealPay(), shopOrder.getReceiptAmount()).doubleValue());
             shopOrder.setOrderProductList(orderProductList);
             shopOrder.setShopLogo(ImageUtil.getImageUrl("shopLogo", shopOrder.getShopLogo(), domain));
         });

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

@@ -215,7 +215,6 @@ public class PayOrderServiceImpl implements PayOrderService {
             log.info("************************订单支付完成消息推送*********************");
             //判断是否是二手订单和返佣订单
             if (0 == orderClubMapper.getsecondHandOrderFlag(orderId) && 0 == orderClubMapper.getrebateFlag(orderId) && !"6060".equals(orderClubMapper.getProductOrder(orderId))) {
-
                 try {
                     String accessToken = weChatService.getAccessToken();
                     List<String> openidList = payOrderMapper.getOpenidListByPermission(orderClubMapper.getOpenidunionId(order.getUserId()));

+ 518 - 496
src/main/resources/mapper/OrderCommonMapper.xml

@@ -2,7 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei365.order.mapper.OrderCommonMapper">
     <select id="countLogisticsBatch" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM cm_logistics_batch WHERE orderID= #{orderId}
+        SELECT COUNT(*)
+        FROM cm_logistics_batch
+        WHERE orderID = #{orderId}
     </select>
     <select id="getShopOrderList" resultType="com.caimei365.order.model.vo.ShopOrderVo">
         SELECT
@@ -47,150 +49,162 @@
         </foreach>
     </select>
     <select id="getOrderPromotionsById" resultType="com.caimei365.order.model.vo.PromotionsVo">
-        SELECT
-        id,
-        name,
-        description,
-        orderId,
-        type,
-        mode,
-        touchPrice,
-        reducedPrice,
-        beginTime,
-        endTime,
-        status
+        SELECT id,
+               name,
+               description,
+               orderId,
+               type,
+               mode,
+               touchPrice,
+               reducedPrice,
+               beginTime,
+               endTime,
+               status
         FROM cm_promotions_order
         WHERE id = #{orderPromotionsId}
     </select>
     <select id="getShopOrderProduct" resultType="com.caimei365.order.model.vo.OrderProductVo">
-        SELECT
-        cop.orderProductID AS orderProductId,
-        cop.orderID AS orderId,
-        cop.orderNo,
-        cop.shopOrderID AS shopOrderId,
-        cop.shopOrderNo,
-        cop.orderPromotionsId,
-        cop.productId,
-        cop.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,
-        cop.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,
-        cop.productType AS giftType,
-        cop.svipPriceFlag,
-        cop.svipPriceType,
-        cop.svipDiscount,
-        p.productCategory as productCategory,
-        p.productType,
-        p.productCode
+        SELECT cop.orderProductID AS orderProductId,
+               cop.orderID        AS orderId,
+               cop.orderNo,
+               cop.shopOrderID    AS shopOrderId,
+               cop.shopOrderNo,
+               cop.orderPromotionsId,
+               cop.productId,
+               cop.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,
+               cop.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,
+               cop.productType    AS giftType,
+               cop.svipPriceFlag,
+               cop.svipPriceType,
+               cop.svipDiscount,
+               p.productCategory  as productCategory,
+               p.productType,
+               p.productCode
         FROM cm_order_product cop
-        LEFT JOIN product p ON cop.productID = p.productID
+                 LEFT JOIN product p ON cop.productID = p.productID
         WHERE cop.shopOrderID = #{shopOrderId}
     </select>
     <select id="getDiscernReceipt" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
-        SELECT
-        cdr.id,
-        cdr.payWay,
-        cdr.payType,
-        cdr.receiptType,
-        cdr.receiptStatus,
-        cdr.receiptAmount,
-        cdr.confirmType,
-        cdr.receiptDate,
-        cdr.confirmDate,
-        cdr.reviewDate,
-        cdr.updateDate,
-        cdr.delFlag,
-        cror.associateAmount
+        SELECT cdr.id,
+               cdr.payWay,
+               cdr.payType,
+               cdr.receiptType,
+               cdr.receiptStatus,
+               cdr.receiptAmount,
+               cdr.confirmType,
+               cdr.receiptDate,
+               cdr.confirmDate,
+               cdr.reviewDate,
+               cdr.updateDate,
+               cdr.delFlag,
+               cror.associateAmount
         FROM cm_receipt_order_relation cror
-        LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
-        WHERE ((cror.orderID = #{orderId} AND cror.relationType = '2') OR (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
-        AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16' AND cdr.receiptStatus IN(2,3)
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+        WHERE ((cror.orderID = #{orderId} AND cror.relationType = '2') OR
+               (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
+          AND cror.delFlag = '0'
+          AND cdr.delFlag = '0'
+          AND cdr.receiptStatus = '3'
+          AND cdr.payType != '16'
+          AND cdr.receiptStatus IN (2, 3)
         ORDER BY cdr.receiptDate DESC
     </select>
     <select id="getVipDiscernReceipt" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
-        SELECT
-            cdr.id,
-            cdr.payWay,
-            cdr.payType,
-            cdr.receiptType,
-            cdr.receiptStatus,
-            cdr.receiptAmount,
-            cdr.confirmType,
-            cdr.receiptDate,
-            cdr.confirmDate,
-            cdr.reviewDate,
-            cdr.updateDate,
-            cdr.delFlag,
-            cror.mbOrderId,
-            cror.associateAmount
-        FROM cm_receipt_order_relation cror LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
-        WHERE vipRecordId = #{vipRecordId} AND cror.relationType = '3' AND cror.delFlag = '0' AND cdr.delFlag = '0'
+        SELECT cdr.id,
+               cdr.payWay,
+               cdr.payType,
+               cdr.receiptType,
+               cdr.receiptStatus,
+               cdr.receiptAmount,
+               cdr.confirmType,
+               cdr.receiptDate,
+               cdr.confirmDate,
+               cdr.reviewDate,
+               cdr.updateDate,
+               cdr.delFlag,
+               cror.mbOrderId,
+               cror.associateAmount
+        FROM cm_receipt_order_relation cror
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+        WHERE vipRecordId = #{vipRecordId}
+          AND cror.relationType = '3'
+          AND cror.delFlag = '0'
+          AND cdr.delFlag = '0'
     </select>
     <select id="getRebateAmountByShopOrder" resultType="java.lang.Double">
-        SELECT
-        receiptAmount
+        SELECT receiptAmount
         FROM cm_receipt_order_relation cror
-        LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
         WHERE cror.delFlag = '0'
-        AND cror.orderID = #{shopOrderId}
-        AND cror.relationType = 1
-        AND cdr.receiptStatus= '2'
+          AND cror.orderID = #{shopOrderId}
+          AND cror.relationType = 1
+          AND cdr.receiptStatus = '2'
     </select>
     <select id="countOfflinePayment" resultType="java.lang.Integer">
         SELECT count(*)
         FROM cm_receipt_order_relation cror
-        LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
         WHERE cror.orderID = #{orderId}
-        AND cror.relationType = '2' AND cror.delFlag = '0'
-        AND cdr.delFlag = '0' AND cdr.receiptStatus IN(2,3) AND cdr.payWay = '2'
+          AND cror.relationType = '2'
+          AND cror.delFlag = '0'
+          AND cdr.delFlag = '0'
+          AND cdr.receiptStatus IN (2, 3)
+          AND cdr.payWay = '2'
     </select>
     <select id="getShouldPayShopAmountList" resultType="java.lang.Double">
-        SELECT shouldPayShopAmount FROM cm_shop_order WHERE orderID = #{orderId} AND delFlag = '0'
+        SELECT shouldPayShopAmount
+        FROM cm_shop_order
+        WHERE orderID = #{orderId}
+          AND delFlag = '0'
     </select>
     <update id="updateSearchHistory">
-        UPDATE user_order_history SET
-        userId = #{userId},
-        searchWord = #{searchWord},
-        searchDate = #{searchDate},
-        delFlag = #{delFlag}
+        UPDATE user_order_history
+        SET userId     = #{userId},
+            searchWord = #{searchWord},
+            searchDate = #{searchDate},
+            delFlag    = #{delFlag}
         WHERE id = #{id}
     </update>
     <delete id="deleteSearchHistoryLimit">
-        DELETE FROM user_order_history
-        WHERE userId=#{userId}
-        AND id NOT IN (
-        SELECT temp.id FROM (SELECT id FROM user_order_history WHERE userId=#{userId} ORDER BY id DESC LIMIT 10) AS temp
+        DELETE
+        FROM user_order_history
+        WHERE userId = #{userId}
+          AND id NOT IN (
+            SELECT temp.id
+            FROM (SELECT id FROM user_order_history WHERE userId = #{userId} ORDER BY id DESC LIMIT 10) AS temp
         )
     </delete>
     <insert id="insertSearchHistory">
@@ -198,293 +212,294 @@
         VALUES (#{userId}, #{searchWord}, #{searchDate}, #{delFlag})
     </insert>
     <select id="getSearchHistoryIdByWord" resultType="java.lang.Integer">
-        SELECT id FROM user_order_history
+        SELECT id
+        FROM user_order_history
         WHERE searchWord = #{searchWord}
         ORDER BY id DESC
         LIMIT 1
     </select>
     <select id="countSearchHistory" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM user_order_history WHERE userId = #{userId}
+        SELECT COUNT(*)
+        FROM user_order_history
+        WHERE userId = #{userId}
     </select>
     <select id="getOrderProductByOrderId" resultType="com.caimei365.order.model.vo.OrderProductVo">
-        SELECT
-        cop.orderProductID AS orderProductId,
-        cop.orderID AS orderId,
-        cop.orderNo,
-        cop.shopOrderID AS shopOrderId,
-        cop.shopOrderNo,
-        cop.orderPromotionsId,
-        cop.productId,
-        cop.shopId,
-        cop.name,
-        cop.productImage AS image,
-        cop.price,
-        cop.shopName,
-        IF(cop.shopid=998 AND co.freight> 0,co.freight,cop.costPrice)AS costPrice,
-        cop.normalPrice,
-        cop.ladderPriceFlag,
-        cop.discountPrice,
-        cop.discount,
-        cop.totalAmount,
-        cop.totalFee,
-        cop.shouldPayFee,
-        cop.productUnit,
-        cop.num,
-        cop.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,
-        cop.productType,
-        p.productCategory as productCategory,
-        p.splitCode,
-        p.productType
+        SELECT cop.orderProductID                                                 AS orderProductId,
+               cop.orderID                                                        AS orderId,
+               cop.orderNo,
+               cop.shopOrderID                                                    AS shopOrderId,
+               cop.shopOrderNo,
+               cop.orderPromotionsId,
+               cop.productId,
+               cop.shopId,
+               cop.name,
+               cop.productImage                                                   AS image,
+               cop.price,
+               cop.shopName,
+               IF(cop.shopid = 998 AND co.freight > 0, co.freight, cop.costPrice) AS costPrice,
+               cop.normalPrice,
+               cop.ladderPriceFlag,
+               cop.discountPrice,
+               cop.discount,
+               cop.totalAmount,
+               cop.totalFee,
+               cop.shouldPayFee,
+               cop.productUnit,
+               cop.num,
+               cop.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,
+               cop.productType,
+               p.productCategory                                                  as productCategory,
+               p.splitCode,
+               p.productType
         FROM cm_order_product cop
-        LEFT JOIN product p ON cop.productID = p.productID
-        LEFT JOIN cm_order co ON cop.orderId=co.orderId
+                 LEFT JOIN product p ON cop.productID = p.productID
+                 LEFT JOIN cm_order co ON cop.orderId = co.orderId
         WHERE co.orderID = #{orderId}
-        AND IF(co.userBeans=0,1=1,cop.shopid!=998)
+          AND IF(co.userBeans = 0, 1 = 1, cop.shopid != 998)
         ORDER BY cop.discountPrice DESC
     </select>
     <select id="countReturnedNum" resultType="java.lang.Integer">
         SELECT SUM(crpp.actualReturnedNum)
         FROM cm_returned_purchase_product crpp
-        LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
+                 LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
         WHERE crpp.productID = #{productId}
-        AND crpp.shopOrderID = #{shopOrderId}
-        AND rp.status = '2' AND rp.delFlag = '0'
+          AND crpp.shopOrderID = #{shopOrderId}
+          AND rp.status = '2'
+          AND rp.delFlag = '0'
     </select>
     <select id="countActualCancelNum" resultType="java.lang.Integer">
         SELECT SUM(crpp.actualCancelNum)
         FROM cm_returned_purchase_product crpp
-        LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
+                 LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
         WHERE crpp.productID = #{productId}
-        AND crpp.shopOrderID = #{shopOrderId}
-        AND rp.status = '2' AND rp.delFlag = '0'
+          AND crpp.shopOrderID = #{shopOrderId}
+          AND rp.status = '2'
+          AND rp.delFlag = '0'
     </select>
     <select id="getOrderByOrderId" resultType="com.caimei365.order.model.vo.OrderVo">
-        SELECT
-        orderID AS orderId,
-        shopOrderIds,
-        orderSource,
-        orderNo,
-        organizeID AS organizeId,
-        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,
-        secondHandOrderFlag,
-        invoiceFlag,
-        freePostFlag AS postageFlag,
-        freight AS postage,
-        productTotalFee,
-        orderTotalFee,
-        payTotalFee,
-        payableAmount,
-        balancePayFee,
-        discountFee,
-        status,
-        paySuccessCounter,
-        confirmTime,
-        payTime,
-        rebateFlag,
-        clauseID AS clauseId,
-        clauseName,
-        payTime,
-        orderNo
+        SELECT orderID      AS orderId,
+               shopOrderIds,
+               orderSource,
+               orderNo,
+               organizeID   AS organizeId,
+               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,
+               secondHandOrderFlag,
+               invoiceFlag,
+               freePostFlag AS postageFlag,
+               freight      AS postage,
+               productTotalFee,
+               orderTotalFee,
+               payTotalFee,
+               payableAmount,
+               balancePayFee,
+               discountFee,
+               status,
+               paySuccessCounter,
+               confirmTime,
+               payTime,
+               rebateFlag,
+               clauseID     AS clauseId,
+               clauseName,
+               payTime,
+               orderNo
         FROM cm_order
         WHERE orderID = #{orderId}
     </select>
     <select id="getOrderByShopOrderId" resultType="com.caimei365.order.model.vo.OrderVo">
-        SELECT
-           co.orderID AS orderId,
-           co.shopOrderIds,
-           co.orderSource,
-           co.orderNo,
-           co.organizeID AS organizeId,
-           co.userID AS userId,
-           co.clubID AS clubId,
-           co.buyUserID AS buyUserId,
-           co.orderTime AS orderTime,
-           co.updateDate AS 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.status,
-           co.paySuccessCounter,
-           co.confirmTime,
-           co.payTime,
-           co.rebateFlag,
-           co.clauseID AS clauseId,
-           co.clauseName
+        SELECT co.orderID      AS orderId,
+               co.shopOrderIds,
+               co.orderSource,
+               co.orderNo,
+               co.organizeID   AS organizeId,
+               co.userID       AS userId,
+               co.clubID       AS clubId,
+               co.buyUserID    AS buyUserId,
+               co.orderTime    AS orderTime,
+               co.updateDate   AS 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.status,
+               co.paySuccessCounter,
+               co.confirmTime,
+               co.payTime,
+               co.rebateFlag,
+               co.clauseID     AS clauseId,
+               co.clauseName
         FROM cm_shop_order cso
-        LEFT JOIN cm_order co ON cso.orderID = co.orderID
+                 LEFT JOIN cm_order co ON cso.orderID = co.orderID
         WHERE cso.shopOrderID = #{shopOrderId}
     </select>
     <select id="getShopOrderListByOrderId" resultType="com.caimei365.order.model.vo.ShopOrderVo">
-        SELECT
-        shopOrderID AS shopOrderId,
-        shopOrderNo,
-        orderID AS orderId,
-        orderNo,
-        shopID AS shopId,
-        note,
-        userID AS userId,
-        clubID AS clubId,
-        spID AS spId,
-        orderPromotionsId,
-        promotionFullReduction,
-        brokerage,
-        canRefundAmount,
-        itemCount,
-        totalAmount,
-        productAmount,
-        needPayAmount,
-        shopProductAmount,
-        shopPostFee,
-        shopTaxFee,
-        shouldPayShopAmount,
-        orderTime,
-        orderSubmitType,
-        payStatus,
-        sendOutStatus,
-        splitFlag
+        SELECT shopOrderID AS shopOrderId,
+               shopOrderNo,
+               orderID     AS orderId,
+               orderNo,
+               shopID      AS shopId,
+               note,
+               userID      AS userId,
+               clubID      AS clubId,
+               spID        AS spId,
+               orderPromotionsId,
+               promotionFullReduction,
+               brokerage,
+               canRefundAmount,
+               itemCount,
+               totalAmount,
+               productAmount,
+               needPayAmount,
+               shopProductAmount,
+               shopPostFee,
+               shopTaxFee,
+               shouldPayShopAmount,
+               orderTime,
+               orderSubmitType,
+               payStatus,
+               sendOutStatus,
+               splitFlag
         FROM cm_shop_order
         WHERE delFlag = 0
-        AND orderID = #{orderId}
+          AND orderID = #{orderId}
     </select>
     <select id="getLogisticsBatchList" resultType="com.caimei365.order.model.vo.LogisticsBatchVo">
-        SELECT
-        id,
-        shopOrderID AS shopOrderId,
-        orderID AS orderId,
-        outStoreTimes,
-        status,
-        mailer,
-        shopID AS shopId,
-        updateDate,
-        deliveryTime,
-        receiptTime,
-        remarkImage,
-        remark
-        FROM cm_logistics_batch WHERE orderID= #{orderId}
+        SELECT id,
+               shopOrderID AS shopOrderId,
+               orderID     AS orderId,
+               outStoreTimes,
+               status,
+               mailer,
+               shopID      AS shopId,
+               updateDate,
+               deliveryTime,
+               receiptTime,
+               remarkImage,
+               remark
+        FROM cm_logistics_batch
+        WHERE orderID = #{orderId}
     </select>
     <select id="getLogisticsRecord" resultType="com.caimei365.order.model.vo.LogisticsRecordVo">
-        SELECT
-        clr.id,
-        clr.logisticsBatchID AS logisticsBatchId,
-        clr.shopOrderID AS shopOrderId,
-        clr.orderID AS orderId,
-        clr.orderProductID AS orderProductId,
-        clr.buyNum,
-        clr.num,
-        clr.productID AS productId,
-        clr.productName,
-        clr.image
+        SELECT clr.id,
+               clr.logisticsBatchID AS logisticsBatchId,
+               clr.shopOrderID      AS shopOrderId,
+               clr.orderID          AS orderId,
+               clr.orderProductID   AS orderProductId,
+               clr.buyNum,
+               clr.num,
+               clr.productID        AS productId,
+               clr.productName,
+               clr.image
         FROM cm_logistics_record clr
-        WHERE clr.shopOrderID = #{shopOrderId} AND clr.logisticsBatchID = #{logisticsBatchId}
+        WHERE clr.shopOrderID = #{shopOrderId}
+          AND clr.logisticsBatchID = #{logisticsBatchId}
     </select>
     <select id="getLogisticsInfoList" resultType="com.caimei365.order.model.vo.LogisticsInformationVo">
-        SELECT DISTINCT
-        li.id,
-        li.logisticsBatchID AS logisticsBatchId,
-        li.type,
-        li.shopOrderID AS shopOrderId,
-        li.orderProductID AS orderProductId,
-        li.orderID AS orderId,
-        li.nu,
-        li.state,
-        li.info,
-        li.logisticsCompanyName,
-        li.logisticsCompanyCode,
-        li.shopID AS shopId,
-        li.updateDate,
-        li.remarks
+        SELECT DISTINCT li.id,
+                        li.logisticsBatchID AS logisticsBatchId,
+                        li.type,
+                        li.shopOrderID      AS shopOrderId,
+                        li.orderProductID   AS orderProductId,
+                        li.orderID          AS orderId,
+                        li.nu,
+                        li.state,
+                        li.info,
+                        li.logisticsCompanyName,
+                        li.logisticsCompanyCode,
+                        li.shopID           AS shopId,
+                        li.updateDate,
+                        li.remarks
         FROM logistics_information li
         WHERE li.logisticsBatchID = #{logisticsBatchId}
     </select>
     <select id="getPrevCouponList" resultType="com.caimei365.order.model.vo.CouponVo">
         SELECT
-            id AS couponId,
-            couponAmount,
-            touchPrice,
-            moneyCouponPrice,
-            moneyCouponFlag,
-            moneyCouponType,
-            <if test="userId == null || userId == 0">
-                startDate,
-                endDate,
-            </if>
-            <if test="userId >0">
-                if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate) as startDate,
-                if(receiveFlag=1,endDate,date_add(if(#{registerTime} <![CDATA[ > ]]> startDate and #{registerTime} <![CDATA[ < ]]> endDate,#{registerTime},startDate),interval receivePeriod day)) as endDate,
-            </if>
-            couponType,
-            userId,
-            shopId,
-            productType,
-            categoryType
+        id AS couponId,
+        couponAmount,
+        touchPrice,
+        moneyCouponPrice,
+        moneyCouponFlag,
+        moneyCouponType,
+        <if test="userId == null || userId == 0">
+            startDate,
+            endDate,
+        </if>
+        <if test="userId >0">
+            if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate) as startDate,
+            if(receiveFlag=1,endDate,date_add(if(#{registerTime} <![CDATA[ > ]]> startDate and #{registerTime}
+            <![CDATA[ < ]]> endDate,#{registerTime},startDate),interval receivePeriod day)) as endDate,
+        </if>
+        couponType,
+        userId,
+        shopId,
+        productType,
+        categoryType
         FROM cm_coupon
         WHERE delFlag = 0 AND couponsMode = 0 AND status != 2
         <if test="userId == null or userId == 0">
@@ -500,37 +515,37 @@
             AND couponType = 4))
             and NOW() <![CDATA[ > ]]> startDate
             and NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,
-            date_add(if(#{registerTime} <![CDATA[ > ]]> startDate and #{registerTime} <![CDATA[ < ]]> endDate,#{registerTime},startDate),
+            date_add(if(#{registerTime} <![CDATA[ > ]]> startDate and #{registerTime} <![CDATA[ < ]]>
+            endDate,#{registerTime},startDate),
             interval receivePeriod day))
         </if>
         ORDER BY createDate DESC
     </select>
     <select id="getClubCouponList" resultType="com.caimei365.order.model.vo.CouponVo">
-        SELECT
-            a.id AS clubCouponId,
-            cc.id AS couponId,
-            cc.couponAmount,
-            cc.touchPrice,
-            cc.moneyCouponFlag,
-            cc.moneyCouponPrice,
-            cc.moneyCouponType,
-            if(cc.vipFlag = 1,cc.startDate,a.createDate) as startDate,
-            if(cc.vipFlag = 1,cc.endDate,date_add(a.createDate,interval cc.usePeriod day)) as 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.moneyCouponFlag,
+               cc.moneyCouponPrice,
+               cc.moneyCouponType,
+               if(cc.vipFlag = 1, cc.startDate, a.createDate)                                    as startDate,
+               if(cc.vipFlag = 1, cc.endDate, date_add(a.createDate, interval cc.usePeriod day)) as 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
+                 LEFT JOIN cm_coupon cc ON a.couponId = cc.id
         WHERE cc.delFlag = 0
-        AND a.delFlag = 0
-        AND a.userId = #{userId}
-        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
+          AND a.delFlag = 0
+          AND a.userId = #{userId}
+          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
         ORDER BY a.createDate DESC
     </select>
     <select id="getCouponProductIds" resultType="java.lang.Integer">
@@ -544,143 +559,150 @@
         </if>
     </select>
     <select id="getOrderInvoice" resultType="com.caimei365.order.model.vo.InvoiceVo">
-        SELECT
-            id,
-            type,
-            orderId,
-            invoiceTitle,
-            corporationTaxNum,
-            registeredAddress,
-            registeredPhone,
-            bankAccountNo,
-            openBank
+        SELECT id,
+               type,
+               orderId,
+               invoiceTitle,
+               corporationTaxNum,
+               registeredAddress,
+               registeredPhone,
+               bankAccountNo,
+               openBank
         FROM bp_order_invoice
         WHERE orderId = #{orderId}
         LIMIT 1
     </select>
     <select id="getUserRegisterTime" resultType="java.util.Date">
-        select registerTime from user where userID = #{userId}
+        select registerTime
+        from user
+        where userID = #{userId}
     </select>
     <select id="finduserBean" resultType="java.lang.Integer">
-        select userBeans from cm_order where orderID = #{orderId}
+        select userBeans
+        from cm_order
+        where orderID = #{orderId}
     </select>
     <select id="findSplitCode" resultType="java.lang.Integer">
         SELECT COUNT(*)
         FROM product p
-        LEFT JOIN cm_order_product cop  ON cop.productid=p.productid
+                 LEFT JOIN cm_order_product cop ON cop.productid = p.productid
         WHERE cop.orderId = #{orderId}
           AND (p.splitCode IS NULL OR p.splitCode = '')
     </select>
     <select id="getShopOrderDiscernReceipt" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
-        SELECT
-            cdr.id,
-            cdr.payWay,
-            cdr.payType,
-            cdr.receiptType,
-            cdr.receiptStatus,
-            cdr.receiptAmount,
-            cdr.confirmType,
-            cdr.receiptDate,
-            cdr.confirmDate,
-            cdr.reviewDate,
-            cdr.updateDate,
-            cdr.delFlag,
-            cror.associateAmount
+        SELECT cdr.id,
+               cdr.payWay,
+               cdr.payType,
+               cdr.receiptType,
+               cdr.receiptStatus,
+               cdr.receiptAmount,
+               cdr.confirmType,
+               cdr.receiptDate,
+               cdr.confirmDate,
+               cdr.reviewDate,
+               cdr.updateDate,
+               cdr.delFlag,
+               cror.associateAmount
         FROM cm_receipt_order_relation cror
-        LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
-        WHERE ((cror.shopOrderId = #{shopOrderId} AND cror.relationType = '2') OR (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
-          AND cror.delFlag = '0' AND cdr.delFlag = '0' AND cdr.receiptStatus = '3' AND cdr.payType != '16' AND cdr.receiptStatus IN(2,3)
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+        WHERE ((cror.shopOrderId = #{shopOrderId} AND cror.relationType = '2') OR
+               (cror.orderID = #{shopOrderId} AND cror.relationType = '1'))
+          AND cror.delFlag = '0'
+          AND cdr.delFlag = '0'
+          AND cdr.receiptStatus = '3'
+          AND cdr.payType != '16'
+          AND cdr.receiptStatus IN (2, 3)
         ORDER BY cdr.receiptDate DESC
     </select>
     <select id="getShopOrderByOrderId" resultType="com.caimei365.order.model.vo.ShopOrderVo">
-        SELECT
-            shopOrderID AS shopOrderId,
-            shopOrderNo,
-            orderID AS orderId,
-            orderNo,
-            shopID AS shopId,
-            note,
-            userID AS userId,
-            clubID AS clubId,
-            spID AS spId,
-            orderPromotionsId,
-            promotionFullReduction,
-            brokerage,
-            canRefundAmount,
-            itemCount,
-            totalAmount,
-            productAmount,
-            needPayAmount,
-            shopProductAmount,
-            shopPostFee,
-            shopTaxFee,
-            shouldPayShopAmount,
-            orderTime,
-            orderSubmitType,
-            payStatus,
-            sendOutStatus,
-            splitFlag,
-            realPay,
-            receiptAmount,
-            receiptStatus,
-            paySuccessCounter
-        FROM cm_shop_order
+        SELECT cop.shopOrderID AS shopOrderId,
+               cop.shopOrderNo,
+               cop.orderID     AS orderId,
+               cop.orderNo,
+               cop.shopID      AS shopId,
+               cop.note,
+               cop.userID      AS userId,
+               cop.clubID      AS clubId,
+               cop.spID        AS spId,
+               cop.orderPromotionsId,
+               cop.promotionFullReduction,
+               cop.brokerage,
+               cop.canRefundAmount,
+               cop.itemCount,
+               cop.totalAmount,
+               cop.productAmount,
+               cop.needPayAmount,
+               cop.shopProductAmount,
+               cop.shopPostFee,
+               cop.shopTaxFee,
+               cop.shouldPayShopAmount,
+               cop.orderTime,
+               cop.orderSubmitType,
+               cop.payStatus,
+               cop.sendOutStatus,
+               cop.splitFlag,
+               cop.realPay,
+               cop.receiptAmount,
+               cop.receiptStatus,
+               cop.paySuccessCounter,
+               p.name          as shopName
+        FROM cm_shop_order cop
+                 left join shop p on cop.shopID = p.shopID
         WHERE delFlag = 0
           AND shopOrderID = #{shopOrderId}
     </select>
     <select id="getOrderProductByShopOrderId" resultType="com.caimei365.order.model.vo.OrderProductVo">
-        SELECT
-            cop.orderProductID AS orderProductId,
-            cop.orderID AS orderId,
-            cop.orderNo,
-            cop.shopOrderID AS shopOrderId,
-            cop.shopOrderNo,
-            cop.orderPromotionsId,
-            cop.productId,
-            cop.shopId,
-            cop.name,
-            cop.productImage AS image,
-            cop.price,
-            cop.shopName,
-            IF(cop.shopid=998 AND co.freight> 0,co.freight,cop.costPrice)AS costPrice,
-            cop.normalPrice,
-            cop.ladderPriceFlag,
-            cop.discountPrice,
-            cop.discount,
-            cop.totalAmount,
-            cop.totalFee,
-            cop.shouldPayFee,
-            cop.productUnit,
-            cop.num,
-            cop.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,
-            cop.productType,
-            p.productCategory as productCategory,
-            p.splitCode,
-            p.productType
+        SELECT cop.orderProductID                                                 AS orderProductId,
+               cop.orderID                                                        AS orderId,
+               cop.orderNo,
+               cop.shopOrderID                                                    AS shopOrderId,
+               cop.shopOrderNo,
+               cop.orderPromotionsId,
+               cop.productId,
+               cop.shopId,
+               cop.name,
+               cop.productImage                                                   AS image,
+               cop.price,
+               cop.shopName,
+               IF(cop.shopid = 998 AND co.freight > 0, co.freight, cop.costPrice) AS costPrice,
+               cop.normalPrice,
+               cop.ladderPriceFlag,
+               cop.discountPrice,
+               cop.discount,
+               cop.totalAmount,
+               cop.totalFee,
+               cop.shouldPayFee,
+               cop.productUnit,
+               cop.num,
+               cop.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,
+               cop.productType,
+               p.productCategory                                                  as productCategory,
+               p.splitCode,
+               p.productType
         FROM cm_order_product cop
-        LEFT JOIN product p ON cop.productID = p.productID
-        LEFT JOIN cm_order co ON cop.orderId=co.orderId
+                 LEFT JOIN product p ON cop.productID = p.productID
+                 LEFT JOIN cm_order co ON cop.orderId = co.orderId
         WHERE cop.shopOrderID = #{shopOrderId}
-          AND IF(co.userBeans=0,1=1,cop.shopid!=998)
+          AND IF(co.userBeans = 0, 1 = 1, cop.shopid != 998)
         ORDER BY cop.discountPrice DESC
     </select>
 </mapper>