2
0

feat: 添加Omada初始化任务

This commit is contained in:
caiyuchao
2025-01-16 10:26:15 +08:00
parent e173c62c0c
commit d1ff37370c
10 changed files with 64 additions and 16 deletions

View File

@@ -74,4 +74,8 @@ public class SysDeviceController extends BaseController {
return toAjax(sysDeviceService.deviceJob());
}
@PostMapping("/settingJob")
public AjaxResult settingJob() {
return toAjax(sysDeviceService.settingJob());
}
}

View File

@@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface ISysDeviceService extends IService<SysDevice> {
boolean deviceJob();
boolean settingJob();
}

View File

@@ -6,11 +6,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.wfc.common.redis.service.RedisService;
import org.wfc.omada.api.device.OmadaDeviceApi;
import org.wfc.omada.api.device.model.DeviceInfo;
import org.wfc.omada.api.device.model.OperationResponseGridVoDeviceInfo;
import org.wfc.omada.api.maintenance.OmadaHistoryDataRetentionApi;
import org.wfc.omada.api.maintenance.model.HistoryRetentionOpenApiVo;
import org.wfc.omada.api.maintenance.model.ModifyHistoryRetentionOpenApiVo;
import org.wfc.omada.api.maintenance.model.OperationResponseHistoryRetentionOpenApiVo;
import org.wfc.omada.api.organization.OmadaSiteApi;
import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo;
import org.wfc.omada.api.organization.model.SiteSummaryInfo;
@@ -40,6 +43,9 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
@Autowired
private OmadaDeviceApi omadaDeviceApi;
@Autowired
private OmadaHistoryDataRetentionApi omadaHistoryDataRetentionApi;
@Autowired
private RedisService redisService;
@@ -47,7 +53,7 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
private static final String REDIS_REFRESH_TOKEN = "wfc-api-omada:refresh-token";
private static final int OMADA_ERROR_CODE = -44112;
@Transactional(rollbackFor = Exception.class)
// @Transactional(rollbackFor = Exception.class)
public boolean deviceJob() {
ResponseEntity<OperationResponseGridVoSiteSummaryInfo> siteList = omadaSiteApi.getSiteList(1, 1000);
if (siteList.getBody() == null) {
@@ -58,6 +64,7 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
redisService.deleteObject(REDIS_ACCESS_TOKEN);
redisService.deleteObject(REDIS_REFRESH_TOKEN);
}
settingJob();
List<SiteSummaryInfo> sites = siteList.getBody().getResult().getData();
for (SiteSummaryInfo site : sites) {
ResponseEntity<OperationResponseGridVoDeviceInfo> deviceList = omadaDeviceApi.getDeviceList(site.getSiteId(), 1, 1000);
@@ -84,4 +91,27 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
return true;
}
public boolean settingJob() {
// 启用Omada历史记录保留
ResponseEntity<OperationResponseHistoryRetentionOpenApiVo> dataRetentionRes = omadaHistoryDataRetentionApi.getDataRetention();
if (dataRetentionRes.getBody() == null) {
return false;
}
HistoryRetentionOpenApiVo historyRetention = dataRetentionRes.getBody().getResult();
if (!historyRetention.getClientsDataEnable()) {
ModifyHistoryRetentionOpenApiVo modify = new ModifyHistoryRetentionOpenApiVo();
modify.setClientsDataEnable(true);
modify.setClientHistory(31);
modify.setKnownClient(31);
modify.setDaily(90);
modify.setWeekly(180);
modify.setPortalAuth(31);
modify.setLog(31);
modify.setRogueAp(31);
omadaHistoryDataRetentionApi.modifyRetention(modify);
}
return true;
}
}