From 109af646c863e5c6a2ac2fa5eefdffa9fe86d252 Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期三, 20 四月 2022 14:19:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java |  267 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 213 insertions(+), 54 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..b060adc 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,35 @@
 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.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.dao.domain.Pole;
+import com.sandu.ximon.dao.enums.MenuEnum;
 import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.sql.Wrapper;
 import java.util.List;
 
 /**
  * 鐏潌妯″潡浠ュ強璁剧疆鍒嗙粍鍒板搴旂伅鏉�
+ *
  * @author chenjiantian
  */
 @RestController
@@ -23,71 +37,216 @@
 @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));
+    @PostMapping("/add")
+    public ResponseVO<Object> addPole(@RequestBody @Validated PoleParam param) {
+        return ResponseUtil.success(poleService.addPole(param));
     }
 
-    @GetMapping("/update/{id}")
-    public ResponseVO<Object> updateLampPost(@PathVariable Long id, @RequestBody LampPostParam lampPostParam){
-        return ResponseUtil.success( poleService.updateLamp(id,lampPostParam));
+    @PostMapping("/update/{poleId}")
+    public ResponseVO<Object> updatePole(@PathVariable Long poleId, @RequestBody @Validated PoleParam param) {
+        return ResponseUtil.success(poleService.updatePole(poleId, param));
     }
 
-    @GetMapping("/delete/{id}")
-    public ResponseVO<Object> deleteLampPost(@PathVariable Long id){
-        return ResponseUtil.success(poleService.deleteLampPost(id));
+    @PostMapping("/delete/{poleId}")
+    public ResponseVO<Object> deletePole(@PathVariable Long poleId) {
+        return ResponseUtil.success(poleService.deletePole(poleId));
     }
 
-
-
-    @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());
+    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);
+        // return ResponseUtil.success(poles);
+    }
+
+    @GetMapping("/listPoleAndState")
+    public ResponseVO<Object> listPoleAndState(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword,
+                                               @RequestParam(value = "groupid", required = false) Long groupid) {
+        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        List<Pole> poles = poleService.queryStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), keyword, groupid);
+        return ResponseUtil.successPage(poles);
     }
 
     /**
-     * 鎭㈠鍑哄巶璁剧疆
-     * @param id
-     * @return
+     * 鍦ㄧ嚎鏁伴噺
      */
-    @GetMapping("/lightReset/{id}")
-    public ResponseVO<Object> LightReset(@PathVariable Long id){
-        return ResponseUtil.success(poleService.LightReset(id));
+    @GetMapping("/online")
+    public ResponseVO<Object> online() {
+        return ResponseUtil.success(poleService.poleCount());
     }
 
 
+    /**
+     * 璁剧疆涓夊厓鐮�
+     */
+    @PostMapping("/setMac/{baseMac}")
+    public ResponseVO<Object> setMac(@PathVariable String baseMac) {
+        //public ResponseVO<Object> setMac() {
+        return ResponseUtil.success(poleService.setMac(baseMac));
+        // return ResponseUtil.success(poleService.setMac());
+    }
 
-    @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("/poleReset/{poleId}")
+    public ResponseVO<Object> poleReset(@PathVariable Long poleId) {
+        return ResponseUtil.success(poleService.poleReset(poleId));
+    }
+
+//TODO  璁惧鐨勭粦瀹氳В缁戦兘瑕佸崟鐙噸鏂板鐞�
+
+    /**
+     * 鐏潌缁戝畾璁惧
+     */
+    @PostMapping("/bind/{poleId}")
+    public ResponseVO<Object> bindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
+        boolean result = poleService.bindPole(poleId, param);
+        if (result) {
+            //璁惧绫诲瀷锛�0璺伅锛�1led灞忓箷锛�2鍏呯數妗╋紝3澶ф皵鐩戞祴锛�4姘磋川鐩戞祴锛�5ip闊虫煴锛�6lcd骞垮憡鏈猴紝7鎽勫儚澶达紝8鏉嗕綋鍊炬祴锛�9涓�閿晳鍔�
+            switch (param.getDeviceType()) {
+                case 0:
+                    Pole pole = poleService.getById(poleId);
+                    if (!pole.getDeviceCode().equals(param.getDeviceCode())) {
+                        pole.setPoleName(param.getDeviceName());
+                        pole.setDeviceCode(param.getDeviceCode());
+                        poleService.updateById(pole);
+                    }
+                    break;
+                case 1:
+                    break;
+                case 2:
+                    break;
+                case 3:
+                    break;
+                case 4:
+                    break;
+                case 5:
+                    broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue());
+                    break;
+                case 6:
+                    break;
+                case 7:
+                    monitorService.updateBingdingState(true, param.getDeviceCode());
+                    break;
+                case 8:
+                    break;
+                case 9:
+                    break;
+                default:
+                    break;
+            }
+
+            return ResponseUtil.success("缁戝畾鎴愬姛");
+        } else {
+            return ResponseUtil.fail("缁戝畾澶辫触");
         }
-        List<LampPost> lsit= poleService.list(wrapper);
-        return ResponseUtil.success(lsit);
     }
 
+    /**
+     * 鐏潌缁戝畾璁惧
+     */
+    @PostMapping("/unBind/{poleId}")
+    public ResponseVO<Object> unBindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
+        boolean result = poleService.unBindPole(poleId, param.getDeviceCode());
+        if (result) {
+            //璁惧绫诲瀷锛�0璺伅锛�1led灞忓箷锛�2鍏呯數妗╋紝3澶ф皵鐩戞祴锛�4姘磋川鐩戞祴锛�5ip闊虫煴锛�6lcd骞垮憡鏈猴紝7鎽勫儚澶达紝8鏉嗕綋鍊炬祴锛�9涓�閿晳鍔�
+            switch (param.getDeviceType()) {
+                case 0:
+                    break;
+                case 1:
+                    break;
+                case 2:
+                    break;
+                case 3:
+                    break;
+                case 4:
+                    break;
+                case 5:
+                    broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue());
+                    break;
+                case 6:
+                    break;
+                case 7:
+                    monitorService.updateBingdingState(false, param.getDeviceCode());
+                    break;
+                case 8:
+                    break;
+                case 9:
+                    break;
+                default:
+                    break;
+            }
+
+            return ResponseUtil.success("瑙g粦鎴愬姛");
+        } else {
+            return ResponseUtil.fail("瑙g粦澶辫触");
+        }
+    }
+
+    @PostMapping("/listStatusByDeviceCode")
+    public ResponseVO<Object> getStatusById(@RequestBody String[] deviceCodeList) {
+        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) {
+        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) {
+        List<Pole> results = poleService.getOwnerPole(baseConditionVO, keyword, cilentId);
+//        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);
+        return ResponseUtil.success(results);
+    }
+
+    /**
+     * 鏌ョ湅鐏潌缁戝畾鐨勮澶�
+     */
+    @PostMapping("/getPoleBindDevice/{poleId}")
+    public ResponseVO<Object> getPoleBindDevice(@PathVariable Long poleId) {
+        return ResponseUtil.success(poleService.getBindByPoleId(poleId));
+    }
+
+
 }

--
Gitblit v1.9.3