2
0

feat: portal管理和其他调整

This commit is contained in:
caiyuchao
2025-02-17 14:14:24 +08:00
parent 55d6cac588
commit 204c59c065
11 changed files with 245 additions and 52 deletions

View File

@@ -1,22 +1,24 @@
package org.wfc.common.core.utils;
import com.github.pagehelper.PageHelper;
import org.wfc.common.core.constant.HttpStatus;
import org.wfc.common.core.utils.sql.SqlUtil;
import org.wfc.common.core.web.page.PageDomain;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.common.core.web.page.TableSupport;
import java.util.List;
/**
* 分页工具类
*
*
* @author wfc
*/
public class PageUtils extends PageHelper
{
public class PageUtils extends PageHelper {
/**
* 设置请求分页数据
*/
public static void startPage()
{
public static void startPage() {
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
@@ -28,8 +30,18 @@ public class PageUtils extends PageHelper
/**
* 清理分页的线程变量
*/
public static void clearPage()
{
public static void clearPage() {
PageHelper.clearPage();
}
/**
* 响应请求分页数据
*/
public static TableDataInfo getDataTable(List<?> list, Long total) {
TableDataInfo rspData = new TableDataInfo(list, total);
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("Query successful");
return rspData;
}
}

View File

@@ -0,0 +1,22 @@
package org.wfc.common.core.utils;
import lombok.extern.slf4j.Slf4j;
import org.wfc.common.core.constant.WifiConstants;
import org.wfc.common.core.exception.OmadaException;
/**
* @description: reponseutil
* @author: cyc
* @since: 2025-02-17
*/
@Slf4j
public class ResponseUtils {
public static void checkResponse(Integer errorCode, String msg) {
if (errorCode != WifiConstants.ERROR_CODE_SUCCESS) {
log.error("Omada error msg: {}", msg);
throw new OmadaException(msg);
}
}
}

View File

@@ -115,4 +115,9 @@ public class SysDeviceController extends BaseController {
return R.ok(sysDeviceService.updateConfig(siteId, deviceMac, apGeneralConfig));
}
@PostMapping("/getConfig/{siteId}/{deviceMac}")
public R<ApGeneralConfig> getConfig(@PathVariable(required = true) String siteId, @PathVariable(required = true) String deviceMac) {
return R.ok(sysDeviceService.getConfig(siteId, deviceMac));
}
}

View File

@@ -0,0 +1,56 @@
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.sitesetting.model.PortalDetailResOpenApiVo;
import org.wfc.omada.api.sitesetting.model.PortalSetting;
import org.wfc.system.service.ISysPortalService;
/**
* @description: portal controller
* @author: cyc
* @since: 2025-02-17
*/
@RestController
@RequestMapping("/portal")
public class SysPortalController extends BaseController {
@Autowired
private ISysPortalService sysPortalService;
@GetMapping("/{siteId}")
public TableDataInfo getPortalList(@PathVariable String siteId, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
return sysPortalService.getPortalList(siteId, pageNum, pageSize);
}
@PostMapping("/{siteId}")
public R<Boolean> addPortal(@PathVariable(required = true) String siteId, @RequestBody(required = false) PortalSetting portalSetting) {
return R.ok(sysPortalService.addPortal(siteId, portalSetting));
}
@PutMapping("/{siteId}/{portalId}")
public R<Boolean> modifyPortal(@PathVariable(required = true) String siteId, @PathVariable(required = true) String portalId, @RequestBody(required = false) PortalSetting portalSetting) {
return R.ok(sysPortalService.modifyPortal(siteId, portalId, portalSetting));
}
@DeleteMapping("/{siteId}/{portalId}")
public R<Boolean> deletePortal(@PathVariable(required = true) String siteId, @PathVariable(required = true) String portalId) {
return R.ok(sysPortalService.deletePortal(siteId, portalId));
}
@GetMapping("/{siteId}/{portalId}")
public R<PortalDetailResOpenApiVo> getPortalDetail(@PathVariable(required = true) String siteId, @PathVariable(required = true) String portalId) {
return R.ok(sysPortalService.getPortalDetail(siteId, portalId));
}
}

View File

@@ -1,9 +1,11 @@
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;
@@ -12,6 +14,7 @@ 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.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.system.service.ISysWlanService;
@@ -30,29 +33,33 @@ public class SysWlanController extends BaseController {
@Autowired
private ISysWlanService sysWlanService;
@GetMapping("/getWlanGroupList/{siteId}")
@GetMapping("/group/{siteId}")
public R<List<WlanGroupOpenApiVo>> getWlanGroupList(@PathVariable(required = true) String siteId) {
return R.ok(sysWlanService.getWlanGroupList(siteId));
}
@GetMapping("/getSsidList/{siteId}/{wlanId}")
@GetMapping("/ssid/{siteId}/{wlanId}")
public TableDataInfo getSsidList(@PathVariable String siteId, @PathVariable String wlanId, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
startPage();
return sysWlanService.getSsidList(siteId, wlanId, pageNum, pageSize);
}
@PostMapping("/createSsid/{siteId}/{wlanId}")
@PostMapping("/ssid/{siteId}/{wlanId}")
public R<Boolean> createSsid(@PathVariable(required = true) String siteId, @PathVariable String wlanId, @RequestBody(required = false) CreateSsidOpenApiVo createSsidOpenApiVo) {
return R.ok(sysWlanService.createSsid(siteId, wlanId, createSsidOpenApiVo));
}
@PostMapping("/updateSsidBasicConfig/{siteId}/{wlanId}/{ssidId")
@PutMapping("/ssid/{siteId}/{wlanId}/{ssidId}")
public R<Boolean> updateSsidBasicConfig(@PathVariable(required = true) String siteId, @PathVariable String wlanId, @PathVariable String ssidId, @RequestBody(required = false) UpdateSsidBasicConfigOpenApiVo updateSsidBasicConfigOpenApiVo) {
return R.ok(sysWlanService.updateSsidBasicConfig(siteId, wlanId, ssidId, updateSsidBasicConfigOpenApiVo));
}
@PostMapping("/createSsid/{siteId}/{wlanId}/{ssidId}")
@DeleteMapping("/ssid/{siteId}/{wlanId}/{ssidId}")
public R<Boolean> deleteSsid(@PathVariable(required = true) String siteId, @PathVariable String wlanId, @PathVariable String ssidId) {
return R.ok(sysWlanService.deleteSsid(siteId, wlanId, ssidId));
}
@GetMapping("/ssid/{siteId}/{wlanId}/{ssidId}")
public R<SsidDetailOpenApiVo> getSsidDetail(@PathVariable(required = true) String siteId, @PathVariable String wlanId, @PathVariable String ssidId) {
return R.ok(sysWlanService.getSsidDetail(siteId, wlanId, ssidId));
}
}

View File

@@ -31,4 +31,6 @@ public interface ISysDeviceService extends IService<SysDevice> {
boolean rebootDevice(String siteId, String deviceMac);
boolean updateConfig(String siteId, String deviceMac, ApGeneralConfig apGeneralConfig);
ApGeneralConfig getConfig(String siteId, String deviceMac);
}

View File

@@ -0,0 +1,23 @@
package org.wfc.system.service;
import org.wfc.common.core.web.page.TableDataInfo;
import org.wfc.omada.api.sitesetting.model.PortalDetailResOpenApiVo;
import org.wfc.omada.api.sitesetting.model.PortalSetting;
/**
* @description: portal service
* @author: cyc
* @since: 2025-02-17
*/
public interface ISysPortalService {
TableDataInfo getPortalList(String siteId, Integer pageNum, Integer pageSize);
boolean addPortal(String siteId, PortalSetting portalSetting);
boolean modifyPortal(String siteId, String portalId, PortalSetting portalSetting);
boolean deletePortal(String siteId, String portalId);
PortalDetailResOpenApiVo getPortalDetail(String siteId, String portalId);
}

View File

@@ -2,6 +2,7 @@ package org.wfc.system.service;
import org.wfc.common.core.web.page.TableDataInfo;
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;
@@ -23,4 +24,6 @@ public interface ISysWlanService {
boolean updateSsidBasicConfig(String siteId, String wlanId, String ssidId, UpdateSsidBasicConfigOpenApiVo updateSsidBasicConfigOpenApiVo);
boolean deleteSsid(String siteId, String wlanId, String ssidId);
SsidDetailOpenApiVo getSsidDetail(String siteId, String wlanId, String ssidId);
}

View File

@@ -8,8 +8,7 @@ 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.constant.WifiConstants;
import org.wfc.common.core.exception.OmadaException;
import org.wfc.common.core.utils.ResponseUtils;
import org.wfc.common.redis.service.RedisService;
import org.wfc.omada.api.device.OmadaApApi;
import org.wfc.omada.api.device.OmadaDeviceApi;
@@ -17,6 +16,7 @@ import org.wfc.omada.api.device.model.AdoptDeviceRequest;
import org.wfc.omada.api.device.model.ApGeneralConfig;
import org.wfc.omada.api.device.model.DeviceInfo;
import org.wfc.omada.api.device.model.DeviceListAddBySnOpenApiVo;
import org.wfc.omada.api.device.model.OperationResponseApGeneralConfig;
import org.wfc.omada.api.device.model.OperationResponseDeviceAddRespOpenApiVo;
import org.wfc.omada.api.device.model.OperationResponseGridVoDeviceInfo;
import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
@@ -144,22 +144,15 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
public boolean forgetDevice(String siteId, String deviceMac) {
ResponseEntity<OperationResponseWithoutResult> response = omadaDeviceApi.forgetDevice(siteId, deviceMac);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
private static void checkResponse(Integer errorCode, String msg) {
if (errorCode != WifiConstants.ERROR_CODE_SUCCESS) {
log.error("Omada error msg: {}", msg);
throw new OmadaException(msg);
}
}
@Override
public boolean addDeviceBySn(String siteId, DeviceListAddBySnOpenApiVo deviceListAddBySnOpenApiVo) {
ResponseEntity<OperationResponseDeviceAddRespOpenApiVo> response = omadaDeviceApi.addDevicesBySn(siteId, deviceListAddBySnOpenApiVo);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@@ -167,7 +160,7 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
public boolean startAdoptDevice(String siteId, String deviceMac, AdoptDeviceRequest adoptDeviceRequest) {
ResponseEntity<OperationResponseWithoutResult> response = omadaDeviceApi.adoptDevice(siteId, deviceMac, adoptDeviceRequest);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@@ -175,7 +168,7 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
public boolean rebootDevice(String siteId, String deviceMac) {
ResponseEntity<OperationResponseWithoutResult> response = omadaDeviceApi.rebootDevice(siteId, deviceMac);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@@ -183,7 +176,15 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
public boolean updateConfig(String siteId, String deviceMac, ApGeneralConfig apGeneralConfig) {
ResponseEntity<OperationResponseWithoutResult> response = omadaApApi.modifyGeneralConfig2(siteId, deviceMac, apGeneralConfig);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public ApGeneralConfig getConfig(String siteId, String deviceMac) {
ResponseEntity<OperationResponseApGeneralConfig> response = omadaApApi.getGeneralConfig2(siteId, deviceMac);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
}

View File

@@ -0,0 +1,72 @@
package org.wfc.system.service.impl;
import lombok.extern.slf4j.Slf4j;
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.model.OperationResponseListPortalResOpenApiVo;
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.system.service.ISysPortalService;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @description: portal service impl
* @author: cyc
* @since: 2025-02-17
*/
@Slf4j
@Service
public class SysPortalServiceImpl implements ISysPortalService {
@Autowired
private OmadaAuthenticationApi omadaAuthenticationApi;
@Override
public TableDataInfo getPortalList(String siteId, Integer pageNum, Integer pageSize) {
ResponseEntity<OperationResponseListPortalResOpenApiVo> response = omadaAuthenticationApi.getPortalList(siteId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
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());
}
@Override
public boolean addPortal(String siteId, PortalSetting portalSetting) {
ResponseEntity<OperationResponseWithoutResult> response = omadaAuthenticationApi.addPortal(siteId, portalSetting);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public boolean modifyPortal(String siteId, String portalId, PortalSetting portalSetting) {
ResponseEntity<OperationResponseWithoutResult> response = omadaAuthenticationApi.modifyPortal(siteId, portalId, portalSetting);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public boolean deletePortal(String siteId, String portalId) {
ResponseEntity<OperationResponseWithoutResult> response = omadaAuthenticationApi.deletePortal(siteId, portalId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public PortalDetailResOpenApiVo getPortalDetail(String siteId, String portalId) {
ResponseEntity<OperationResponsePortalDetailResOpenApiVo> response = omadaAuthenticationApi.getPortalDetail(siteId, portalId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
}

View File

@@ -4,16 +4,17 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.wfc.common.core.constant.HttpStatus;
import org.wfc.common.core.constant.WifiConstants;
import org.wfc.common.core.exception.OmadaException;
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.OmadaWirelessNetworkApi;
import org.wfc.omada.api.sitesetting.model.CreateSsidOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoSsidOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListWlanGroupOpenApiVo;
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.SsidDetailOpenApiVo;
import org.wfc.omada.api.sitesetting.model.UpdateSsidBasicConfigOpenApiVo;
import org.wfc.omada.api.sitesetting.model.WlanGroupOpenApiVo;
import org.wfc.system.service.ISysWlanService;
@@ -36,53 +37,42 @@ public class SysWlanServiceImpl implements ISysWlanService {
@Override
public List<WlanGroupOpenApiVo> getWlanGroupList(String siteId) {
ResponseEntity<OperationResponseListWlanGroupOpenApiVo> response = omadaWirelessNetworkApi.getWlanGroupList(siteId);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
private static void checkResponse(Integer errorCode, String msg) {
if (errorCode != WifiConstants.ERROR_CODE_SUCCESS) {
log.error("Omada error msg: {}", msg);
throw new OmadaException(msg);
}
}
@Override
public TableDataInfo getSsidList(String siteId, String wlanId, Integer pageNum, Integer pageSize) {
ResponseEntity<OperationResponseGridVoSsidOpenApiVo> response = omadaWirelessNetworkApi.getSsidList(siteId, wlanId, pageNum, pageSize);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return getDataTable(response.getBody().getResult().getData(), response.getBody().getResult().getTotalRows());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return PageUtils.getDataTable(response.getBody().getResult().getData(), response.getBody().getResult().getTotalRows());
}
@Override
public boolean createSsid(String siteId, String wlanId, CreateSsidOpenApiVo createSsidOpenApiVo) {
ResponseEntity<OperationResponseObject> response = omadaWirelessNetworkApi.createSsid(siteId, wlanId, createSsidOpenApiVo);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public boolean updateSsidBasicConfig(String siteId, String wlanId, String ssidId, UpdateSsidBasicConfigOpenApiVo updateSsidBasicConfigOpenApiVo) {
ResponseEntity<OperationResponseWithoutResult> response = omadaWirelessNetworkApi.updateSsidBasicConfig(siteId, wlanId, ssidId, updateSsidBasicConfigOpenApiVo);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
@Override
public boolean deleteSsid(String siteId, String wlanId, String ssidId) {
ResponseEntity<OperationResponseWithoutResult> response = omadaWirelessNetworkApi.deleteSsid(siteId, wlanId, ssidId);
checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return true;
}
/**
* 响应请求分页数据
*/
protected TableDataInfo getDataTable(List<?> list, Long total) {
TableDataInfo rspData = new TableDataInfo(list, total);
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("Query successful");
return rspData;
@Override
public SsidDetailOpenApiVo getSsidDetail(String siteId, String wlanId, String ssidId) {
ResponseEntity<OperationResponseSsidDetailOpenApiVo> response = omadaWirelessNetworkApi.getSsidDetail(siteId, wlanId, ssidId);
ResponseUtils.checkResponse(Objects.requireNonNull(response.getBody()).getErrorCode(), response.getBody().getMsg());
return response.getBody().getResult();
}
}