2
0

fix: 补充portal和wlan

This commit is contained in:
caiyuchao
2025-02-21 19:35:13 +08:00
parent 5e34812077
commit fa9fe2148f
6 changed files with 120 additions and 2 deletions

View File

@@ -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<SsidDetailOpenApiVo> 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<List<WlanSimpleOpenApiVo>> getMacAuthSsids(@PathVariable(required = true) String siteId) {
return R.ok(sysWlanService.getMacAuthSsids(siteId));
}
}

View File

@@ -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<String> ssidNames;
}

View File

@@ -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;
}

View File

@@ -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<WlanSimpleOpenApiVo> getMacAuthSsids(String siteId);
}

View File

@@ -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<PortalResOpenApiVo> result = response.getBody().getResult();
List<PortalResOpenApiVo> pageResult = result.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
return PageUtils.getDataTable(pageResult, (long) result.size());
ResponseEntity<OperationResponseListWlanSimpleOpenApiVo> ssidsResponse = omadaAuthenticationApi.getMacAuthSsids(siteId);
ResponseUtils.checkResponse(Objects.requireNonNull(ssidsResponse.getBody()).getErrorCode(), ssidsResponse.getBody().getMsg());
List<WlanSimpleOpenApiVo> wlans = ssidsResponse.getBody().getResult();
List<SsidSimpleOpenApiVo> ssids = new ArrayList<>();
for (WlanSimpleOpenApiVo wlan : wlans) {
ssids.addAll(wlan.getSsidList());
}
// 组装ssidName
List<PortalResOpenApiExtVo> portals = pageResult.stream().map(c -> {
PortalResOpenApiExtVo portalExtVo = new PortalResOpenApiExtVo();
BeanUtils.copyProperties(c, portalExtVo);
List<String> ssidList = c.getSsidList();
List<String> 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();
}
}

View File

@@ -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<WlanGroupOpenApiVo> getWlanGroupList(String siteId) {
ResponseEntity<OperationResponseListWlanGroupOpenApiVo> 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<OperationResponseGridVoSsidOpenApiVo> 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<OperationResponseListPortalResOpenApiVo> portalResponse = omadaAuthenticationApi.getPortalList(siteId);
ResponseUtils.checkResponse(Objects.requireNonNull(portalResponse.getBody()).getErrorCode(), portalResponse.getBody().getMsg());
// 组装portalName
List<PortalResOpenApiVo> portals = portalResponse.getBody().getResult();
List<SsidOpenApiVo> data = response.getBody().getResult().getData();
List<SsidOpenApiExtVo> ssidList = data.stream().map(c -> {
SsidOpenApiExtVo ssidExtVo = new SsidOpenApiExtVo();
BeanUtils.copyProperties(c, ssidExtVo);
Optional<PortalResOpenApiVo> 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<WlanSimpleOpenApiVo> getMacAuthSsids(String siteId) {
ResponseEntity<OperationResponseListWlanSimpleOpenApiVo> response = omadaAuthenticationApi.getMacAuthSsids(siteId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
}