From 120fdb31f376deaf55001286bdeef26d268eeab2 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期二, 10 五月 2022 15:33:52 +0800
Subject: [PATCH] fix
---
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java | 390 +++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 321 insertions(+), 69 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
index fc0776e..bbc1931 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -1,21 +1,38 @@
package com.sandu.ximon.admin.controller;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.PageHelper;
+import com.sandu.common.domain.CommonPage;
import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.object.BaseConditionVO;
+import com.sandu.common.security.annotation.AnonymousAccess;
import com.sandu.common.util.ResponseUtil;
-import com.sandu.ximon.admin.param.GroupParam;
-import com.sandu.ximon.admin.param.LampPostParam;
-import com.sandu.ximon.admin.param.ReceiveParam;
-import com.sandu.ximon.admin.service.LampPostService;
-import com.sandu.ximon.dao.domain.LampPost;
+import com.sandu.ximon.admin.dto.DeviceStatus;
+import com.sandu.ximon.admin.param.PoleBindParam;
+import com.sandu.ximon.admin.param.PoleBindingParam;
+import com.sandu.ximon.admin.param.PoleParam;
+import com.sandu.ximon.admin.param.PoleStatesParam;
+import com.sandu.ximon.admin.security.PermissionConfig;
+import com.sandu.ximon.admin.service.AirEquipmentService;
+import com.sandu.ximon.admin.service.IpVolumeService;
+import com.sandu.ximon.admin.service.MonitorService;
+import com.sandu.ximon.admin.service.PoleService;
+import com.sandu.ximon.admin.vo.PoleBindVO;
+import com.sandu.ximon.dao.domain.Pole;
+import com.sandu.ximon.dao.enums.MenuEnum;
+import com.sandu.ximon.dao.enums.PoleBindingEnums;
import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
import java.util.List;
/**
* 鐏潌妯″潡浠ュ強璁剧疆鍒嗙粍鍒板搴旂伅鏉�
+ *
* @author chenjiantian
*/
@RestController
@@ -23,71 +40,306 @@
@RequestMapping("/v1/pole")
public class PoleController {
- private final LampPostService poleService;
+ private final PoleService poleService;
+ private MonitorService monitorService;
+ private IpVolumeService broadcastTerminalV2Service;
+ private AirEquipmentService airEquipmentService;
+ private final PermissionConfig permissionConfig;
- @GetMapping("/add")
- public ResponseVO<Object> addLampPost(@RequestBody LampPostParam lampPostParam){
- return ResponseUtil.success( poleService.addLamp(lampPostParam));
- }
-
- @GetMapping("/update/{id}")
- public ResponseVO<Object> updateLampPost(@PathVariable Long id, @RequestBody LampPostParam lampPostParam){
- return ResponseUtil.success( poleService.updateLamp(id,lampPostParam));
- }
-
- @GetMapping("/delete/{id}")
- public ResponseVO<Object> deleteLampPost(@PathVariable Long id){
- return ResponseUtil.success(poleService.deleteLampPost(id));
- }
-
-
-
- @PostMapping("/setGroup")
- public ResponseVO<Object> setGroup(@RequestBody GroupParam groupParam){
- poleService.setGroup(groupParam.getGroup(), groupParam.getId());
- return ResponseUtil.success("鍒嗙粍璁剧疆鎴愬姛");
- }
-
- // @AnonymousAccess
- //@PostMapping("/list")
- /* public ResponseVO<Object> listLamp(){
- //List<LampPost> list = lampPostService.list();
- return ResponseUtil.success(lampPostService.list());
- //return ResponseUtil.success(lampPostService.listLamp());
- }*/
-
- /**
- * 鏌ヨ鐏潌鍒楄〃骞舵惡甯﹀湪绾跨姸鎬�
- * @return
- */
- @PostMapping("/list")
- public ResponseVO<Object> listLamp(){
- return ResponseUtil.success(poleService.queryStates());
- }
-
- /**
- * 鎭㈠鍑哄巶璁剧疆
- * @param id
- * @return
- */
- @GetMapping("/lightReset/{id}")
- public ResponseVO<Object> LightReset(@PathVariable Long id){
- return ResponseUtil.success(poleService.LightReset(id));
- }
-
-
-
- @GetMapping("/lsitLike")
- public ResponseVO<Object> list( @RequestBody ReceiveParam receiveParam){
- LambdaQueryWrapper<LampPost> wrapper = Wrappers.lambdaQuery(LampPost.class);
- if(receiveParam.getKeyWord()!=null){
- wrapper.like(LampPost::getLampId,receiveParam.getKeyWord())
- .or(lampPostLambdaQueryWrapper -> {
- lampPostLambdaQueryWrapper.like(LampPost::getName,receiveParam.getKeyWord());
- });
+ @PostMapping("/add")
+ public ResponseVO<Object> addPole(@RequestBody @Validated PoleParam param) {
+ if (!permissionConfig.check(MenuEnum.POLE_VIRTUAL_ADD.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
}
- List<LampPost> lsit= poleService.list(wrapper);
- return ResponseUtil.success(lsit);
+ return ResponseUtil.success(poleService.addPole(param));
+ }
+
+ @PostMapping("/update/{poleId}")
+ public ResponseVO<Object> updatePole(@PathVariable Long poleId, @RequestBody @Validated PoleParam param) {
+ if (!permissionConfig.check(MenuEnum.POLE_UPDATE.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.updatePole(poleId, param));
+ }
+
+ @PostMapping("/delete/{poleId}")
+ public ResponseVO<Object> deletePole(@PathVariable Long poleId) {
+ if (!permissionConfig.check(MenuEnum.POLE_DELETE.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.deletePole(poleId));
+ }
+
+ @PostMapping("/listDetail")
+ public ResponseVO<Object> listPoleDetail(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) {
+ if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ List<Pole> results = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param);
+
+ List<PoleBindVO> listResult = new ArrayList<>();
+ for (Pole pole : results) {
+ PoleBindVO bindByPoleId = poleService.getBindByPoleId(pole.getId());
+ bindByPoleId.setPole(pole);
+ listResult.add(bindByPoleId);
+ }
+
+ CommonPage commonPage = CommonPage.restPage(listResult);
+ int size = results.size();
+ commonPage.setTotal((long) size);
+ commonPage.setTotalPage(size / baseConditionVO.getPageSize() + 1);
+ if (size % baseConditionVO.getPageSize() == 0) {
+ commonPage.setTotalPage(size / baseConditionVO.getPageSize());
+ }
+ return ResponseUtil.success(commonPage);
+ }
+
+ @PostMapping("/list")
+ public ResponseVO<Object> listPole(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) {
+ if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ List<Pole> results = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param);
+
+ CommonPage commonPage = CommonPage.restPage(results);
+ int size = results.size();
+ commonPage.setTotal((long) size);
+ commonPage.setTotalPage(size / baseConditionVO.getPageSize() + 1);
+ if (size % baseConditionVO.getPageSize() == 0) {
+ commonPage.setTotalPage(size / baseConditionVO.getPageSize());
+ }
+ return ResponseUtil.success(commonPage);
+ }
+
+ @GetMapping("/listPoleAndState")
+ public ResponseVO<Object> listPoleAndState(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword,
+ @RequestParam(value = "groupid", required = false) Long groupid) {
+ if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ List<Pole> poles = poleService.queryStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), keyword, groupid);
+ return ResponseUtil.successPage(poles);
+ }
+
+ /**
+ * 鍦ㄧ嚎鏁伴噺
+ */
+ @AnonymousAccess
+ @GetMapping("/online")
+ public ResponseVO<Object> online() {
+ return ResponseUtil.success(poleService.poleCount());
+ }
+
+
+ /**
+ * 璁剧疆涓夊厓鐮�
+ */
+ @PostMapping("/setMac/{baseMac}")
+ public ResponseVO<Object> setMac(@PathVariable String baseMac) {
+ if (!permissionConfig.check(MenuEnum.POLE_REAL_ADD.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.setMac(baseMac));
+ }
+
+ /**
+ * 鎭㈠鐏潌鍑哄巶璁剧疆
+ */
+ @PostMapping("/poleReset/{poleId}")
+ public ResponseVO<Object> poleReset(@PathVariable Long poleId) {
+ if (!permissionConfig.check(MenuEnum.POLE_REAL_RESET.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.poleReset(poleId));
+ }
+
+//TODO 璁惧鐨勭粦瀹氳В缁戦兘瑕佸崟鐙噸鏂板鐞�
+
+ /**
+ * 鐏潌缁戝畾璁惧
+ */
+ @PostMapping("/bind/{poleId}")
+ public ResponseVO<Object> bindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
+ if (!permissionConfig.check(MenuEnum.BINDING.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ boolean result = poleService.bindPole(poleId, param);
+ if (result) {
+ //璁惧绫诲瀷锛�0璺伅锛�1nove锛�2鍏呯數妗╋紝3澶ф皵鐩戞祴锛�4姘磋川鐩戞祴锛�5ip闊虫煴锛�6lcd骞垮憡鏈猴紝7鎽勫儚澶达紝8鏉嗕綋鍊炬祴锛�9涓�閿晳鍔�, 10鐔欒, 11鍐滆��
+ switch (param.getDeviceType().toString()) {
+ case PoleBindingEnums.LIGHT:
+ Pole pole = poleService.getById(poleId);
+ if (pole != null) {
+ pole.setPoleName(param.getDeviceName());
+ pole.setDeviceCode(param.getDeviceCode());
+ poleService.updateById(pole);
+ }
+ break;
+ case PoleBindingEnums.VONNOX:
+ break;
+ case PoleBindingEnums.CHARGING_PILE:
+ break;
+ case PoleBindingEnums.ATMOSPHERIC:
+ break;
+ case PoleBindingEnums.WATER:
+ break;
+ case PoleBindingEnums.IPVOLUME:
+ broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue());
+ break;
+ case PoleBindingEnums.LCD_ADVERTISING:
+ break;
+ case PoleBindingEnums.MONITOR:
+ monitorService.updateBingdingState(true, param.getDeviceCode());
+ break;
+ case PoleBindingEnums.LIGHTPOLEHEELING:
+ break;
+ case PoleBindingEnums.FOR_HELP:
+ break;
+ case PoleBindingEnums.XIXUN:
+ break;
+ case PoleBindingEnums.ATMOSPHERIC_NONG_GENG:
+ break;
+ default:
+ break;
+ }
+
+ return ResponseUtil.success("缁戝畾鎴愬姛");
+ } else {
+ return ResponseUtil.fail("缁戝畾澶辫触");
+ }
+ }
+
+ /**
+ * 鐏潌缁戝畾璁惧
+ */
+ @PostMapping("/unBind/{poleId}")
+ public ResponseVO<Object> unBindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
+ if (!permissionConfig.check(MenuEnum.UNBIND.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ boolean result = poleService.unBindPole(poleId, param.getDeviceCode());
+ if (result) {
+ //璁惧绫诲瀷锛�0璺伅锛�1led灞忓箷锛�2鍏呯數妗╋紝3澶ф皵鐩戞祴锛�4姘磋川鐩戞祴锛�5ip闊虫煴锛�6lcd骞垮憡鏈猴紝7鎽勫儚澶达紝8鏉嗕綋鍊炬祴锛�9涓�閿晳鍔�, 10鐔欒, 11鍐滆��
+ switch (param.getDeviceType().toString()) {
+ case PoleBindingEnums.LIGHT:
+ //鍒犻櫎鐏潌鐨刣evicescode
+ Pole pole = poleService.getOne(Wrappers.lambdaQuery(Pole.class).eq(Pole::getId, poleId));
+ if (pole != null) {
+ poleService.updateDeviceCode(pole.getId());
+ }
+ break;
+ case PoleBindingEnums.VONNOX:
+ break;
+ case PoleBindingEnums.CHARGING_PILE:
+ break;
+ case PoleBindingEnums.ATMOSPHERIC:
+ break;
+ case PoleBindingEnums.WATER:
+ break;
+ case PoleBindingEnums.IPVOLUME:
+ broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue());
+ break;
+ case PoleBindingEnums.LCD_ADVERTISING:
+ break;
+ case PoleBindingEnums.MONITOR:
+ monitorService.updateBingdingState(false, param.getDeviceCode());
+ break;
+ case PoleBindingEnums.LIGHTPOLEHEELING:
+ break;
+ case PoleBindingEnums.FOR_HELP:
+ break;
+ case PoleBindingEnums.XIXUN:
+ break;
+ case PoleBindingEnums.ATMOSPHERIC_NONG_GENG:
+ break;
+ default:
+ break;
+ }
+
+ return ResponseUtil.success("瑙g粦鎴愬姛");
+ } else {
+ return ResponseUtil.fail("瑙g粦澶辫触");
+ }
+ }
+
+ @PostMapping("/listStatusByDeviceCode")
+ public ResponseVO<Object> getStatusById(@RequestBody String[] deviceCodeList) {
+ if (!permissionConfig.check(MenuEnum.GET_STATE_BY_DEVICECODE.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ for (String s : deviceCodeList) {
+ if (s == null) {
+ return ResponseUtil.fail("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ }
+ if (ArrayUtil.isEmpty(deviceCodeList)) {
+ return ResponseUtil.fail("鍙傛暟涓嶈兘涓虹┖");
+ }
+ List<DeviceStatus> statusList = poleService.listStatusByDeviceCode(CollectionUtil.toList(deviceCodeList));
+ return ResponseUtil.success(statusList);
+ }
+
+ @PostMapping("/ClientBindingPole")
+ public ResponseVO<Object> ClientBindingPole(@RequestBody PoleBindParam param) {
+ if (!permissionConfig.check(MenuEnum.CLIENT_BINDING_POLE.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.ClientBindingPole(param.getClientId(), param.getPoleIds()));
+ }
+
+
+ /**
+ * 鏌ユ壘鑷繁鎷ユ湁鐨勭伅鏉�
+ */
+ @PostMapping("/getOwnerPole/{cilentId}")
+ public ResponseVO<Object> getOwnerPole(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword
+ , @PathVariable Long cilentId) {
+ if (!permissionConfig.check(MenuEnum.GET_CLIENT_POLE.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ List<Pole> results = poleService.getOwnerPole(baseConditionVO, keyword, cilentId);
+ return ResponseUtil.success(results);
+ }
+
+ /**
+ * 鏌ョ湅鐏潌缁戝畾鐨勮澶�
+ */
+ @AnonymousAccess
+ @PostMapping("/getPoleBindDevice/{poleId}")
+ public ResponseVO<Object> getPoleBindDevice(@PathVariable Long poleId) {
+ if (!permissionConfig.check(MenuEnum.GET_POLE_BINDING.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.getBindByPoleId(poleId));
+ }
+
+
+ /**
+ * 鎺ㄩ�佸ぇ姘旇澶囧埌璇虹摝
+ */
+ @AnonymousAccess
+ @GetMapping("/pushAidDataToNova/{poleId}")
+ public ResponseVO<Object> pushAirDataToNova(@PathVariable Long poleId) {
+ if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_NOVA.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.pushAirDataToNova(poleId));
+ }
+
+ /**
+ * 鎺ㄩ�佸ぇ姘旇澶囧埌鐔欒
+ */
+ @AnonymousAccess
+ @GetMapping("/pushAirDataToXiXun/{poleId}")
+ public ResponseVO<Object> pushAirDataToXiXun(@PathVariable Long poleId) {
+ if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_XIXUN.getCode())) {
+ return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+ }
+ return ResponseUtil.success(poleService.pushAirDataToXiXun(poleId));
}
}
--
Gitblit v1.9.3