From d1ff37370c51cf198f5315551b6d69770f5775f0 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Thu, 16 Jan 2025 10:26:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0Omada=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/wfc_system_db/wfc_system_db.sql | 3 +- sql/wfc_user_db/wfc_user_db.sql | 2 +- .../OmadaHistoryDataRetentionApi.java | 5 ++- .../org/wfc/system/api/RemoteUserService.java | 3 ++ .../factory/RemoteUserFallbackFactory.java | 5 +++ .../wfc/job/controller/SysJobController.java | 8 ++--- .../task/{CdrInfoTask.java => OmadaTask.java} | 14 +++++--- .../controller/SysDeviceController.java | 4 +++ .../wfc/system/service/ISysDeviceService.java | 2 ++ .../service/impl/SysDeviceServiceImpl.java | 34 +++++++++++++++++-- 10 files changed, 64 insertions(+), 16 deletions(-) rename wfc-modules/wfc-job/src/main/java/org/wfc/job/task/{CdrInfoTask.java => OmadaTask.java} (79%) diff --git a/sql/wfc_system_db/wfc_system_db.sql b/sql/wfc_system_db/wfc_system_db.sql index e455b4d..e1d48db 100644 --- a/sql/wfc_system_db/wfc_system_db.sql +++ b/sql/wfc_system_db/wfc_system_db.sql @@ -219,7 +219,8 @@ CREATE TABLE `sys_job` ( -- ---------------------------- -- Records of sys_job -- ---------------------------- -INSERT INTO `sys_job` VALUES (4, 'Omada定时任务', 'DEFAULT', 'cdrInfoTask.addCdrInfo', '0/30 * * * * ?', '3', '1', '0', 'admin', '2024-05-08 21:50:55', '', NULL, ''); +INSERT INTO `sys_job` VALUES (4, 'Omada同步任务', 'DEFAULT', 'omadaTask.syncJob', '0/30 * * * * ?', '3', '1', '0', 'admin', '2024-05-08 21:50:55', '', NULL, ''); +INSERT INTO `sys_job` VALUES (5, 'Omada初始化任务', 'DEFAULT', 'omadaTask.initJob', '0 0 0/1 * * ? ', '3', '1', '0', 'admin', '2024-05-08 21:50:55', '', NULL, ''); -- ---------------------------- -- Table structure for sys_job_log diff --git a/sql/wfc_user_db/wfc_user_db.sql b/sql/wfc_user_db/wfc_user_db.sql index 537edc4..4f32f66 100644 --- a/sql/wfc_user_db/wfc_user_db.sql +++ b/sql/wfc_user_db/wfc_user_db.sql @@ -129,7 +129,7 @@ CREATE TABLE `u_bill_rule` ( -- ---------------------------- -- Records of u_bill_rule -- ---------------------------- -INSERT INTO `u_bill_rule` VALUES (1, 1.0000, 1, 1, 0, 0, NULL, NULL, 2, '2025-01-07 17:11:30'); +INSERT INTO `u_bill_rule` VALUES (1, 1.0000, 1, 1, 1, 0, NULL, NULL, 2, '2025-01-07 17:11:30'); -- ---------------------------- -- Table structure for u_cdr diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/maintenance/OmadaHistoryDataRetentionApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/maintenance/OmadaHistoryDataRetentionApi.java index e35d917..b45c7f6 100644 --- a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/maintenance/OmadaHistoryDataRetentionApi.java +++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/maintenance/OmadaHistoryDataRetentionApi.java @@ -8,14 +8,13 @@ import io.swagger.annotations.ApiResponses; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.wfc.omada.config.FeignConfig; import org.wfc.omada.api.maintenance.model.ModifyHistoryRetentionOpenApiVo; import org.wfc.omada.api.maintenance.model.OperationResponseHistoryRetentionOpenApiVo; import org.wfc.omada.api.maintenance.model.OperationResponseWithoutResult; +import org.wfc.omada.config.FeignConfig; import javax.validation.Valid; @javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:40:03.102+08:00[Asia/Shanghai]") @@ -38,7 +37,7 @@ public interface OmadaHistoryDataRetentionApi { @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/retention", produces = "*/*", method = RequestMethod.GET) - ResponseEntity getDataRetention(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId); + ResponseEntity getDataRetention(); /** diff --git a/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/RemoteUserService.java b/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/RemoteUserService.java index edc345e..9636e6f 100644 --- a/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/RemoteUserService.java +++ b/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/RemoteUserService.java @@ -54,4 +54,7 @@ public interface RemoteUserService @PostMapping("/device/deviceJob") public R deviceJob(); + + @PostMapping("/device/settingJob") + public R settingJob(); } diff --git a/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/factory/RemoteUserFallbackFactory.java b/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/factory/RemoteUserFallbackFactory.java index 8a21907..4009a87 100644 --- a/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/factory/RemoteUserFallbackFactory.java +++ b/wfc-api/wfc-api-system/src/main/java/org/wfc/system/api/factory/RemoteUserFallbackFactory.java @@ -47,6 +47,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory deviceJob() { return R.fail("记录设备信息失败:" + throwable.getMessage()); } + + @Override + public R settingJob() { + return R.fail("oamda setting job error:" + throwable.getMessage()); + } }; } } diff --git a/wfc-modules/wfc-job/src/main/java/org/wfc/job/controller/SysJobController.java b/wfc-modules/wfc-job/src/main/java/org/wfc/job/controller/SysJobController.java index de648c8..7d82c1e 100644 --- a/wfc-modules/wfc-job/src/main/java/org/wfc/job/controller/SysJobController.java +++ b/wfc-modules/wfc-job/src/main/java/org/wfc/job/controller/SysJobController.java @@ -24,7 +24,7 @@ import org.wfc.common.log.enums.BusinessType; import org.wfc.common.security.utils.SecurityUtils; import org.wfc.job.domain.SysJob; import org.wfc.job.service.ISysJobService; -import org.wfc.job.task.CdrInfoTask; +import org.wfc.job.task.OmadaTask; import org.wfc.job.util.CronUtils; import org.wfc.job.util.ScheduleUtils; @@ -44,7 +44,7 @@ public class SysJobController extends BaseController private ISysJobService jobService; @Autowired - private CdrInfoTask cdrInfoTask; + private OmadaTask omadaTask; /** * 查询定时任务列表 @@ -175,8 +175,8 @@ public class SysJobController extends BaseController public AjaxResult run(@RequestBody SysJob job) throws SchedulerException { SysJob sysJob = jobService.selectJobById(job.getJobId()); - if (sysJob != null && sysJob.getInvokeTarget().contains("cdrInfoTask")) { - R omadaResult = cdrInfoTask.testOmadaApi(); + if (sysJob != null && sysJob.getInvokeTarget().contains("omadaTask")) { + R omadaResult = omadaTask.testOmadaApi(); if (omadaResult.getCode() != 200) { return error(omadaResult.getMsg()); } diff --git a/wfc-modules/wfc-job/src/main/java/org/wfc/job/task/CdrInfoTask.java b/wfc-modules/wfc-job/src/main/java/org/wfc/job/task/OmadaTask.java similarity index 79% rename from wfc-modules/wfc-job/src/main/java/org/wfc/job/task/CdrInfoTask.java rename to wfc-modules/wfc-job/src/main/java/org/wfc/job/task/OmadaTask.java index 4891d82..1af1ec0 100644 --- a/wfc-modules/wfc-job/src/main/java/org/wfc/job/task/CdrInfoTask.java +++ b/wfc-modules/wfc-job/src/main/java/org/wfc/job/task/OmadaTask.java @@ -8,13 +8,13 @@ import org.wfc.system.api.RemoteUserService; import org.wfc.user.api.RemoteUUserService; /** - * @description: 话单信息任务 + * @description: omada任务 * @author: cyc - * @since: 2024-12-10 + * @since: 2025-01-16 */ @Slf4j -@Component("cdrInfoTask") -public class CdrInfoTask { +@Component("omadaTask") +public class OmadaTask { @Autowired private RemoteUUserService remoteUUserService; @@ -22,7 +22,7 @@ public class CdrInfoTask { @Autowired private RemoteUserService remoteUserService; - public void addCdrInfo() { + public void syncJob() { long startTime = System.currentTimeMillis(); remoteUserService.deviceJob(); remoteUUserService.addCdrInfoByOmadaApi(); @@ -33,4 +33,8 @@ public class CdrInfoTask { public R testOmadaApi() { return remoteUserService.deviceJob(); } + + public R initJob() { + return remoteUserService.settingJob(); + } } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysDeviceController.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysDeviceController.java index 55d4f38..f1acf54 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysDeviceController.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysDeviceController.java @@ -74,4 +74,8 @@ public class SysDeviceController extends BaseController { return toAjax(sysDeviceService.deviceJob()); } + @PostMapping("/settingJob") + public AjaxResult settingJob() { + return toAjax(sysDeviceService.settingJob()); + } } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysDeviceService.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysDeviceService.java index 3e32418..6fe4a3e 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysDeviceService.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysDeviceService.java @@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface ISysDeviceService extends IService { boolean deviceJob(); + + boolean settingJob(); } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDeviceServiceImpl.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDeviceServiceImpl.java index e2471c6..2480916 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDeviceServiceImpl.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysDeviceServiceImpl.java @@ -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 siteList = omadaSiteApi.getSiteList(1, 1000); if (siteList.getBody() == null) { @@ -58,6 +64,7 @@ public class SysDeviceServiceImpl extends ServiceImpl sites = siteList.getBody().getResult().getData(); for (SiteSummaryInfo site : sites) { ResponseEntity deviceList = omadaDeviceApi.getDeviceList(site.getSiteId(), 1, 1000); @@ -84,4 +91,27 @@ public class SysDeviceServiceImpl extends ServiceImpl 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; + } + }