diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysWlanController.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysWlanController.java index cf30add..ddbbe08 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysWlanController.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/controller/SysWlanController.java @@ -17,6 +17,7 @@ import org.wfc.omada.api.sitesetting.model.CreateSsidOpenApiVo; import org.wfc.omada.api.sitesetting.model.SsidDetailOpenApiVo; import org.wfc.omada.api.sitesetting.model.UpdateSsidBasicConfigOpenApiVo; import org.wfc.omada.api.sitesetting.model.WlanGroupOpenApiVo; +import org.wfc.omada.api.sitesetting.model.WlanSimpleOpenApiVo; import org.wfc.system.service.ISysWlanService; import java.util.List; @@ -62,4 +63,9 @@ public class SysWlanController extends BaseController { public R getSsidDetail(@PathVariable(required = true) String siteId, @PathVariable String wlanId, @PathVariable String ssidId) { return R.ok(sysWlanService.getSsidDetail(siteId, wlanId, ssidId)); } + + @GetMapping("/ssids/{siteId}/") + public R> getMacAuthSsids(@PathVariable(required = true) String siteId) { + return R.ok(sysWlanService.getMacAuthSsids(siteId)); + } } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/PortalResOpenApiExtVo.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/PortalResOpenApiExtVo.java new file mode 100644 index 0000000..293515b --- /dev/null +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/PortalResOpenApiExtVo.java @@ -0,0 +1,17 @@ +package org.wfc.system.domain.vo; + +import lombok.Data; +import org.wfc.omada.api.sitesetting.model.PortalResOpenApiVo; + +import java.util.List; + +/** + * @description: PortalResOpenApiVo + * @author: cyc + * @since: 2025-02-21 + */ +@Data +public class PortalResOpenApiExtVo extends PortalResOpenApiVo { + + private List ssidNames; +} diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SsidOpenApiExtVo.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SsidOpenApiExtVo.java new file mode 100644 index 0000000..92b1872 --- /dev/null +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/domain/vo/SsidOpenApiExtVo.java @@ -0,0 +1,17 @@ +package org.wfc.system.domain.vo; + +import lombok.Data; +import org.wfc.omada.api.sitesetting.model.SsidOpenApiVo; + +/** + * @description: SsidOpenApiVo + * @author: cyc + * @since: 2025-02-21 + */ +@Data +public class SsidOpenApiExtVo extends SsidOpenApiVo { + + private boolean portalEnable; + + private String portalName; +} diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysWlanService.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysWlanService.java index 6e8d590..54480d8 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysWlanService.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/ISysWlanService.java @@ -5,6 +5,7 @@ import org.wfc.omada.api.sitesetting.model.CreateSsidOpenApiVo; import org.wfc.omada.api.sitesetting.model.SsidDetailOpenApiVo; import org.wfc.omada.api.sitesetting.model.UpdateSsidBasicConfigOpenApiVo; import org.wfc.omada.api.sitesetting.model.WlanGroupOpenApiVo; +import org.wfc.omada.api.sitesetting.model.WlanSimpleOpenApiVo; import java.util.List; @@ -26,4 +27,6 @@ public interface ISysWlanService { boolean deleteSsid(String siteId, String wlanId, String ssidId); SsidDetailOpenApiVo getSsidDetail(String siteId, String wlanId, String ssidId); + + List getMacAuthSsids(String siteId); } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysPortalServiceImpl.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysPortalServiceImpl.java index 5ec3fd9..0443dbe 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysPortalServiceImpl.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysPortalServiceImpl.java @@ -1,6 +1,7 @@ package org.wfc.system.service.impl; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -9,13 +10,18 @@ import org.wfc.common.core.utils.ResponseUtils; import org.wfc.common.core.web.page.TableDataInfo; import org.wfc.omada.api.sitesetting.OmadaAuthenticationApi; import org.wfc.omada.api.sitesetting.model.OperationResponseListPortalResOpenApiVo; +import org.wfc.omada.api.sitesetting.model.OperationResponseListWlanSimpleOpenApiVo; import org.wfc.omada.api.sitesetting.model.OperationResponsePortalDetailResOpenApiVo; import org.wfc.omada.api.sitesetting.model.OperationResponseWithoutResult; import org.wfc.omada.api.sitesetting.model.PortalDetailResOpenApiVo; import org.wfc.omada.api.sitesetting.model.PortalResOpenApiVo; import org.wfc.omada.api.sitesetting.model.PortalSetting; +import org.wfc.omada.api.sitesetting.model.SsidSimpleOpenApiVo; +import org.wfc.omada.api.sitesetting.model.WlanSimpleOpenApiVo; +import org.wfc.system.domain.vo.PortalResOpenApiExtVo; import org.wfc.system.service.ISysPortalService; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -39,7 +45,34 @@ public class SysPortalServiceImpl implements ISysPortalService { List result = response.getBody().getResult(); List pageResult = result.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); - return PageUtils.getDataTable(pageResult, (long) result.size()); + + ResponseEntity ssidsResponse = omadaAuthenticationApi.getMacAuthSsids(siteId); + ResponseUtils.checkResponse(Objects.requireNonNull(ssidsResponse.getBody()).getErrorCode(), ssidsResponse.getBody().getMsg()); + List wlans = ssidsResponse.getBody().getResult(); + List ssids = new ArrayList<>(); + for (WlanSimpleOpenApiVo wlan : wlans) { + ssids.addAll(wlan.getSsidList()); + } + + // 组装ssidName + List portals = pageResult.stream().map(c -> { + PortalResOpenApiExtVo portalExtVo = new PortalResOpenApiExtVo(); + BeanUtils.copyProperties(c, portalExtVo); + List ssidList = c.getSsidList(); + + List ssidNames = new ArrayList<>(); + for (String ssidId : ssidList) { + for (SsidSimpleOpenApiVo ssid : ssids) { + if (Objects.equals(ssidId, ssid.getSsidId())) { + ssidNames.add(ssid.getSsidName()); + } + } + } + portalExtVo.setSsidNames(ssidNames); + return portalExtVo; + }).collect(Collectors.toList()); + + return PageUtils.getDataTable(portals, (long) result.size()); } @Override @@ -69,4 +102,5 @@ public class SysPortalServiceImpl implements ISysPortalService { ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); return response.getBody().getResult(); } + } diff --git a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysWlanServiceImpl.java b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysWlanServiceImpl.java index 697d570..184e5f2 100644 --- a/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysWlanServiceImpl.java +++ b/wfc-modules/wfc-system/src/main/java/org/wfc/system/service/impl/SysWlanServiceImpl.java @@ -1,26 +1,36 @@ package org.wfc.system.service.impl; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; 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.sitesetting.OmadaAuthenticationApi; import org.wfc.omada.api.sitesetting.OmadaWirelessNetworkApi; import org.wfc.omada.api.sitesetting.model.CreateSsidOpenApiVo; import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoSsidOpenApiVo; +import org.wfc.omada.api.sitesetting.model.OperationResponseListPortalResOpenApiVo; import org.wfc.omada.api.sitesetting.model.OperationResponseListWlanGroupOpenApiVo; +import org.wfc.omada.api.sitesetting.model.OperationResponseListWlanSimpleOpenApiVo; import org.wfc.omada.api.sitesetting.model.OperationResponseObject; import org.wfc.omada.api.sitesetting.model.OperationResponseSsidDetailOpenApiVo; import org.wfc.omada.api.sitesetting.model.OperationResponseWithoutResult; +import org.wfc.omada.api.sitesetting.model.PortalResOpenApiVo; import org.wfc.omada.api.sitesetting.model.SsidDetailOpenApiVo; +import org.wfc.omada.api.sitesetting.model.SsidOpenApiVo; import org.wfc.omada.api.sitesetting.model.UpdateSsidBasicConfigOpenApiVo; import org.wfc.omada.api.sitesetting.model.WlanGroupOpenApiVo; +import org.wfc.omada.api.sitesetting.model.WlanSimpleOpenApiVo; +import org.wfc.system.domain.vo.SsidOpenApiExtVo; import org.wfc.system.service.ISysWlanService; import java.util.List; import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; /** * @description: wlan service impl @@ -34,6 +44,9 @@ public class SysWlanServiceImpl implements ISysWlanService { @Autowired private OmadaWirelessNetworkApi omadaWirelessNetworkApi; + @Autowired + private OmadaAuthenticationApi omadaAuthenticationApi; + @Override public List getWlanGroupList(String siteId) { ResponseEntity response = omadaWirelessNetworkApi.getWlanGroupList(siteId); @@ -45,7 +58,28 @@ public class SysWlanServiceImpl implements ISysWlanService { public TableDataInfo getSsidList(String siteId, String wlanId, Integer pageNum, Integer pageSize) { ResponseEntity response = omadaWirelessNetworkApi.getSsidList(siteId, wlanId, pageNum, pageSize); ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); - return PageUtils.getDataTable(response.getBody().getResult().getData(), response.getBody().getResult().getTotalRows()); + + + ResponseEntity portalResponse = omadaAuthenticationApi.getPortalList(siteId); + ResponseUtils.checkResponse(Objects.requireNonNull(portalResponse.getBody()).getErrorCode(), portalResponse.getBody().getMsg()); + + // 组装portalName + List portals = portalResponse.getBody().getResult(); + List data = response.getBody().getResult().getData(); + List ssidList = data.stream().map(c -> { + SsidOpenApiExtVo ssidExtVo = new SsidOpenApiExtVo(); + BeanUtils.copyProperties(c, ssidExtVo); + Optional portalOptional = portals.stream().filter(p -> p.getSsidList().contains(c.getSsidId())).findFirst(); + ssidExtVo.setPortalEnable(false); + if (portalOptional.isPresent()) { + ssidExtVo.setPortalEnable(true); + ssidExtVo.setPortalName(portalOptional.get().getName()); + } + return ssidExtVo; + }).collect(Collectors.toList()); + + + return PageUtils.getDataTable(ssidList, response.getBody().getResult().getTotalRows()); } @Override @@ -75,4 +109,11 @@ public class SysWlanServiceImpl implements ISysWlanService { ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); return response.getBody().getResult(); } + + @Override + public List getMacAuthSsids(String siteId) { + ResponseEntity response = omadaAuthenticationApi.getMacAuthSsids(siteId); + ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg()); + return response.getBody().getResult(); + } }