diff --git a/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java b/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java
index d3516af..f093179 100644
--- a/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java
+++ b/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UCdrServiceImpl.java
@@ -1,5 +1,6 @@
package org.wfc.user.service.impl;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,6 +21,8 @@ import org.wfc.omada.api.device.model.OperationResponseGridVoDeviceInfo;
import org.wfc.omada.api.organization.OmadaSiteApi;
import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo;
import org.wfc.omada.api.organization.model.SiteSummaryInfo;
+import org.wfc.user.api.IWifiApi;
+import org.wfc.user.domain.UAccount;
import org.wfc.user.domain.UCdr;
import org.wfc.user.domain.UCdrHistory;
import org.wfc.user.domain.UClient;
@@ -34,8 +37,12 @@ import org.wfc.user.service.IUCdrHistoryService;
import org.wfc.user.service.IUCdrService;
import org.wfc.user.service.IUClientService;
import org.wfc.user.service.IUDeviceService;
+import org.wfc.user.util.AccountUtil;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
*
@@ -72,6 +79,9 @@ public class UCdrServiceImpl extends ServiceImpl implements IU
@Autowired
private IUAccountService accountService;
+ @Autowired
+ private IWifiApi wifiApi;
+
@Override
public UCdrUserVo getByUser() {
@@ -107,6 +117,8 @@ public class UCdrServiceImpl extends ServiceImpl implements IU
continue;
}
List clients = clientResp.getBody().getResult().getData();
+ authClients(clients);
+
for (ClientInfo client : clients) {
// 添加用户设备
UClient hasClient = addClient(client);
@@ -125,6 +137,30 @@ public class UCdrServiceImpl extends ServiceImpl implements IU
accountService.statAndCancelAuthUser();
}
+ private void authClients(List clients) {
+ List clientMacs = clients.stream().filter(c -> ObjectUtil.isNotNull(c.getAuthStatus()) && c.getAuthStatus() != 2)
+ .map(ClientInfo::getMac).collect(Collectors.toList());
+ if (CollUtil.isEmpty(clientMacs)) {
+ return;
+ }
+ List unAuthClients = clientService.list(Wrappers.lambdaQuery().isNotNull(UClient::getUserId).in(UClient::getClientMac, clientMacs));
+ List userIds = unAuthClients.stream().map(UClient::getUserId).collect(Collectors.toList());
+ if (CollUtil.isEmpty(userIds)) {
+ return;
+ }
+ List accounts = accountService.list(Wrappers.lambdaQuery().in(UAccount::getUserId, userIds));
+ for (UClient unAuthClient : unAuthClients) {
+ for (UAccount account : accounts) {
+ if (Objects.equals(unAuthClient.getUserId(), account.getUserId())) {
+ if (AccountUtil.isValid(account, new Date())) {
+ wifiApi.authClient(unAuthClient.getSiteId(), unAuthClient.getClientMac());
+ }
+ }
+ }
+
+ }
+ }
+
private void addCdrHistory(SiteSummaryInfo site, String mac, Long cdrId) {
// 话单历史
ResponseEntity pastConnResp = omadaClientInsightApi.getGridPastConnections(site.getSiteId(), 1, 1000, mac);
diff --git a/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UOrderServiceImpl.java b/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UOrderServiceImpl.java
index 3b5d191..dd3f210 100644
--- a/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UOrderServiceImpl.java
+++ b/wfc-modules/wfc-user/src/main/java/org/wfc/user/service/impl/UOrderServiceImpl.java
@@ -124,11 +124,11 @@ public class UOrderServiceImpl extends ServiceImpl impleme
List clients = clientService.list(Wrappers.lambdaQuery().eq(UClient::getUserId, order.getUserId()));
for (UClient client : clients) {
if (StrUtil.isNotBlank(client.getSiteId())) {
+ wifiApi.authClient(client.getSiteId(), client.getClientMac());
// 套餐生效已授权时,调reconnect重连接口,以便截取时间
if (isValid) {
wifiApi.reconnectClient(client.getSiteId(), client.getClientMac());
}
- wifiApi.authClient(client.getSiteId(), client.getClientMac());
// 带宽限速
ClientRateLimitSettingDto clientRateLimitSetting = OmadaConvert.INSTANCE.toClientRateLimitSettingDto(account);
wifiApi.updateClientRateLimitSetting(client.getSiteId(), client.getClientMac(), clientRateLimitSetting);
@@ -195,7 +195,7 @@ public class UOrderServiceImpl extends ServiceImpl impleme
// 测试
if (billRule.getTraffic() == 1) {
// 支付成功回调
- paySuccess(order.getId());
+// paySuccess(order.getId());
}
});