From 595b7935a30e84fba1bc3561d05f9d19d3e32e1f Mon Sep 17 00:00:00 2001
From: Administrator <1101184511@qq.com>
Date: 星期三, 23 四月 2025 00:45:48 +0800
Subject: [PATCH] 后台管理页面完成

---
 src/main/java/com/taoke/autopay/controller/client/OrderController.java |   39 ++++++++++++++++++++++++---------------
 1 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/taoke/autopay/controller/client/OrderController.java b/src/main/java/com/taoke/autopay/controller/client/OrderController.java
index 4fe6b87..dc44d01 100644
--- a/src/main/java/com/taoke/autopay/controller/client/OrderController.java
+++ b/src/main/java/com/taoke/autopay/controller/client/OrderController.java
@@ -15,6 +15,7 @@
 import com.taoke.autopay.exception.WxOrderCountException;
 import com.taoke.autopay.factory.OrderFactory;
 import com.taoke.autopay.manager.OrderPayFailProcessor;
+import com.taoke.autopay.manager.PayCountVerifyManager;
 import com.taoke.autopay.service.*;
 import com.taoke.autopay.utils.*;
 import com.taoke.autopay.utils.order.DYOrderApi;
@@ -94,6 +95,9 @@
 
     @Resource
     private UserSettingService userSettingService;
+
+    @Resource
+    private PayCountVerifyManager payCountVerifyManager;
 
 
     @ResponseBody
@@ -236,18 +240,7 @@
 
             // 楠岃瘉娓犻亾鏀粯娆℃暟鏄惁杈惧埌涓婇檺
             if (order.getUid() != null) {
-                OrderCountTypeEnum orderCountType=null;
-                if(orderType==Constant.ORDER_TYPE_DY){
-                    orderCountType=OrderCountTypeEnum.DY_ORDER_PAY;
-                }else if(orderType==Constant.ORDER_TYPE_KS){
-                    orderCountType=OrderCountTypeEnum.KS_ORDER_PAY;
-                }
-                long todayCount = wxUserOrderCountService.sum(order.getUid(), orderCountType, orderChannel, TimeUtil.getGernalTime(System.currentTimeMillis(), Constant.DB_DAY_FORMAT));
-                long totalCount = wxUserOrderCountService.sum(order.getUid(), orderCountType, null, null);
-                int maxPayCount = userSettingService.getLimitCountByTotalCount(orderType, totalCount, orderChannel);
-                if (todayCount >= maxPayCount) {
-                    throw new Exception(String.format("鑰侀搧浠婃棩宸茶揪鏀粯娆℃暟(%s)涓婇檺锛�%s", orderChannel.getName(), maxPayCount));
-                }
+                payCountVerifyManager.verifyPayCount(order.getUid(), orderType, orderChannel);
             }
 
             // 璁剧疆杩涘叆
@@ -311,14 +304,15 @@
         }
         OrderChannelEnum orderChannel = OrderChannelUtil.getChannelByKey(keyOrder.getOrderChannel());
         if (orderChannel != OrderChannelEnum.unknown) {
-            // 涓嶆槸鍗¢噾棰濈殑璁㈠崟鍙洿鎺ユ敮浠�
+            // 纭畾娓犻亾鐨勮鍗曞彲鐩存帴鏀粯
             return JsonUtil.loadTrueResult("");
         }
 
         // 鑾峰彇鍗¢噾棰濈殑璁剧疆淇℃伅
         PayMoneySetting payMoneySetting = payMoneySettingService.getSettingByMoney(keyOrder.getOrderMoney());
         if (payMoneySetting == null) {
-            return JsonUtil.loadFalseResult("璇ラ噾棰濅笉灞炰簬鍗¢噾棰濊寖鍥�");
+            keyOrderService.rejectPay(keyOrder.getId(),"浠樻閲戦涓嶅睘浜庡崱閲戦鑼冨洿");
+            return JsonUtil.loadFalseResult("浠樻閲戦涓嶅睘浜庡崱閲戦鑼冨洿");
         }
         if (payMoneySetting.getVerifyMerchantChannel() == null || payMoneySetting.getVerifyMerchantChannel() == OrderChannelEnum.unknown) {
             // 娌℃湁璁剧疆鏍¢獙娓犻亾
@@ -329,12 +323,27 @@
             // 鐩墠鍙垽鏂秴浜剑
             boolean isCanPay = OrderChannelApiUtil.isMerchantCanPay(payMoneySetting.getVerifyMerchantChannel(), merchant, keyOrder.getOrderMoney());
             if (isCanPay) {
+                // 閫氳繃鍟嗗鏍¢獙
+                try {
+                    payCountVerifyManager.verifyPayCount(keyOrder.getUid(), keyOrder.getOrderType(), payMoneySetting.getVerifyMerchantChannel());
+                }catch (KeyOrderException ee){
+                    // 鎷掔粷鏀粯
+                    keyOrderService.rejectPay(keyOrder.getId(), ee.getMessage());
+                    return JsonUtil.loadFalseResult(ee.getMessage());
+                }finally {
+                    // 鏇存柊娓犻亾
+                    KeyOrder update = new KeyOrder();
+                    update.setId(keyOrder.getId());
+                    update.setOrderChannel(payMoneySetting.getVerifyMerchantChannel().getKey());
+                    keyOrderService.update(update);
+                }
                 return JsonUtil.loadTrueResult("");
             } else {
+                // 鏈�氳繃鍟嗗鏍¢獙
+                keyOrderService.rejectPay(keyOrder.getId(),"鍟嗗鏍¢獙鏈�氳繃");
                 return JsonUtil.loadFalseResult("鍟嗗鏍¢獙鏈�氳繃");
             }
         } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
             return JsonUtil.loadFalseResult(e.getMessage());
         }
     }

--
Gitblit v1.8.0