From 1550b78912991c87141f1e51cd37a1445ef8a6b8 Mon Sep 17 00:00:00 2001 From: caiyuchao Date: Thu, 16 Jan 2025 11:56:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=BB=88=E7=AB=AF?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wfc/omada/api/client/OmadaClientApi.java | 5 +++ .../controller/SysDeviceController.java | 4 +- .../system/controller/UClientController.java | 37 +++--------------- .../wfc/system/service/IUClientService.java | 4 ++ .../service/impl/UClientServiceImpl.java | 39 ++++++++++++++++++- 5 files changed, 55 insertions(+), 34 deletions(-) diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java index daa43e4..d89b624 100644 --- a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java +++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java @@ -98,6 +98,11 @@ public interface OmadaClientApi { method = RequestMethod.GET) ResponseEntity getGridActiveClients(@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}/clients", + produces = "*/*", + method = RequestMethod.GET) + ResponseEntity getGridActiveClients(@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 clientName,clientMac,ip,channel,ssid,apName,apMac,switchMac,switchName,gatewayMac,gatewayName.") @Valid @RequestParam(value = "searchKey", required = false) String searchKey); + /** * POST /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/reconnect : Reconnect the client 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 f1acf54..7b7f2b6 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 @@ -45,7 +45,9 @@ public class SysDeviceController extends BaseController { @GetMapping("/list") public AjaxResult list(SysDevice sysDevice) { - List list = sysDeviceService.list(); + List list = sysDeviceService.list(Wrappers.lambdaQuery() + .like(SysDevice::getName, sysDevice.getName()) + .like(SysDevice::getMac, sysDevice.getMac())); return success(list); } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UClientController.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UClientController.java index f4ecac3..7e23065 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UClientController.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/UClientController.java @@ -1,19 +1,14 @@ package org.wfc.system.controller; -import cn.hutool.core.collection.CollUtil; 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.web.controller.BaseController; import org.wfc.common.core.web.domain.AjaxResult; import org.wfc.common.core.web.page.TableDataInfo; -import org.wfc.system.domain.UClient; +import org.wfc.omada.api.client.model.ClientInfo; import org.wfc.system.service.IUClientService; import java.util.List; @@ -34,36 +29,16 @@ public class UClientController extends BaseController { private IUClientService uClientService; @GetMapping("/page") - public TableDataInfo page(UClient uClient) { + public TableDataInfo page(@RequestParam(value = "searchKey", required = false) String searchKey) { startPage(); - List list = uClientService.list(); + List list = uClientService.clientList(searchKey); return getDataTable(list); } @GetMapping("/list") - public AjaxResult list(UClient uClient) { - List list = uClientService.list(); + public AjaxResult list(@RequestParam(value = "searchKey", required = false) String searchKey) { + List list = uClientService.clientList(searchKey); return success(list); } - @GetMapping(value = "/{id}") - public AjaxResult getById(@PathVariable("id") Long id) { - return success(uClientService.getById(id)); - } - - @PostMapping - public AjaxResult add(@RequestBody UClient uClient) { - return toAjax(uClientService.save(uClient)); - } - - @PutMapping - public AjaxResult edit(@RequestBody UClient uClient) { - return toAjax(uClientService.updateById(uClient)); - } - - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) { - return toAjax(uClientService.removeByIds(CollUtil.newArrayList(ids))); - } - } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/IUClientService.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/IUClientService.java index 79d2248..9de41d5 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/IUClientService.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/IUClientService.java @@ -1,8 +1,11 @@ package org.wfc.system.service; +import org.wfc.omada.api.client.model.ClientInfo; import org.wfc.system.domain.UClient; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 用户平台_用户设备表 服务类 @@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IUClientService extends IService { + List clientList(String searchKey); } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/UClientServiceImpl.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/UClientServiceImpl.java index d39554b..d08ab83 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/UClientServiceImpl.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/UClientServiceImpl.java @@ -1,10 +1,23 @@ package org.wfc.system.service.impl; +import cn.hutool.core.util.ObjectUtil; +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.wfc.omada.api.client.OmadaClientApi; +import org.wfc.omada.api.client.model.ClientInfo; +import org.wfc.omada.api.client.model.OperationResponseClientGridVoClientInfo; +import org.wfc.omada.api.organization.OmadaSiteApi; +import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo; +import org.wfc.omada.api.organization.model.SiteSummaryInfo; import org.wfc.system.domain.UClient; import org.wfc.system.mapper.UClientMapper; import org.wfc.system.service.IUClientService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** *

@@ -17,4 +30,26 @@ import org.springframework.stereotype.Service; @Service public class UClientServiceImpl extends ServiceImpl implements IUClientService { + @Autowired + private OmadaSiteApi omadaSiteApi; + + @Autowired + private OmadaClientApi omadaClientApi; + + public List clientList(String searchKey) { + ResponseEntity siteResp = omadaSiteApi.getSiteList(1, 1000); + if (ObjectUtil.isNull(siteResp.getBody())) { + return Collections.emptyList(); + } + List sites = siteResp.getBody().getResult().getData(); + List clients = new ArrayList<>(); + for (SiteSummaryInfo site : sites) { + ResponseEntity clientResp = omadaClientApi.getGridActiveClients(site.getSiteId(), 1, 1000, searchKey); + if (ObjectUtil.isNull(clientResp.getBody())) { + continue; + } + clients.addAll(clientResp.getBody().getResult().getData()); + } + return clients; + } }