2
0

feat: ap管理功能

This commit is contained in:
caiyuchao
2025-02-15 15:23:14 +08:00
parent 65e49ffdc2
commit b5b7ce2ad6
3 changed files with 102 additions and 0 deletions

View File

@@ -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<String> testJob() {
return R.ok(sysDeviceService.testJob());
}
@PostMapping("/forget/{siteId}/{deviceMac}")
public R<Boolean> forgetDevice(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac) {
return R.ok(sysDeviceService.forgetDevice(siteId, deviceMac));
}
@PostMapping("/add/{siteId}")
public R<Boolean> addDevice(@PathVariable(required = true) String siteId, @RequestBody(required = false) DeviceListAddBySnOpenApiVo deviceListAddBySnOpenApiVo) {
return R.ok(sysDeviceService.addDeviceBySn(siteId, deviceListAddBySnOpenApiVo));
}
@PostMapping("/startAdopt/{siteId}/{deviceMac}")
public R<Boolean> 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<Boolean> rebootDevice(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac) {
return R.ok(sysDeviceService.rebootDevice(siteId, deviceMac));
}
@PostMapping("/updateConfig/{siteId}/{deviceMac}")
public R<Boolean> updateConfig(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac, @RequestBody(required = false) ApGeneralConfig apGeneralConfig) {
return R.ok(sysDeviceService.updateConfig(siteId, deviceMac, apGeneralConfig));
}
}

View File

@@ -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<SysDevice> {
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);
}

View File

@@ -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<SysDeviceMapper, SysDevice> implements ISysDeviceService {
@@ -47,6 +57,9 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
@Autowired
private OmadaHistoryDataRetentionApi omadaHistoryDataRetentionApi;
@Autowired
private OmadaApApi omadaApApi;
@Autowired
private RedisService redisService;
@@ -126,4 +139,51 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
}
return siteList.getBody().getMsg();
}
@Override
public boolean forgetDevice(String siteId, String deviceMac) {
ResponseEntity<OperationResponseWithoutResult> 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<OperationResponseDeviceAddRespOpenApiVo> 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<OperationResponseWithoutResult> 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<OperationResponseWithoutResult> 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<OperationResponseWithoutResult> response = omadaApApi.modifyGeneralConfig2(siteId, deviceMac, apGeneralConfig);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
}