Procházet zdrojové kódy

结算私聊机器人
修复一些余额部分问题
修复结算日志发给所有人

LiYi před 1 týdnem
rodič
revize
4657dfe511

+ 6 - 1
src/main/java/org/jebot/handler/impl/channel/ChannelAccountBookHandler.java

@@ -81,7 +81,12 @@ public class ChannelAccountBookHandler extends AbstractHandler {
             for (BotGroup botGroup : botGroups) {
                 BotAccountBook accountBookchannl = handlerManager.getAccountBookRepository()
                         .findByBelongIdAndType(botGroup.getDataId(), DATA_TYPE_CHANNEL);
-                paymentBalanceOld += accountBookchannl.getPaymentBalance();
+                if (accountBookchannl == null) {
+                    paymentBalanceOld += 0;
+                }else {
+                    paymentBalanceOld += accountBookchannl.getPaymentBalance();
+                }
+
             }
             paymentBalanceOld += accountBook.getPaymentBalance();
             double paymentBalanceNew = paymentBalanceOld + paymentAccountAmount;

+ 6 - 1
src/main/java/org/jebot/handler/impl/channel/ChannelInfoHandler.java

@@ -118,7 +118,12 @@ public class ChannelInfoHandler extends AbstractHandler {
             for (BotGroup botGroup : botGroups) {
                 BotAccountBook accountBookchannl = handlerManager.getAccountBookRepository()
                         .findByBelongIdAndType(botGroup.getDataId(), DATA_TYPE_CHANNEL);
-                oldPaymentBalance += accountBookchannl.getPaymentBalance();
+                if (accountBookchannl == null) {
+                    oldPaymentBalance += 0;
+                }else {
+                    oldPaymentBalance += accountBookchannl.getPaymentBalance();
+                }
+
             }
             oldPaymentBalance += accountBook.getPaymentBalance();
             stringBuffer.append("当前预付: ").append(oldPaymentBalance).append("\n");

+ 24 - 10
src/main/java/org/jebot/handler/impl/complaint/ComplaintHandler.java

@@ -29,6 +29,9 @@ import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.Base64;
 import java.util.Date;
+import java.util.List;
+
+import static org.jebot.constant.Constant.DATA_TYPE_CHANNEL;
 
 
 @Slf4j
@@ -147,18 +150,13 @@ public class ComplaintHandler extends AbstractHandler {
             }
 
 
-
             double oldMerchantPaymentBalance = merchantAccountBook.getPaymentBalance();
             double oldChannelPaymentBalance = channelAccountBook.getPaymentBalance();
-            double oldChannelAllPaymentBalance = channelAllAccountBook.getPaymentBalance();
             double amount = payOrder.getAmount().movePointLeft(Constant.AMOUNT_MOVE_POINT).doubleValue();
             double newMerchantPaymentBalance = BigDecimal.valueOf(oldMerchantPaymentBalance).movePointRight(Constant.AMOUNT_MOVE_POINT).
                     add(payOrder.getAmount()).movePointLeft(Constant.AMOUNT_MOVE_POINT).doubleValue();
             double newChannelPaymentBalance = BigDecimal.valueOf(oldChannelPaymentBalance).movePointRight(Constant.AMOUNT_MOVE_POINT).
                     add(payOrder.getAmount()).movePointLeft(Constant.AMOUNT_MOVE_POINT).doubleValue();
-            double newChannelAllPaymentBalance = BigDecimal.valueOf(oldChannelAllPaymentBalance).movePointRight(Constant.AMOUNT_MOVE_POINT).
-                    add(payOrder.getAmount()).movePointLeft(Constant.AMOUNT_MOVE_POINT).doubleValue();
-
             //转发消息到商户群组
             CopyMessage sendMerchantCopyMessage = new CopyMessage(merchantGroup.getGroupId(), update.message().chat().id(), update.message().messageId());
             sendMerchantCopyMessage.caption(payOrder.getMchOrderNo());
@@ -188,19 +186,35 @@ public class ComplaintHandler extends AbstractHandler {
             //更新通道总余额
             UpdateBalance updateChannelAllPaymentBalance = new UpdateBalance();
             updateChannelAllPaymentBalance.setId(channelAllAccountBook.getId());
-            updateChannelAllPaymentBalance.setOldBalance(oldChannelAllPaymentBalance);
-            updateChannelAllPaymentBalance.setNewBalance(newChannelAllPaymentBalance);
+//            updateChannelAllPaymentBalance.setOldBalance(oldChannelAllPaymentBalance);
+//            updateChannelAllPaymentBalance.setNewBalance(newChannelAllPaymentBalance);
             updateChannelAllPaymentBalance.setAmount(amount);
             BotMessage channelAllMessage = new BotMessage();
             channelAllMessage.setBotGroup(channelGroup);
             channelAllMessage.setBotUser(botMessage.getBotUser());
             updateChannelAllPaymentBalance.setMessage(channelAllMessage);
             //构建发出投诉单号到上游群组的消息
+            //根据groupId找到绑定了哪些通道
+            List<BotGroup> botGroups = this.handlerManager.getGroupRepository().findAllByGroupIdAndDataType(channelGroup.getGroupId(), DATA_TYPE_CHANNEL);
+            double oldPaymentBalance = 0;
+            for (BotGroup botGroup : botGroups) {
+                BotAccountBook accountBookchannl = handlerManager.getAccountBookRepository()
+                        .findByBelongIdAndType(botGroup.getDataId(), DATA_TYPE_CHANNEL);
+                if (accountBookchannl == null) {
+                    oldPaymentBalance += 0;
+                }else {
+                    oldPaymentBalance += accountBookchannl.getPaymentBalance();
+                }
+
+            }
+            oldPaymentBalance += channelAllAccountBook.getPaymentBalance();
+            double newPaymentBalance = BigDecimal.valueOf(oldPaymentBalance).movePointRight(Constant.AMOUNT_MOVE_POINT).
+                    add(payOrder.getAmount()).movePointLeft(Constant.AMOUNT_MOVE_POINT).doubleValue();
             StringBuilder stringBuilderChannel = new StringBuilder();
             stringBuilderChannel.append("投诉订单: ").append("\n");
             stringBuilderChannel.append("投诉金额: ").append(amount).append("\n");
-            stringBuilderChannel.append("投诉前: ").append(oldChannelAllPaymentBalance).append("\n");
-            stringBuilderChannel.append("投诉后: ").append(newChannelAllPaymentBalance).append("\n");
+            stringBuilderChannel.append("投诉前: ").append(oldPaymentBalance).append("\n");
+            stringBuilderChannel.append("投诉后: ").append(newPaymentBalance).append("\n");
             SendMessage sendChannelMessage = new SendMessage(channelGroup.getGroupId(), stringBuilderChannel.toString());
             StringBuilder stringBuilderChannelOrder = new StringBuilder();
             stringBuilderChannelOrder.append("投诉订单: ").append("\n");
@@ -253,7 +267,7 @@ public class ComplaintHandler extends AbstractHandler {
             }
 
             try {
-                handlerManager.getAccountBookService().updateMutiPaymentBalanceByIdAndPaymentBalance(updateMerchantPaymentBalance, updateChannelPaymentBalance,updateChannelAllPaymentBalance);
+                handlerManager.getAccountBookService().updateMutiPaymentBalanceByIdAndPaymentBalance(updateMerchantPaymentBalance, updateChannelPaymentBalance, updateChannelAllPaymentBalance);
             } catch (Exception e) {
                 log.error("更新商户或通道余额失败: {}", e.getMessage());
                 e.printStackTrace();

+ 10 - 5
src/main/java/org/jebot/handler/impl/merchant/MerchantOneClickSettlementHandler.java

@@ -38,6 +38,10 @@ public class MerchantOneClickSettlementHandler extends AbstractHandler {
             return false;
         }
 
+        // 只处理来自用户的消息
+        if (message.isGroupMessage()) {
+            return false;
+        }
         if (message.messageTextIsEmpty()) {
             return false;
         }
@@ -74,11 +78,12 @@ public class MerchantOneClickSettlementHandler extends AbstractHandler {
                         return false;
                     }
 
-                    if (SettlementMch(message, mchGroup, payOrderList, todayMidnight, endDate)) {
-                        messageText.append(mchAccount.getName()).append(": 结算成功\n");
-                    } else {
-                        messageText.append(mchAccount.getName()).append(": 结算失败\n");
-                    }
+//                    if (SettlementMch(message, mchGroup, payOrderList, todayMidnight, endDate)) {
+//                        messageText.append(mchAccount.getName()).append(": 结算成功\n");
+//                    } else {
+//                        messageText.append(mchAccount.getName()).append(": 结算失败\n");
+//                    }
+                    SettlementMch(message, mchGroup, payOrderList, todayMidnight, endDate);
 
                     //防止发送消息过快
                     try {

+ 6 - 5
src/main/java/org/jebot/rest/BotRest.java

@@ -109,11 +109,12 @@ public class BotRest {
             botUser.setUserName("接口");
             botUser.setUserId(1L);
             message.setBotUser(botUser);
-            if (SettlementMch(message, mchGroup, payOrderList, todayMidnight, endDate)) {
-                messageText.append(mchAccount.getName()).append(": 结算成功\n");
-            } else {
-                messageText.append(mchAccount.getName()).append(": 结算失败\n");
-            }
+//            if (SettlementMch(message, mchGroup, payOrderList, todayMidnight, endDate)) {
+//                messageText.append(mchAccount.getName()).append(": 结算成功\n");
+//            } else {
+//                messageText.append(mchAccount.getName()).append(": 结算失败\n");
+//            }
+            SettlementMch(message, mchGroup, payOrderList, todayMidnight, endDate);
 
             // 防止发送消息过快
             try {