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 | 33 +++++++++++++++++++-------------- 1 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java b/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java index 14fd125..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); } // 浣欓鏍¢獙锛堜粎鍦ㄦ墸鍑忔椂锛� @@ -221,7 +221,7 @@ if (applyProvider && providerPointsChange != 0) { PointsFlow providerFlow = new PointsFlow(); providerFlow.setUserId(providerId); - providerFlow.setUnitId(providerId); + providerFlow.setUnitId(null); providerFlow.setDataType(ruleType); providerFlow.setDataCategory(addPointsFlowDTO.getCategory()); providerFlow.setPoints(providerPointsChange); @@ -233,8 +233,8 @@ if (!providerSaved) { throw new BusinessException("淇濆瓨鎻愪緵鑰呯Н鍒嗘祦姘村け璐�"); } - - updateProviderUnitPoints(providerId, providerPointsChange); + updateUserPointsByRule(providerId, null, userPointsChange); + // updateProviderUnitPoints(providerId, providerPointsChange); } return true; @@ -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)); +// } } } @@ -492,7 +495,9 @@ userPoints = new UserPoints(); userPoints.setUserId(userId); - userPoints.setUnitId(unitId); + if(StringUtils.hasText(unitId)){ + userPoints.setUnitId(unitId); + } userPoints.setBalance(pointsValue); userPoints.setTotalEarned(pointsValue > 0 ? pointsValue : 0); userPoints.setTotalConsumed(pointsValue < 0 ? Math.abs(pointsValue) : 0); @@ -522,7 +527,7 @@ } // 鏇存柊鍗曚綅绉垎璐︽埛 - QueryWrapper<UserPoints> unitWrapper = new QueryWrapper<>(); + /* QueryWrapper<UserPoints> unitWrapper = new QueryWrapper<>(); unitWrapper.eq("deleted", 0) .eq("unit_id", unitId); @@ -562,7 +567,7 @@ unitPoints.setUpdateTime(LocalDateTime.now()); userPointsMapper.updateById(unitPoints); - } + } */ } /** -- Gitblit v1.8.0