From 2b0b64182263d922b946ec898070e59b602382dc Mon Sep 17 00:00:00 2001
From: Bang Hu <hu_bang@hotmail.com>
Date: 星期四, 11 九月 2025 18:38:09 +0800
Subject: [PATCH] 交易审批多节点问题处理完善

---
 src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java b/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java
index 00d5dfd..c09eb66 100644
--- a/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java
+++ b/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java
@@ -182,11 +182,11 @@
         }
 
         // 姣忔棩涓婇檺鏍¢獙锛堝垎鍒牎楠岋級
-        if (applyUser && userRule.getIsLimit() != null && userRule.getIsLimit() == 0) {
+        if (applyUser && userRule.getIsLimit() != null && userRule.getIsLimit() == 1) {
             checkDailyLimitByRule(userId, unitId, userRule, userPointsChange);
         }
-        if (applyProvider && providerRule.getIsLimit() != null && providerRule.getIsLimit() == 0) {
-            checkDailyLimitByRule(providerId, providerId, providerRule, providerPointsChange);
+        if (applyProvider && providerRule.getIsLimit() != null && providerRule.getIsLimit() == 1) {
+            checkDailyLimitByRule(providerId, null, providerRule, providerPointsChange);
         }
 
         // 浣欓鏍¢獙锛堜粎鍦ㄦ墸鍑忔椂锛�
@@ -357,11 +357,14 @@
         QueryWrapper<PointsFlow> wrapper = new QueryWrapper<>();
         wrapper.eq("deleted", 0)
                .eq("user_id", userId)
-               .eq("unit_id", unitId)
 //               .eq("data_category", pointsRule.getRuleName())
                 .eq("rule_id",pointsRule.getId())
+                // .eq("data_type", 0)
                .ge("flow_time", startOfDay)
                .le("flow_time", endOfDay);
+        if(StringUtils.hasText(unitId)){
+            wrapper.eq("unit_id", unitId);
+        }
 
         List<PointsFlow> todayFlows = list(wrapper);
         
@@ -374,14 +377,14 @@
         Integer dailyLimit = pointsRule.getDailyLimit();
         if (dailyLimit != null && dailyLimit > 0) {
             // 濡傛灉浠婃棩绱绉垎瓒呰繃姣忔棩涓婇檺锛屽垯鎶涘嚭寮傚父
-            if (Math.abs(todayTotal) >= dailyLimit) {
+            if (Math.abs(todayTotal) > dailyLimit) {
                 throw new BusinessException("浠婃棩璇ヨ鍒欑Н鍒嗗凡杈句笂闄�: " + dailyLimit);
             }
             
             // 濡傛灉鍔犱笂褰撳墠绉垎浼氳秴杩囨瘡鏃ヤ笂闄愶紝鍒欐姏鍑哄紓甯�
-            if (Math.abs(todayTotal + currentPoints) > dailyLimit) {
-                throw new BusinessException("鏈绉垎鎿嶄綔灏嗚秴杩囨瘡鏃ヤ笂闄�: " + dailyLimit + "锛屽綋鍓嶅凡绱: " + Math.abs(todayTotal));
-            }
+//            if (Math.abs(todayTotal + currentPoints) > dailyLimit) {
+//                throw new BusinessException("鏈绉垎鎿嶄綔灏嗚秴杩囨瘡鏃ヤ笂闄�: " + dailyLimit + "锛屽綋鍓嶅凡绱: " + Math.abs(todayTotal));
+//            }
         }
     }
 

--
Gitblit v1.8.0