diff --git a/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java b/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java index a502bb8..3c08b52 100644 --- a/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java +++ b/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UAccountServiceImpl.java @@ -133,10 +133,10 @@ public class UAccountServiceImpl extends ServiceImpl i List balanceAccounts = accounts.stream().filter(account -> !AccountUtil.isPackageValid(account, current)) .collect(Collectors.toList()); + List billRules = billRuleMapper.selectList(Wrappers.lambdaQuery().eq(UBillRule::getEnable, true)); + Optional billRuleOptional = billRules.stream().findFirst(); // 统计已使用余额 if (CollUtil.isNotEmpty(balanceAccounts)) { - List billRules = billRuleMapper.selectList(Wrappers.lambdaQuery().eq(UBillRule::getEnable, true)); - Optional billRuleOptional = billRules.stream().findFirst(); if (billRuleOptional.isPresent()) { UBillRule billRule = billRuleOptional.get(); for (UAccount balanceAccount : balanceAccounts) { @@ -165,10 +165,10 @@ public class UAccountServiceImpl extends ServiceImpl i this.updateBatchById(packageAccounts); // 取消授权 - cancelAuthClient(); + cancelAuthClient(billRuleOptional.isPresent()); } - private void cancelAuthClient() { + private void cancelAuthClient(boolean enabledBalance) { // 查出所有已授权client, 根据client的site和mac去查当前user, 再查user的account是否有可用套餐和余额,没有则取消授权 ResponseEntity siteRes = omadaSiteApi.getSiteList(WifiConstants.PAGE, WifiConstants.PAGE_SIZE); Date current = new Date(); @@ -193,7 +193,7 @@ public class UAccountServiceImpl extends ServiceImpl i } UAccount account = this.getOne(Wrappers.lambdaQuery().eq(UAccount::getUserId, loginClient.getUserId()), false); // 套餐失效,但是有余额且没有已使用余额,reconnect - if (AccountUtil.isPackageUnValidBalanceValid(account, current)) { + if (enabledBalance && AccountUtil.isPackageUnValidBalanceValid(account, current)) { wifiApi.reconnectClient(site.getSiteId(), client.getMac()); } // 套餐有效,有已使用余额且余额扣去已使用余额大于0,reconnect