zhijiezhao 2 anni fa
parent
commit
1200894470

+ 2 - 1
src/main/java/com/caimei365/order/controller/OrderSubmitApi.java

@@ -57,7 +57,8 @@ public class OrderSubmitApi {
      *                      "postage": "15",
      *                      "postageFlag": 1,
      *                      "userBeans": 100,//抵扣采美豆数量
-     *                      "rebateFlag":0
+     *                      "rebateFlag":0,
+     *                      "rebateFee":0.00 //普通订单返佣服务费
      *                  },
      *                  "orderInvoice":             //【发票信息】
      *                          {"type": 0 // 不开发票  }

+ 5 - 1
src/main/java/com/caimei365/order/model/bo/OrderParamBo.java

@@ -74,7 +74,11 @@ public class OrderParamBo implements Serializable {
      */
     private Integer clauseId;
     /**
-     * 返佣订单标识 0非返佣订单,1返佣订单
+     * 返佣服务费
+     */
+    private Double rebateFee;
+    /**
+     * 返佣订单标识 0非返佣订单,1返佣订单,2普通订单含有返佣服务费
      */
     private Integer rebateFlag;
     /**

+ 5 - 1
src/main/java/com/caimei365/order/model/po/OrderPo.java

@@ -187,7 +187,11 @@ public class OrderPo implements Serializable {
      */
     private String payTime;
     /**
-     * 返佣订单标识 0非返佣订单,1返佣订单
+     * 返佣服务费
+     */
+    private Double rebateFee;
+    /**
+     * 返佣订单标识 0非返佣订单,1返佣订单,2普通订单含有返佣服务费
      */
     private Integer rebateFlag;
     /**

+ 4 - 0
src/main/java/com/caimei365/order/model/vo/ReceiptVo.java

@@ -14,6 +14,10 @@ import java.util.List;
 @Data
 public class ReceiptVo implements Serializable {
     private static final long serialVersionUID = 1L;
+    /**
+     * 二手商品订单标识  0非二手商品订单、 1二手商品订单
+     */
+    private Integer secondHandOrderFlag;
     /**
      * 款项识别表id
      */

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

@@ -15,6 +15,14 @@ import java.util.List;
 @Data
 public class ShopOrderVo implements Serializable {
     private static final long serialVersionUID = 1L;
+    /**
+     * 返佣服务费
+     */
+    private Double rebateFee;
+    /**
+     * 二手商品订单标识  0非二手商品订单、 1二手商品订单
+     */
+    private Integer secondHandOrderFlag;
     /**
      * 子订单已支付成功次数统计
      */

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

@@ -63,8 +63,6 @@ public class OrderClubServiceImpl implements OrderClubService {
     @Resource
     private WeChatService weChatService;
 
-    private SubmitServiceImpl submitService;
-
     /**
      * 获取各状态订单数量
      *
@@ -148,7 +146,6 @@ public class OrderClubServiceImpl implements OrderClubService {
             // 设置付款金额
             orderCommonService.getDiscernReceiptAndSetOrder(order);
         });
-        orderList.removeIf(o -> o.getOrderSeen().equals(2));
         PageInfo<OrderVo> pageInfo = new PageInfo(orderList);
         return ResponseJson.success(pageInfo);
     }

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

@@ -101,7 +101,8 @@ public class SubmitServiceImpl implements SubmitService {
      *                  "postage": "15",
      *                  "postageFlag": 1, //运费标志:0包邮 -1到付 1遵循运费规则
      *                  "userBeans": 100,//抵扣采美豆数量
-     *                  "rebateFlag":0
+     *                  "rebateFlag":0,
+     *                  "rebateFee":0.00 //普通订单返佣服务费
      *                  },
      *                  "orderInvoice":             //【发票信息】
      *                  {"type": 0 // 不开发票  }
@@ -250,8 +251,14 @@ public class SubmitServiceImpl implements SubmitService {
             }
             orderParamBo.setOrderInvoice(invoice);
         }
-        // 返佣订单标识 0非返佣订单,1返佣订单
+        // 返佣订单标识 0非返佣订单,1返佣订单,2普通订单含有返佣服务费
         Integer rebateFlag = (Integer) payInfo.get("rebateFlag");
+        // rebateflag=2时,有rebateFee
+        if (null != rebateFlag && 2 == rebateFlag) {
+            String re = (String) payInfo.get("rebateFee");
+            Double rebateFee = Double.parseDouble(re);
+            orderParamBo.setRebateFee(rebateFee);
+        }
         orderParamBo.setRebateFlag(rebateFlag);
         // 售后条款id
         Integer clauseId = (Integer) payInfo.get("clauseId");
@@ -480,7 +487,7 @@ public class SubmitServiceImpl implements SubmitService {
                 OrderProductPo dbProduct = submitMapper.getProductDetails(productId);
                 OrderProductPo product = new OrderProductPo();
                 BeanUtils.copyProperties(dbProduct, product);
-                log.info("splitcode-----------------------》"+product.getSplitCode());
+                log.info("splitcode-----------------------》" + product.getSplitCode());
                 if (null == product) {
                     return ResponseJson.error("订单商品不存在!", null);
                 }
@@ -772,7 +779,7 @@ public class SubmitServiceImpl implements SubmitService {
                 // 需要支付金额 shouldPayFee +运费
                 needPayAmount.set(MathUtil.add(needPayAmount.get(), product.getShouldPayFee()).doubleValue());
                 // 不包含单品满减的子订单需付金额
-                realNeedPay.set(MathUtil.add(realNeedPay.get(),product.getRealProductFee()).doubleValue());
+                realNeedPay.set(MathUtil.add(realNeedPay.get(), product.getRealProductFee()).doubleValue());
                 // 统计 总金额 包括税费
                 shopProductFee.set(MathUtil.add(shopProductFee.get(), product.getTotalFee()).doubleValue());
                 // 统计子订单内可参与店铺促销的商品总金额
@@ -953,7 +960,7 @@ public class SubmitServiceImpl implements SubmitService {
             couponAmount = coupon.getCouponAmount();
         }
         // 美博会临时设置,7260,7261临时套餐商品,不可使用优惠券
-        if(productIdList.contains(7260)||productIdList.contains(7261)){
+        if (productIdList.contains(7260) || productIdList.contains(7261)) {
             couponAmount = 0d;
         }
         mainOrder.setCouponAmount(couponAmount);
@@ -1054,6 +1061,9 @@ public class SubmitServiceImpl implements SubmitService {
         // 是否返佣订单
         Integer rebateFlag = (null == orderParamBo.getRebateFlag() ? 0 : orderParamBo.getRebateFlag());
         mainOrder.setRebateFlag(rebateFlag);
+        if (2 == rebateFlag) {
+            mainOrder.setRebateFee(orderParamBo.getRebateFee());
+        }
 
         // 判断前端传入orderShouldPayFee订单应付金额,和后台计算应付金额对比
         log.info("【提交订单】>>>>>后台计算payableAmount:" + payableAmount.get() + " ,前端传入orderShouldPayFee:" + orderParamBo.getOrderShouldPayFee());
@@ -1106,7 +1116,7 @@ public class SubmitServiceImpl implements SubmitService {
             List<OrderShopPo> shops = submitMapper.findShops(productIdList);
             //子订单分多子订单,满减分摊到原子订单分开的子订单,无满减重算佣金/应付
             //重组订单
-            shopOrderList= findSplitShopOrder(orderProductList, shopOrderList, shops, orderParamBo);
+            shopOrderList = findSplitShopOrder(orderProductList, shopOrderList, shops, orderParamBo);
             //线上支付分摊优惠总和到子订单
             //经理折扣+优惠券+满减 提交订单的时候无经理折扣
             double allDiscount = MathUtil.add(couponAmount, promotionFullReduction.get()).doubleValue();
@@ -1558,14 +1568,14 @@ public class SubmitServiceImpl implements SubmitService {
         }
         log.info("**********************微信模板消息推送*****************************");
         List<Integer> productIds = orderClubMapper.getProductOrder(mainOrder.getOrderId());
-        if (0 == mainOrder.getSecondHandOrderFlag() && 0 == mainOrder.getRebateFlag() && (null != productIds && !productIds.contains(6060)) && mainOrder.getOrderType()!=0) {
+        if (0 == mainOrder.getSecondHandOrderFlag() && 0 == mainOrder.getRebateFlag() && (null != productIds && !productIds.contains(6060)) && mainOrder.getOrderType() != 0) {
             log.info("*******获取公众名" + orderClubMapper.getOrderIds(mainOrder.getOrderId()).toString());
             String name = "0";
             try {
                 String accessToken = weChatService.getAccessToken();
 //                orderClubMapper.getOpenidunionId(orderClubMapper.getUserId(mainOrder.getOrderId()))
                 List<String> openidList = orderClubMapper.getOpenidListByPermission(orderParamBo.getUnionId());
-                orderClubMapper.AddUnionId(orderParamBo.getUnionId(),mainOrder.getOrderId());
+                orderClubMapper.AddUnionId(orderParamBo.getUnionId(), mainOrder.getOrderId());
                 openidList.removeIf(Objects::isNull);
                 String i = orderClubMapper.getOrderIds(mainOrder.getOrderId()).toString();
                 if (i.length() < 10) {
@@ -1597,7 +1607,7 @@ public class SubmitServiceImpl implements SubmitService {
         /*
          * 下单推送(自主订单才推送)
          */
-        if(orderClubMapper.getProductOrder(mainOrder.getOrderId()).contains(6060)) {
+        if (orderClubMapper.getProductOrder(mainOrder.getOrderId()).contains(6060)) {
             if (StringUtils.isNotBlank(orderParamBo.getBindMobile()) && 0 == mainOrder.getRebateFlag() && 1 == mainOrder.getOrderType()) {
                 String shortLink = remoteCallService.getShortLink(8, 3, domain + "/user/order/detail.html?orderId=" + mainOrder.getOrderId());
                 String name = orderProductList.get(0).getName();
@@ -1644,8 +1654,8 @@ public class SubmitServiceImpl implements SubmitService {
         //统计拆分的shop
         //List<OrderShopPo> collect = shops.stream().filter(s -> shops.stream().filter(so -> so.getShopId().equals(s.getShopId())).count() > 1).collect(Collectors.toList());
         //对拆分的shop重新计算子订单佣金,应付,不计入店铺满减
-        log.info("原shoporderlist--------------------》"+shopOrderList);
-        log.info("原orderproductlist--------------------》"+orderProductList);
+        log.info("原shoporderlist--------------------》" + shopOrderList);
+        log.info("原orderproductlist--------------------》" + orderProductList);
         ArrayList<OrderShopPo> orderShopPos = new ArrayList<>();
         for (OrderShopPo shop : shops) {
             // 供应商名称

+ 1 - 1
src/main/resources/mapper/OrderClubMapper.xml

@@ -333,7 +333,7 @@
             clauseID AS clauseId,
             clauseName
         FROM cm_order
-        WHERE delFlag = 0 AND userID = #{userId}
+        WHERE delFlag = 0 AND userID = #{userId} and orderSeen != 2
         <if test="orderState == 1 ">
             AND status = '0'
         </if>

+ 14 - 6
src/main/resources/mapper/ReceiptMapper.xml

@@ -308,6 +308,7 @@
         cdr.noOrderReason,
         cdr.reviewReason,
         cdr.newReceiptType,
+        ifnull(coo.secondHandOrderFlag,0) as secondHandOrderFlag,
         CASE WHEN cror.relationType = 2 THEN co.organizeID
         WHEN cror.relationType = 1 THEN cso.organizeID
         ELSE '' END AS organizeId,
@@ -321,6 +322,7 @@
         LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
         LEFT JOIN cm_order co ON (cror.orderID = co.orderID AND cror.relationType = 2)
         LEFT JOIN cm_shop_order cso ON (cror.orderID = cso.shopOrderID AND cror.relationType = 1)
+        LEFT JOIN cm_order coo ON coo.orderId=cso.orderId
         WHERE cdr.delFlag = '0'
         <if test="id != null and id != ''">
             AND cdr.id = #{id}
@@ -633,7 +635,8 @@
             <if test="userName != null and userName != ''">
                 AND (u.userName LIKE CONCAT('%',#{userName},'%') OR u.name LIKE CONCAT('%',#{userName},'%'))
             </if>
-            AND o.rebateFlag = 0
+            #不显示返佣,普通订单含返佣服务费显示
+            AND o.rebateFlag != 1
             <if test="orderType == null or orderType == 0">
                 AND cop.productID NOT IN(6060, 6061, 6062, 6063, 6064,6065, 6066, 6067, 6068, 6069)
             </if>
@@ -771,12 +774,14 @@
                         cso.splitFlag,
                         cso.shopOtherFee,
                         s.name                                                           AS shopName,
+                        ifnull(co.secondHandOrderFlag,0) as secondHandOrderFlag,
                         IFNULL((SELECT SUM(refundAmount)
-                                FROM cm_refund_shop_record
-                                WHERE shopOrderID = cso.shopOrderID AND delFlag = 0), 0) AS shopRefundAmount
+        FROM cm_refund_shop_record
+        WHERE shopOrderID = cso.shopOrderID AND delFlag = 0), 0) AS shopRefundAmount
         FROM cm_receipt_order_relation cror
-                 LEFT JOIN cm_shop_order cso ON cso.shopOrderID = cror.orderID
-                 LEFT JOIN shop s ON s.shopID = cso.shopID
+        LEFT JOIN cm_shop_order cso ON cso.shopOrderID = cror.orderID
+        LEFT JOIN shop s ON s.shopID = cso.shopID
+        LEFT JOIN cm_order co on co.orderID = cso.orderID
         WHERE cror.delFlag = '0'
           AND cror.relationType = '1'
           AND cror.receiptID = #{receiptId}
@@ -872,6 +877,7 @@
         cso.splitFlag,
         cso.shopOtherFee,
         s.name AS shopName,
+        ifnull(co.secondHandOrderFlag,0) as secondHandOrderFlag,
         IF((SELECT (crpp.id) FROM cm_returned_purchase_product crpp LEFT JOIN cm_returned_purchase crp ON crp.id =
         crpp.returnedID
         WHERE crpp.shopOrderID = cso.shopOrderID AND crp.status = '1' AND crp.delFlag = 0 LIMIT 1) > 0, 1, 0) AS
@@ -1072,7 +1078,8 @@
                cmo.confirmTime,
                cms.receiptAmount,
                cms.needPayAmount,
-               cms.payedShopAmount
+               cms.payedShopAmount,
+               cmo.rebateFee
         FROM cm_shop_order cms
                  LEFT JOIN shop s ON s.shopID = cms.shopID
                  LEFT JOIN cm_order cmo ON cmo.orderID = cms.orderID
@@ -1088,6 +1095,7 @@
                      AND cmo.rebateFlag != 1
                      AND cms.shopId != 998
                      AND csp.newReceiptType is null
+                     ORDER BY orderId DESC
                 </where>
     </select>
 

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

@@ -12,7 +12,7 @@
                               productTotalFee,
                               orderTotalFee, payTotalFee, payableAmount, balancePayFee, couponAmount, status,
                               confirmTime,
-                              payTime, rebateFlag, clauseID, clauseName)
+                              payTime, rebateFlag,rebateFee, clauseID, clauseName)
         VALUES (#{orderSeen}, #{orderSource}, #{orderNo}, #{userId}, #{clubId}, #{buyUserId}, #{spId}, #{orderTime},
                 #{updateDate},
                 #{delFlag},
@@ -24,7 +24,7 @@
                 #{secondHandOrderFlag}, #{invoiceFlag}, #{postageFlag}, #{postage}, #{productTotalFee},
                 #{orderTotalFee},
                 #{payTotalFee}, #{payableAmount}, #{balancePayFee}, #{couponAmount}, #{status}, #{confirmTime},
-                #{payTime}, #{rebateFlag},
+                #{payTime}, #{rebateFlag},#{rebateFee},
                 #{clauseId}, #{clauseName})
     </insert>
     <insert id="insertShopOrder" keyColumn="shopOrderID" keyProperty="shopOrderId"