2
0

feat: site管理

This commit is contained in:
caiyuchao
2025-02-18 15:28:31 +08:00
parent 204c59c065
commit 51c48672d7
7 changed files with 168 additions and 7 deletions

View File

@@ -410,6 +410,11 @@ public interface OmadaDeviceApi {
method = RequestMethod.GET)
ResponseEntity<OperationResponseGridVoDeviceInfo> getDeviceList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 11000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize);
@RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices",
produces = "*/*",
method = RequestMethod.GET)
ResponseEntity<OperationResponseGridVoDeviceInfo> getDeviceList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 11000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize, @ApiParam(value = "Fuzzy query parameters, support field name,mac,ip") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
/**
* GET /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/latest-firmware-info : Get the latest firmware info of the device

View File

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.wfc.common.core.domain.R;
import org.wfc.common.core.web.controller.BaseController;
@@ -38,13 +39,9 @@ public class SysDeviceController extends BaseController {
@Autowired
private ISysDeviceService sysDeviceService;
@GetMapping("/page")
public TableDataInfo page(SysDevice sysDevice) {
startPage();
List<SysDevice> list = sysDeviceService.list(Wrappers.<SysDevice>lambdaQuery()
.like(SysDevice::getName, sysDevice.getName())
.like(SysDevice::getMac, sysDevice.getMac()));
return getDataTable(list);
@GetMapping("/page/{siteId}")
public TableDataInfo page(@PathVariable String siteId, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize, @RequestParam(value = "searchKey", required = false) String searchKey) {
return sysDeviceService.getDeviceList(siteId, pageNum, pageSize, searchKey);
}
@GetMapping("/list")

View File

@@ -0,0 +1,57 @@
package org.wfc.system.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.wfc.common.core.domain.R;
import org.wfc.common.core.web.controller.BaseController;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.omada.api.organization.model.CreateSiteEntity;
import org.wfc.omada.api.organization.model.SiteEntity;
import org.wfc.omada.api.organization.model.UpdateSiteEntity;
import org.wfc.system.service.ISysSiteService;
/**
* @description: site controller
* @author: cyc
* @since: 2025-02-18
*/
@RestController
@RequestMapping("/site")
public class SysSiteController extends BaseController {
@Autowired
private ISysSiteService siteService;
@GetMapping("/page")
public TableDataInfo getSiteList(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
return siteService.getSiteList(pageNum, pageSize);
}
@GetMapping("/{siteId}")
public R<SiteEntity> getSiteInfo(@PathVariable(required = true) String siteId) {
return R.ok(siteService.getSiteEntity(siteId));
}
@PostMapping
public R<Boolean> createNewSite(@RequestBody(required = false) CreateSiteEntity createSiteEntity) {
return R.ok(siteService.createNewSite(createSiteEntity));
}
@PutMapping("/{siteId}")
public R<Boolean> updateSite(@PathVariable(required = true) String siteId, @RequestBody(required = false) UpdateSiteEntity updateSiteEntity) {
return R.ok(siteService.updateSiteEntity(siteId, updateSiteEntity));
}
@DeleteMapping("/{siteId}")
public R<Boolean> deleteSite(@PathVariable(required = true) String siteId) {
return R.ok(siteService.deleteSite(siteId));
}
}

View File

@@ -1,5 +1,6 @@
package org.wfc.system.service;
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;
@@ -33,4 +34,6 @@ public interface ISysDeviceService extends IService<SysDevice> {
boolean updateConfig(String siteId, String deviceMac, ApGeneralConfig apGeneralConfig);
ApGeneralConfig getConfig(String siteId, String deviceMac);
TableDataInfo getDeviceList(String siteId, Integer pageNum, Integer pageSize, String searchKey);
}

View File

@@ -0,0 +1,24 @@
package org.wfc.system.service;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.omada.api.organization.model.CreateSiteEntity;
import org.wfc.omada.api.organization.model.SiteEntity;
import org.wfc.omada.api.organization.model.UpdateSiteEntity;
/**
* @description: site service
* @author: cyc
* @since: 2025-02-18
*/
public interface ISysSiteService {
TableDataInfo getSiteList(Integer pageNum, Integer pageSize);
SiteEntity getSiteEntity(String siteId);
boolean createNewSite(CreateSiteEntity createSiteEntity);
boolean updateSiteEntity(String siteId, UpdateSiteEntity updateSiteEntity);
boolean deleteSite(String siteId);
}

View File

@@ -8,7 +8,9 @@ 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.utils.PageUtils;
import org.wfc.common.core.utils.ResponseUtils;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.common.redis.service.RedisService;
import org.wfc.omada.api.device.OmadaApApi;
import org.wfc.omada.api.device.OmadaDeviceApi;
@@ -187,4 +189,11 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
@Override
public TableDataInfo getDeviceList(String siteId, Integer pageNum, Integer pageSize, String searchKey) {
ResponseEntity<OperationResponseGridVoDeviceInfo> response = omadaDeviceApi.getDeviceList(siteId, pageNum, pageSize, searchKey);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return PageUtils.getDataTable(response.getBody().getResult().getData(), response.getBody().getResult().getTotalRows());
}
}

View File

@@ -0,0 +1,66 @@
package org.wfc.system.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.wfc.common.core.utils.PageUtils;
import org.wfc.common.core.utils.ResponseUtils;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.omada.api.organization.OmadaSiteApi;
import org.wfc.omada.api.organization.model.CreateSiteEntity;
import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo;
import org.wfc.omada.api.organization.model.OperationResponseObject;
import org.wfc.omada.api.organization.model.OperationResponseSiteEntity;
import org.wfc.omada.api.organization.model.OperationResponseWithoutResult;
import org.wfc.omada.api.organization.model.SiteEntity;
import org.wfc.omada.api.organization.model.UpdateSiteEntity;
import org.wfc.system.service.ISysSiteService;
import java.util.Objects;
/**
* @description: site service impl
* @author: cyc
* @since: 2025-02-18
*/
@Service
public class SysSiteServiceImpl implements ISysSiteService {
@Autowired
private OmadaSiteApi omadaSiteApi;
@Override
public TableDataInfo getSiteList(Integer pageNum, Integer pageSize) {
ResponseEntity<OperationResponseGridVoSiteSummaryInfo> response = omadaSiteApi.getSiteList(pageNum, pageSize);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return PageUtils.getDataTable(response.getBody().getResult().getData(), response.getBody().getResult().getTotalRows());
}
@Override
public SiteEntity getSiteEntity(String siteId) {
ResponseEntity<OperationResponseSiteEntity> response = omadaSiteApi.getSiteEntity(siteId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
@Override
public boolean createNewSite(CreateSiteEntity createSiteEntity) {
ResponseEntity<OperationResponseObject> response = omadaSiteApi.createNewSite(createSiteEntity);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public boolean updateSiteEntity(String siteId, UpdateSiteEntity updateSiteEntity) {
ResponseEntity<OperationResponseWithoutResult> response = omadaSiteApi.updateSiteEntity(siteId, updateSiteEntity);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public boolean deleteSite(String siteId) {
ResponseEntity<OperationResponseWithoutResult> response = omadaSiteApi.deleteSite(siteId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
}