skyline 1 жил өмнө
parent
commit
1b27ab5323

+ 30 - 15
car-wash-service/src/main/java/com/kym/service/awoara/event/handle/OrderCloseEventHandler.java

@@ -214,10 +214,10 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
         var unfreezeAmount = washOrder.getAmount();
 
         // 归属站点账户解冻扣除平台技术服务费后总共用于分账的金额
-        var localAmount = (int)(unfreezeAmount * 0.3) - platformAmount;
+        var localAmount = (int) (unfreezeAmount * 0.3) - platformAmount;
 
         // 当前消费站点分账收入(订单金额的70%,不承担平台手续费)
-        var crossAmount = washOrder.getAmount() - (int)(unfreezeAmount * 0.3);
+        var crossAmount = washOrder.getAmount() - (int) (unfreezeAmount * 0.3);
 
         // 当前消费站点收入(跨店消费,原充值站点要分订单的70%)
         stationAccountService.lambdaUpdate()
@@ -231,7 +231,7 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
                 .eq(StationAccount::getStationId, userStationId)
                 .update();
 
-        // t_split_record 0.平台服务费收入 1.消费站点收入 2.归属站点收入 3.归属站点解冻 4.归属站点支出(给消费站点结算)
+        // t_split_record 0.平台服务费收入 1.消费站点收入 2.归属站点解冻 3.归属站点收入 4.归属站点支出(给消费站点结算)
         var splitRecord0 = new SplitRecord()
                 .setFromStationId(userStationId)
                 .setToStationId(StationAccount.PLATFORM_STATION_ID)
@@ -248,17 +248,17 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
 
         var splitRecord2 = new SplitRecord()
                 .setFromStationId(userStationId)
-                .setToStationId(userStationId)
+                .setToStationId(washOrder.getStationId())
                 .setTradeNo(washOrder.getOrderId())
-                .setAmount(localAmount)
-                .setType(SplitRecord.TYPE_CONSUME);
+                .setAmount(unfreezeAmount)
+                .setType(SplitRecord.TYPE_UNFREEZE);
 
         var splitRecord3 = new SplitRecord()
                 .setFromStationId(userStationId)
-                .setToStationId(washOrder.getStationId())
+                .setToStationId(userStationId)
                 .setTradeNo(washOrder.getOrderId())
-                .setAmount(unfreezeAmount)
-                .setType(SplitRecord.TYPE_UNFREEZE);
+                .setAmount(localAmount)
+                .setType(SplitRecord.TYPE_CONSUME);
 
         var splitRecord4 = new SplitRecord()
                 .setFromStationId(userStationId)
@@ -269,11 +269,12 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
 
         splitRecordService.saveBatch(List.of(splitRecord0, splitRecord1, splitRecord2, splitRecord3, splitRecord4));
 
-        // t_station_account_record 0.平台服务费收入 1.消费站点收入 2.归属站点收入 3.归属站点解冻 4.归属站点支出(给消费站点结算)
+        // t_station_account_record 0.平台服务费收入 1.消费站点收入 2.归属站点解冻 3.归属站点收入 4.归属站点支出(给消费站点结算)
         var platformStationAccount = stationAccountService.getStationAccount(StationAccount.PLATFORM_STATION_ID);
         var consumeStationAccount = stationAccountService.getStationAccount(washOrder.getStationId());
         var userStationAccount = stationAccountService.getStationAccount(userStationId);
 
+        // 平台服务费收入
         var stationAccountRecord0 = new StationAccountRecord()
                 .setStationId(StationAccount.PLATFORM_STATION_ID)
                 .setTradeNo(washOrder.getOrderId())
@@ -283,6 +284,7 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
                 .setBeforeBalance(platformStationAccount.getBalance())
                 .setAfterBalance(platformStationAccount.getBalance() + platformAmount);
 
+        // 消费站点收入
         var stationAccountRecord1 = new StationAccountRecord()
                 .setStationId(washOrder.getStationId())
                 .setTradeNo(washOrder.getOrderId())
@@ -292,20 +294,33 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
                 .setBeforeBalance(consumeStationAccount.getBalance())
                 .setAfterBalance(consumeStationAccount.getBalance() + crossAmount);
 
-        // 归属站点收入和归属站点解冻合并成一条数据
+        //归属站点解冻(站点收入)
         var stationAccountRecord2 = new StationAccountRecord()
                 .setStationId(userStationId)
                 .setTradeNo(washOrder.getOrderId())
-                .setAmount(localAmount)
-                .setType(SplitRecord.TYPE_CONSUME) // Todo 是否要拆分消费和解冻
+                .setAmount(unfreezeAmount)
+                .setType(SplitRecord.TYPE_UNFREEZE)
                 .setTypeDesc(StationAccountRecord.TYPE_收入)
                 .setBeforeBalance(userStationAccount.getBalance())
                 .setAfterBalance(userStationAccount.getBalance() + localAmount)
                 .setBeforeFrozenAmount(userStationAccount.getFrozenAmount())
                 .setAfterFrozenAmount(userStationAccount.getFrozenAmount() - unfreezeAmount);
 
+        // 归属站点收入
+//        var stationAccountRecord3 = new StationAccountRecord()
+//                .setStationId(userStationId)
+//                .setTradeNo(washOrder.getOrderId())
+//                .setAmount(localAmount)
+//                .setType(SplitRecord.TYPE_CONSUME)
+//                .setTypeDesc(StationAccountRecord.TYPE_收入)
+//                .setBeforeBalance(userStationAccount.getBalance())
+//                .setAfterBalance(userStationAccount.getBalance() + localAmount)
+//                .setBeforeFrozenAmount(userStationAccount.getFrozenAmount())
+//                .setAfterFrozenAmount(userStationAccount.getFrozenAmount() - unfreezeAmount);
+
+
         // 归属站点支出(结算给消费站点)
-        var stationAccountRecord3 = new StationAccountRecord()
+        var stationAccountRecord4 = new StationAccountRecord()
                 .setStationId(userStationId)
                 .setTradeNo(washOrder.getOrderId())
                 .setAmount(crossAmount)
@@ -314,6 +329,6 @@ public class OrderCloseEventHandler implements AwoaraEventHandler<OrderInfoObjec
                 .setBeforeBalance(stationAccountRecord2.getAfterBalance())
                 .setAfterBalance(stationAccountRecord2.getAfterBalance() - unfreezeAmount);
 
-        stationAccountRecordService.saveBatch(List.of(stationAccountRecord0, stationAccountRecord1, stationAccountRecord2, stationAccountRecord3));
+        stationAccountRecordService.saveBatch(List.of(stationAccountRecord0, stationAccountRecord1, stationAccountRecord2, stationAccountRecord4));
     }
 }