From 51c48672d73f65358e125799058b0830abed950c Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Tue, 18 Feb 2025 15:28:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20site=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wfc/omada/api/device/OmadaDeviceApi.java | 5 ++ .../controller/SysDeviceController.java | 11 ++-- .../system/controller/SysSiteController.java | 57 ++++++++++++++++ .../wfc/system/service/ISysDeviceService.java | 3 + .../wfc/system/service/ISysSiteService.java | 24 +++++++ .../service/impl/SysDeviceServiceImpl.java | 9 +++ .../service/impl/SysSiteServiceImpl.java | 66 +++++++++++++++++++ 7 files changed, 168 insertions(+), 7 deletions(-) create mode 100644 wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysSiteController.java create mode 100644 wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysSiteService.java create mode 100644 wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysSiteServiceImpl.java diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java index ea244f3..f4c8d96 100644 --- a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java +++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java @@ -410,6 +410,11 @@ public interface OmadaDeviceApi { method = RequestMethod.GET) ResponseEntity 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 1–1000.", 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 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 1–1000.", 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 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 ea33fe2..22f0da7 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 @@ -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 list = sysDeviceService.list(Wrappers.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") diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysSiteController.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysSiteController.java new file mode 100644 index 0000000..9aa48a4 --- /dev/null +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysSiteController.java @@ -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 getSiteInfo(@PathVariable(required = true) String siteId) { + return R.ok(siteService.getSiteEntity(siteId)); + } + + @PostMapping + public R createNewSite(@RequestBody(required = false) CreateSiteEntity createSiteEntity) { + return R.ok(siteService.createNewSite(createSiteEntity)); + } + + @PutMapping("/{siteId}") + public R updateSite(@PathVariable(required = true) String siteId, @RequestBody(required = false) UpdateSiteEntity updateSiteEntity) { + return R.ok(siteService.updateSiteEntity(siteId, updateSiteEntity)); + } + + @DeleteMapping("/{siteId}") + public R deleteSite(@PathVariable(required = true) String siteId) { + return R.ok(siteService.deleteSite(siteId)); + } +} 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 b6dee04..ed45450 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,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 { boolean updateConfig(String siteId, String deviceMac, ApGeneralConfig apGeneralConfig); ApGeneralConfig getConfig(String siteId, String deviceMac); + + TableDataInfo getDeviceList(String siteId, Integer pageNum, Integer pageSize, String searchKey); } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysSiteService.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysSiteService.java new file mode 100644 index 0000000..b6024f5 --- /dev/null +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysSiteService.java @@ -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); +} 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 d74a2da..6432d2b 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 @@ -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 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()); + } } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysSiteServiceImpl.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysSiteServiceImpl.java new file mode 100644 index 0000000..f9f7c9c --- /dev/null +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysSiteServiceImpl.java @@ -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 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 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 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 response = omadaSiteApi.updateSiteEntity(siteId, updateSiteEntity); + ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } + + @Override + public boolean deleteSite(String siteId) { + ResponseEntity response = omadaSiteApi.deleteSite(siteId); + ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return true; + } +}