plf 4 лет назад
Родитель
Сommit
fe27fdf44e

+ 6 - 0
base-module/src/main/java/com/caimei/module/base/entity/po/CmPayShopRecord.java

@@ -7,6 +7,7 @@ import java.math.BigDecimal;
 
 /**
  * cm_pay_shop_record
+ *
  * @author
  */
 @Data
@@ -33,6 +34,11 @@ public class CmPayShopRecord implements Serializable {
      */
     private BigDecimal payAmount;
 
+    /**
+     * 付款抹平金额
+     */
+    private BigDecimal wipePayment;
+
     /**
      * 付款方式 1建设银行7297, 2中信银行0897, 3中信银行7172, 4广发银行0115, 5广发银行5461
      */

+ 5 - 0
base-module/src/main/java/com/caimei/module/base/entity/vo/OrderVo.java

@@ -61,4 +61,9 @@ public class OrderVo extends CmOrder {
      * 订单内是否包含确定能否开发票的商品
      */
     private boolean invoiceStatus = false;
+
+    /**
+     * 支付按钮是否消失,true消失
+     */
+    private boolean payButton = false;
 }

+ 56 - 50
pay/src/main/java/com/caimei/module/pay/service/impl/PayServiceImpl.java

@@ -879,66 +879,72 @@ public class PayServiceImpl implements PayService {
         //修改收款分账状态
         payDao.updateBySplitStatus(mbOrderId);
 
+        //子订单是否全部付款
+        boolean isPay = true;
+        Integer orderId = null;
         List<SplitAccountVo> splitAccountList = payDao.findByMbOrderId(mbOrderId);
         if (splitAccountList != null && splitAccountList.size() > 0) {
-            //本次付供应商金额(分账金额)
-            BigDecimal splitAmount = BigDecimal.ZERO;
-            Integer orderId = null;
-            Integer shopId = null;
             Integer shopOrderId = null;
+            String shopOrderNo = "";
             for (SplitAccountVo account : splitAccountList) {
-                splitAmount = MathUtil.add(splitAmount, account.getSplitAccount());
+                log.info("保存应付付供应商>>>>" + account.getShopId());
+                //本次付供应商金额(分账金额)
+                BigDecimal splitAmount = account.getSplitAccount();
                 orderId = account.getOrderId();
-                shopId = account.getShopId();
-            }
-            //已付供应商金额
-            BigDecimal paidAmount = payDao.findPaidShop(shopOrderId);
-            List<ShopOrderVo> shopOrderList = payDao.findShopOrder(Long.valueOf(orderId));
-            String payStatus = "";
-            //子订单是否全部付款
-            boolean isPay = true;
-            for (ShopOrderVo shopOrder : shopOrderList) {
-                if (shopId.equals(shopOrder.getShopID())) {
-                    shopOrderId = shopOrder.getShopOrderID();
-                    BigDecimal paidShop = MathUtil.add(paidAmount, splitAmount);
-                    if (MathUtil.compare(shopOrder.getShouldPayShopAmount(), paidShop) == 0) {
-                        payStatus = "2";
-                    } else {
-                        payStatus = "3";
+                Integer shopId = account.getShopId();
+                List<ShopOrderVo> shopOrderList = payDao.findShopOrder(Long.valueOf(orderId));
+                String payStatus = "";
+                for (ShopOrderVo shopOrder : shopOrderList) {
+                    if (shopId.equals(shopOrder.getShopID())) {
+                        shopOrderId = shopOrder.getShopOrderID();
+                        shopOrderNo = shopOrder.getShopOrderNo();
+                        //已付供应商金额
+                        BigDecimal paidAmount = payDao.findPaidShop(shopOrderId);
+                        BigDecimal paidShop = MathUtil.add(paidAmount, splitAmount);
+                        if (MathUtil.compare(shopOrder.getShouldPayShopAmount(), paidShop) == 0) {
+                            payStatus = "2";
+                            isPay = false;
+                        } else {
+                            payStatus = "3";
+                        }
+                        //修改子订单付款状态及付款金额
+                        payDao.updateShopOrderByPayStatus(shopOrderId, paidShop, payStatus);
+                    } else if (!"3".equals(shopOrder.getPayStatus())) {
+                        isPay = false;
                     }
-                    //修改子订单付款状态及付款金额
-                    payDao.updateShopOrderByPayStatus(shopOrderId, paidShop, payStatus);
-                } else if (!"3".equals(shopOrder.getPayStatus())) {
-                    isPay = false;
                 }
+
+                String currentTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
+                //保存付供应商记录
+                PayShopVo payShop = new PayShopVo();
+                payShop.setShopID(shopId);
+                payShop.setName("线上支付分账");
+                payShop.setTotalAmount(splitAmount);
+                payShop.setWipePayment(BigDecimal.ZERO);
+                payShop.setPayType("6");
+                payShop.setStatus("1");
+                payShop.setDelFlag("0");
+                payShop.setApplyTime(currentTime);
+                payShop.setReviewTime(currentTime);
+                payDao.insertPayShop(payShop);
+
+                PayShopRecordVo shopRecord = new PayShopRecordVo();
+                shopRecord.setShopID(shopId);
+                shopRecord.setShopOrderID(shopOrderId);
+                shopRecord.setShopOrderNo(shopOrderNo);
+                shopRecord.setPayAmount(splitAmount);
+                shopRecord.setWipePayment(BigDecimal.ZERO);
+                shopRecord.setPayType("6");
+                shopRecord.setPayTime(currentTime);
+                shopRecord.setPayShopID(payShop.getId().intValue());
+                shopRecord.setStatus("2");
+                shopRecord.setDelFlag("0");
+                payDao.insertPayShopRecord(shopRecord);
             }
-            String currentTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
-            //保存付供应商记录
-            PayShopVo payShop = new PayShopVo();
-            payShop.setShopID(shopId);
-            payShop.setName("线上支付分账");
-            payShop.setTotalAmount(splitAmount);
-            payShop.setPayType("6");
-            payShop.setStatus("1");
-            payShop.setDelFlag("0");
-            payShop.setApplyTime(currentTime);
-            payShop.setReviewTime(currentTime);
-
-            payDao.insertPayShop(payShop);
-            PayShopRecordVo shopRecord = new PayShopRecordVo();
-            shopRecord.setShopID(shopId);
-            shopRecord.setShopOrderID(shopOrderId);
-            shopRecord.setPayAmount(splitAmount);
-            shopRecord.setPayType("6");
-            shopRecord.setPayTime(currentTime);
-            shopRecord.setPayShopID(payShop.getId().intValue());
-            shopRecord.setStatus("2");
-            shopRecord.setDelFlag("0");
-            payDao.insertPayShopRecord(shopRecord);
 
             //修改主订单修改状态
-            if ("3".equals(payStatus) && isPay) {
-                payDao.updateOrderByPayStatus(orderId, payStatus);
+            if (isPay) {
+                payDao.updateOrderByPayStatus(orderId, "3");
             } else {
                 payDao.updateOrderByPayStatus(orderId, "2");
             }

+ 36 - 19
pay/src/main/resources/com-caimei-module-pay/PayMapper.xml

@@ -479,7 +479,17 @@
     
     <select id="findByMbOrderId" resultType="com.caimei.module.base.entity.vo.SplitAccountVo">
         SELECT
-          *
+          orderId,
+          productId,
+          orderProductId,
+          shopId,
+          type,
+          subUserNo,
+          SUM(splitAccount) AS "splitAccount",
+          mbOrderId,
+          orderRequestNo,
+          payStatus,
+          productType
         FROM
           cm_split_account
         WHERE
@@ -487,6 +497,8 @@
           AND payStatus = 1
           AND splitAccount > 0
           AND mbOrderId = #{mbOrderId}
+        GROUP BY
+          shopID
     </select>
 
     <select id="findPaidShop" resultType="java.math.BigDecimal">
@@ -501,26 +513,31 @@
     </select>
 
     <insert id="insertPayShop" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
-    insert into cm_pay_shop (shopID, `name`, bankAccountName,
-      bankAccount, bankName, `type`,
-      totalAmount, balancePayFee, transferPayFee,
-      payType, wipePayment, wipeRemarks,
-      wipeRemarkImages, wipeTime, applicant,
-      applyTime, reviewer, reviewTime,
-      payTime, `status`, reason,
-      delFlag)
-    values (#{shopID,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{bankAccountName,jdbcType=VARCHAR},
-      #{bankAccount,jdbcType=VARCHAR}, #{bankName,jdbcType=VARCHAR}, #{type,jdbcType=CHAR},
-      #{totalAmount,jdbcType=DECIMAL}, #{balancePayFee,jdbcType=DECIMAL}, #{transferPayFee,jdbcType=DECIMAL},
-      #{payType,jdbcType=VARCHAR}, #{wipePayment,jdbcType=DECIMAL}, #{wipeRemarks,jdbcType=VARCHAR},
-      #{wipeRemarkImages,jdbcType=VARCHAR}, #{wipeTime,jdbcType=VARCHAR}, #{applicant,jdbcType=INTEGER},
-      #{applyTime,jdbcType=VARCHAR}, #{reviewer,jdbcType=INTEGER}, #{reviewTime,jdbcType=VARCHAR},
-      #{payTime,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{reason,jdbcType=VARCHAR},
-      #{delFlag,jdbcType=VARCHAR})
+        INSERT INTO `cm_pay_shop` (
+          `shopID`, `name`, `bankAccountName`,
+          `bankAccount`, `bankName`, `type`,
+          `totalAmount`, `balancePayFee`,
+          `transferPayFee`, `payType`, `wipePayment`,
+          `wipeRemarks`, `wipeRemarkImages`,
+          `wipeTime`, `applicant`, `applyTime`,
+          `reviewer`, `reviewTime`, `payTime`,
+          `status`, `reason`, `delFlag`
+        )
+        VALUES
+          (
+            #{shopID}, #{name}, #{bankAccountName},
+            #{bankAccount}, #{bankName}, #{type},
+            #{totalAmount}, #{balancePayFee},
+            #{transferPayFee}, #{payType}, #{wipePayment},
+            #{wipeRemarks}, #{wipeRemarkImages},
+            #{wipeTime}, #{applicant}, #{applyTime},
+            #{reviewer}, #{reviewTime}, #{payTime},
+            #{status}, #{reason}, #{delFlag}
+          )
     </insert>
 
     <insert id="insertPayShopRecord" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
-        INSERT INTO `caimei`.`cm_pay_shop_record` (
+        INSERT INTO `cm_pay_shop_record` (
           `shopID`, `shopOrderID`, `shopOrderNo`,
           `payAmount`, `wipePayment`, `payType`,
           `payTime`, `wipeTime`, `payShopID`,
@@ -532,7 +549,7 @@
             #{payAmount}, #{wipePayment}, #{payType},
             #{payTime}, #{wipeTime}, #{payShopID},
             #{status}, #{delFlag}
-          );
+          )
     </insert>
 
     <update id="updateBySplitStatus">