fix: 修复更换套餐问题
This commit is contained in:
@@ -13,5 +13,7 @@ public interface IWifiApi {
|
||||
|
||||
boolean cancelAuthClient(String siteId, String clientMac);
|
||||
|
||||
boolean reconnectClient(String siteId, String clientMac);
|
||||
|
||||
boolean updateClientRateLimitSetting(String siteId, String clientMac, ClientRateLimitSettingDto clientRateLimitSettingDto);
|
||||
}
|
||||
|
||||
@@ -34,6 +34,12 @@ public class OmadaWifiApi extends AbstractOmadaWifiApi {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean reconnectClient(String siteId, String clientMac) {
|
||||
omadaClientApi.reconnectClient(siteId, clientMac);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateClientRateLimitSetting(String siteId, String clientMac, ClientRateLimitSettingDto clientRateLimitSettingDto) {
|
||||
ClientRateLimitSetting clientRateLimitSetting = OmadaConvert.INSTANCE.toClientRateLimitSettingDto(clientRateLimitSettingDto);
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.wfc.user.service.IUClientService;
|
||||
import org.wfc.user.service.IUOrderService;
|
||||
import org.wfc.user.service.IUPackageService;
|
||||
import org.wfc.user.service.IURateLimitService;
|
||||
import org.wfc.user.util.AccountUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
@@ -71,12 +72,14 @@ public class UOrderServiceImpl extends ServiceImpl<UOrderMapper, UOrder> impleme
|
||||
// 保存或更新账户信息
|
||||
UAccount account = accountService.getOne(Wrappers.<UAccount>lambdaQuery().eq(UAccount::getUserId, order.getUserId()), false);
|
||||
Long accountId = null;
|
||||
boolean isValid = false;
|
||||
if (ObjectUtil.isNull(account)) {
|
||||
account = new UAccount();
|
||||
account.setUserId(order.getUserId());
|
||||
account.setBalance(BigDecimal.ZERO);
|
||||
} else {
|
||||
accountId = account.getId();
|
||||
isValid = AccountUtil.isValid(account, new Date());
|
||||
}
|
||||
if (OrderTypeEnum.PACKAGE.getCode().equals(order.getType())) {
|
||||
// 套餐
|
||||
@@ -96,10 +99,11 @@ public class UOrderServiceImpl extends ServiceImpl<UOrderMapper, UOrder> impleme
|
||||
List<UClient> clients = clientService.list(Wrappers.<UClient>lambdaQuery().eq(UClient::getUserId, order.getUserId()));
|
||||
for (UClient client : clients) {
|
||||
if (StrUtil.isNotBlank(client.getSiteId())) {
|
||||
// 先取消授权再重新授权,为了截取时间
|
||||
wifiApi.cancelAuthClient(client.getSiteId(), client.getClientMac());
|
||||
// 套餐生效已授权时,调reconnect重连接口,以便截取时间
|
||||
if (isValid) {
|
||||
wifiApi.reconnectClient(client.getSiteId(), client.getClientMac());
|
||||
}
|
||||
wifiApi.authClient(client.getSiteId(), client.getClientMac());
|
||||
|
||||
// 带宽限速
|
||||
if (account.getRateLimitEnable()) {
|
||||
ClientRateLimitSettingDto clientRateLimitSetting = new ClientRateLimitSettingDto();
|
||||
|
||||
Reference in New Issue
Block a user