From b5b7ce2ad63521989fd208c78efae8ef8d9a1063 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Sat, 15 Feb 2025 15:23:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ap=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDeviceController.java | 29 +++++++++ .../wfc/system/service/ISysDeviceService.java | 13 ++++ .../service/impl/SysDeviceServiceImpl.java | 60 +++++++++++++++++++ 3 files changed, 102 insertions(+) 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 a5ad48e..4a3cb85 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 @@ -15,6 +15,9 @@ import org.wfc.common.core.domain.R; import org.wfc.common.core.web.controller.BaseController; import org.wfc.common.core.web.domain.AjaxResult; import org.wfc.common.core.web.page.TableDataInfo; +import org.wfc.omada.api.device.model.AdoptDeviceRequest; +import org.wfc.omada.api.device.model.ApGeneralConfig; +import org.wfc.omada.api.device.model.DeviceListAddBySnOpenApiVo; import org.wfc.system.domain.SysDevice; import org.wfc.system.service.ISysDeviceService; @@ -86,4 +89,30 @@ public class SysDeviceController extends BaseController { public R testJob() { return R.ok(sysDeviceService.testJob()); } + + @PostMapping("/forget/{siteId}/{deviceMac}") + public R forgetDevice(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac) { + return R.ok(sysDeviceService.forgetDevice(siteId, deviceMac)); + } + + @PostMapping("/add/{siteId}") + public R addDevice(@PathVariable(required = true) String siteId, @RequestBody(required = false) DeviceListAddBySnOpenApiVo deviceListAddBySnOpenApiVo) { + return R.ok(sysDeviceService.addDeviceBySn(siteId, deviceListAddBySnOpenApiVo)); + } + + @PostMapping("/startAdopt/{siteId}/{deviceMac}") + public R startAdoptDevice(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac, @RequestBody(required = false) AdoptDeviceRequest adoptDeviceRequest) { + return R.ok(sysDeviceService.startAdoptDevice(siteId, deviceMac, adoptDeviceRequest)); + } + + @PostMapping("/reboot/{siteId}/{deviceMac}") + public R rebootDevice(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac) { + return R.ok(sysDeviceService.rebootDevice(siteId, deviceMac)); + } + + @PostMapping("/updateConfig/{siteId}/{deviceMac}") + public R updateConfig(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac, @RequestBody(required = false) ApGeneralConfig apGeneralConfig) { + return R.ok(sysDeviceService.updateConfig(siteId, deviceMac, apGeneralConfig)); + } + } 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 6c9afbb..52bc28b 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 @@ -1,5 +1,8 @@ package org.wfc.system.service; +import org.wfc.omada.api.device.model.AdoptDeviceRequest; +import org.wfc.omada.api.device.model.ApGeneralConfig; +import org.wfc.omada.api.device.model.DeviceListAddBySnOpenApiVo; import org.wfc.system.domain.SysDevice; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +21,14 @@ public interface ISysDeviceService extends IService { boolean settingJob(); String testJob(); + + boolean forgetDevice(String siteId, String deviceMac); + + boolean addDeviceBySn(String siteId, DeviceListAddBySnOpenApiVo deviceListAddBySnOpenApiVo); + + boolean startAdoptDevice(String siteId, String deviceMac, AdoptDeviceRequest adoptDeviceRequest); + + boolean rebootDevice(String siteId, String deviceMac); + + boolean updateConfig(String siteId, String deviceMac, ApGeneralConfig apGeneralConfig); } 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 c602a37..e720ae9 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 @@ -3,14 +3,23 @@ package org.wfc.system.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; 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.core.constant.WifiConstants; +import org.wfc.common.core.exception.OmadaException; import org.wfc.common.redis.service.RedisService; +import org.wfc.omada.api.device.OmadaApApi; import org.wfc.omada.api.device.OmadaDeviceApi; +import org.wfc.omada.api.device.model.AdoptDeviceRequest; +import org.wfc.omada.api.device.model.ApGeneralConfig; import org.wfc.omada.api.device.model.DeviceInfo; +import org.wfc.omada.api.device.model.DeviceListAddBySnOpenApiVo; +import org.wfc.omada.api.device.model.OperationResponseDeviceAddRespOpenApiVo; import org.wfc.omada.api.device.model.OperationResponseGridVoDeviceInfo; +import org.wfc.omada.api.device.model.OperationResponseWithoutResult; import org.wfc.omada.api.maintenance.OmadaHistoryDataRetentionApi; import org.wfc.omada.api.maintenance.model.HistoryRetentionOpenApiVo; import org.wfc.omada.api.maintenance.model.ModifyHistoryRetentionOpenApiVo; @@ -35,6 +44,7 @@ import java.util.stream.Collectors; * @author sys * @since 2025-01-07 */ +@Slf4j @Service public class SysDeviceServiceImpl extends ServiceImpl implements ISysDeviceService { @@ -47,6 +57,9 @@ public class SysDeviceServiceImpl extends ServiceImpl response = omadaDeviceApi.forgetDevice(siteId, deviceMac); + + checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } + + private static void checkResponse(Integer errorCode, String msg) { + if (errorCode != WifiConstants.ERROR_CODE_SUCCESS) { + log.error("Omada error msg: {}", msg); + throw new OmadaException(msg); + } + } + + @Override + public boolean addDeviceBySn(String siteId, DeviceListAddBySnOpenApiVo deviceListAddBySnOpenApiVo) { + ResponseEntity response = omadaDeviceApi.addDevicesBySn(siteId, deviceListAddBySnOpenApiVo); + + checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } + + @Override + public boolean startAdoptDevice(String siteId, String deviceMac, AdoptDeviceRequest adoptDeviceRequest) { + ResponseEntity response = omadaDeviceApi.adoptDevice(siteId, deviceMac, adoptDeviceRequest); + + checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } + + @Override + public boolean rebootDevice(String siteId, String deviceMac) { + ResponseEntity response = omadaDeviceApi.rebootDevice(siteId, deviceMac); + + checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } + + @Override + public boolean updateConfig(String siteId, String deviceMac, ApGeneralConfig apGeneralConfig) { + ResponseEntity response = omadaApApi.modifyGeneralConfig2(siteId, deviceMac, apGeneralConfig); + + checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } }