Browse Source

结算逻辑修改

zhijiezhao 4 months ago
parent
commit
24f60c5374

+ 2 - 0
src/main/java/com/caimei/modules/order/dao/NewOrderDao.java

@@ -375,4 +375,6 @@ public interface NewOrderDao extends CrudDao<NewOrder> {
     Integer findOrderId(Integer shopOrderId);
 
     List<CmSettleVo> findSplitAccounts(String shopOrderId);
+
+    void updateOrderPayStatus(Integer orderId);
 }

+ 2 - 0
src/main/java/com/caimei/modules/order/entity/CmSettleVo.java

@@ -11,4 +11,6 @@ public class CmSettleVo extends DataEntity<CmSettleVo> {
     private Double splitAccount;
     private Integer productType;
 
+    private Integer orderId;
+
 }

+ 13 - 32
src/main/java/com/caimei/modules/order/service/CmPayShopService.java

@@ -1504,15 +1504,18 @@ public class CmPayShopService extends CrudService<CmPayShopDao, CmPayShop> {
 
         for (CmSettleVo settleVo : settleVos) {
             if (1 == settleVo.getProductType()) {
-                settleOrder("JSCB" + shopOrderId + substring, settleVo.getSplitAccount(), settleVo.getSubUserNo(), shopOrderId, 1);
+                settleOrder("JSCB" + shopOrderId + substring, settleVo.getSplitAccount(), settleVo.getSubUserNo(), shopOrderId, settleVo.getProductType());
             }
             if (3 == settleVo.getProductType()) {
-                settleOrder("JSYJ" + shopOrderId + substring, settleVo.getSplitAccount(), Constant.CUSTOMERNUM2, shopOrderId, 2);
+                settleOrder("JSYJ" + shopOrderId + substring, settleVo.getSplitAccount(), Constant.CUSTOMERNUM2, shopOrderId, settleVo.getProductType());
             }
             if (5 == settleVo.getProductType()) {
-                settleOrder("JSZZ" + shopOrderId + substring, settleVo.getSplitAccount(), settleVo.getSubUserNo(), shopOrderId, 3);
+                settleOrder("JSFWS" + shopOrderId + substring, settleVo.getSplitAccount(), settleVo.getSubUserNo(), shopOrderId, settleVo.getProductType());
             }
         }
+        newOrderDao.updateShopOrderSettleStatus(shopOrderId, 3);
+        newOrderDao.updateOrderPayStatus(settleVos.get(0).getOrderId());
+        //todo 结算三方短信
     }
 
     @Transactional(readOnly = false, rollbackFor = Exception.class)
@@ -1545,35 +1548,13 @@ public class CmPayShopService extends CrudService<CmPayShopDao, CmPayShop> {
             } else {
                 SettleRecord settleRecord = new SettleRecord();
                 //存结算表,改子订单结算状态
-                if (1 == settleFlag) {
-                    //成本结算
-                    settleRecord.setSettleType(settleFlag);
-                    settleRecord.setSettleAmount(settleAmount);
-                    settleRecord.setSplitCode(P3_customerNumber);
-                    settleRecord.setShopOrderId(shopOrderId);
-                    newOrderDao.insertSettleRecord(settleRecord);
-                    // 修改cm_split_account settlestatus
-                    newOrderDao.updateSettleStatus(shopOrderId, 1);
-//                    //计算供应商成本,结算金额,修改结算状态
-//                    Double shouldPayShopAmount = newOrderDao.findShouldPayShopAmount(shopOrderId);
-//                    Double settleSum = newOrderDao.findSettleSum(shopOrderId);
-//                    if (shouldPayShopAmount > settleSum) {
-//                        //成本>结算金额,部分结算
-//                        newOrderDao.updateShopOrderSettleStatus(shopOrderId, 2);
-//                    } else {
-                    //成本=结算金额 全部结算
-                    newOrderDao.updateShopOrderSettleStatus(shopOrderId, 3);
-//                    }
-                } else {
-                    //佣金结算
-                    settleRecord.setSettleType(settleFlag);
-                    settleRecord.setSettleAmount(settleAmount);
-                    settleRecord.setSplitCode(P3_customerNumber);
-                    settleRecord.setShopOrderId(shopOrderId);
-                    newOrderDao.insertSettleRecord(settleRecord);
-                    // 修改cm_split_account settlestatus
-                    newOrderDao.updateSettleStatus(shopOrderId, 3);
-                }
+                settleRecord.setSettleType(settleFlag);
+                settleRecord.setSettleAmount(settleAmount);
+                settleRecord.setSplitCode(P3_customerNumber);
+                settleRecord.setShopOrderId(shopOrderId);
+                newOrderDao.insertSettleRecord(settleRecord);
+                // 修改cm_split_account settlestatus
+                newOrderDao.updateSettleStatus(shopOrderId, settleFlag);
             }
         }
     }

+ 7 - 2
src/main/resources/mappings/modules/order/OrderMapper.xml

@@ -1038,7 +1038,8 @@
 
     <update id="updateShopOrderSettleStatus">
         update cm_shop_order
-        set settleStatus = #{settleStatus}
+        set settleStatus = #{settleStatus},
+            payStatus = 3
         where shopOrderId = #{shopOrderId}
     </update>
 
@@ -2101,7 +2102,7 @@
         limit 0,1
     </select>
     <select id="findSplitAccounts" resultType="com.caimei.modules.order.entity.CmSettleVo">
-        SELECT productType,subUserNo,splitAccount
+        SELECT productType,subUserNo,splitAccount,orderId
         FROM cm_split_account
         where shopOrderId = #{shopOrderId}
         and payStatus = 1
@@ -2326,6 +2327,10 @@
             #{orderID}
         </foreach>
     </update>
+    <update id="updateOrderPayStatus">
+        update cm_order set payStatus = 3
+        where orderId = #{orderId}
+    </update>
 
     <delete id="delCmOrderByOrderID" parameterType="String">
         delete