From dda268997ca8f8a364f7c19b45d7a43a50a98efe Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 25 十月 2022 18:00:11 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java |  321 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 258 insertions(+), 63 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java
index 6b27e28..f8cf860 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeService.java
@@ -1,15 +1,26 @@
 package com.sandu.ximon.admin.service;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
+import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.common.util.SpringContextHolder;
+import com.sandu.ximon.admin.dto.TerminalDto;
 import com.sandu.ximon.admin.param.BroadcastTerminalV2Param;
+import com.sandu.ximon.admin.redis.DeviceRedisKey;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.RedisUtils;
+import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.utils.TerminalAPIUtils;
-import com.sandu.ximon.admin.vo.TerminalVO;
+import com.sandu.ximon.admin.vo.EquipmentInfomation;
+import com.sandu.ximon.admin.vo.RedisDeviceStatus;
 import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo;
 import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
+import com.sandu.ximon.dao.enums.AdministratorEnums;
+import com.sandu.ximon.dao.enums.OrderByEnums;
+import com.sandu.ximon.dao.enums.PoleBindingEnums;
 import com.sandu.ximon.dao.mapper.IPBroadcastMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,22 +30,19 @@
 
 @Service
 public class IpVolumeService extends BaseServiceImpl<IPBroadcastMapper, BroadcastTerminalV2Entity> {
-    //    private final BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalDao;
-//    @Autowired
-//    private SysUserRoleService sysUserRoleService;
-//    @Autowired
-//    private SysUserCompanyService sysUserCompanyService;
-//    @Autowired
-//    private BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalMapper;
+
     @Autowired
     private IPBroadcastMapper broadcastTerminalV2EntityMapper;
+    @Autowired
+    private RedisUtils redisUtils;
 
     /**
      * 鍚屾缁堢
      */
     public void synchTerminal() {
-        List<BroadcastTerminalV2Entity> server = broadcastTerminalV2EntityMapper.listAll("");
-        List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
+        List<BroadcastTerminalV2Entity> server = broadcastTerminalV2EntityMapper.listAll();
+
+        List<TerminalDto> list = TerminalAPIUtils.getTerminalList();
         System.out.println(list);
         list.stream().forEach(item -> {
             //  闊虫煴鏈嶅姟鍣ㄧ粓绔疘D
@@ -55,20 +63,65 @@
                 b.setStreetlightId(0L);
                 b.setExist(1);
                 save(b);
-//                broadcastTerminalV2EntityMapper.insert(b);
             }
         });
+        /**
+         * IP闊虫煴鍚屾 鏃ュ織璁板綍寮�濮�
+         */
+        StoreOperationRecordsUtils.storeOperationData(null, null, "IP闊虫煴鍚屾", "IP闊虫煴鍚屾璁惧");
+        /**
+         * IP闊虫煴鍚屾 鏃ュ織璁板綍缁撴潫
+         */
     }
 
-    public List<BroadcastTerminalV2EntityBo> getBroadcastTerminalList(BaseConditionVO baseConditionVO, BroadcastTerminalV2Param broadcastTerminalV2Param) {
+    /**
+     * IP闊虫煴鍒楄〃
+     *
+     * @param baseConditionVO
+     * @param order
+     * @param seq
+     * @param broadcastTerminalV2Param
+     * @return
+     */
+    public List<BroadcastTerminalV2EntityBo> getBroadcastTerminalList(BaseConditionVO baseConditionVO, Integer order, Integer seq, BroadcastTerminalV2Param broadcastTerminalV2Param) {
         if (broadcastTerminalV2Param == null) {
             broadcastTerminalV2Param = new BroadcastTerminalV2Param();
         }
-        Long clientId = SecurityUtils.getClientId();
+
+        //鎺掑簭瀛楁
+        String orderByResult = OrderByEnums.IP_VOLUME_ID.getCode();
+        //姝e簭銆佸�掑彊
+        String orderBySeq = OrderByEnums.ASC.getCode();
+        if (order != null) {
+            switch (order) {
+                case 1:
+                    orderByResult = OrderByEnums.IP_VOLUME_ID.getCode();
+                    break;
+                case 2:
+                    orderByResult = OrderByEnums.IP_VOLUME_NAME.getCode();
+                case 3:
+                    orderByResult = OrderByEnums.IP_VOLUME_POLE_NAME.getCode();
+                default:
+            }
+        }
+        if (seq != null) {
+            switch (seq) {
+                case 1:
+                    orderBySeq = " ASC";
+                    break;
+                case 2:
+                    orderBySeq = " DESC";
+                    break;
+                default:
+                    break;
+            }
+        }
+        //鎺掑簭鏂瑰紡
+        String orderBy = orderByResult + " " + orderBySeq;
 
         //鍦ㄧ嚎鐘舵�佸叏閮ㄧ殑璇濋渶瑕佸垎椤�
-        if (2 == broadcastTerminalV2Param.getWorkState()) {
-            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+        if (baseConditionVO != null && 2 == broadcastTerminalV2Param.getWorkState()) {
+            PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), orderBy);
         }
 
         List<BroadcastTerminalV2EntityBo> broadcastTerminalV2EntityBos;
@@ -77,28 +130,36 @@
         if (broadcastTerminalV2Param.getBindingState() == null || 2 == broadcastTerminalV2Param.getBindingState()) {
             //鍏ㄩ儴
             int bindingState = 2;
-            broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, bindingState);
+            if (SecurityUtils.getClientId() == null) {
+                broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), null, bindingState);
+            } else {
+                broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), SecurityUtils.getUserId(), bindingState);
+            }
         } else {
-            broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, broadcastTerminalV2Param.getBindingState());
+            if (SecurityUtils.getClientId() == null) {
+                broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), null, broadcastTerminalV2Param.getBindingState());
+            } else {
+                broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), SecurityUtils.getUserId(), broadcastTerminalV2Param.getBindingState());
+            }
         }
 
-        List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
+        List<TerminalDto> list = TerminalAPIUtils.getTerminalList();
         for (BroadcastTerminalV2EntityBo bean : broadcastTerminalV2EntityBos) {
-            for (TerminalVO terminalVO : list) {
-                if (bean.getId().equals(terminalVO.getId())) {
-                    bean.setStatus(terminalVO.getStatus());
-                    bean.setIp(terminalVO.getIp());
-                    bean.setVolumn(terminalVO.getVolumn());
-                    bean.setDefaultVolumn(terminalVO.getDefaultVolumn());
-                    bean.setPower(terminalVO.getPower());
-                    bean.setDefaultPower(terminalVO.getDefaultPower());
-                    bean.setLast(terminalVO.getLast());
-                    bean.setTaskType(terminalVO.getTaskType());
-                    bean.setTaskID(terminalVO.getTaskID());
+            for (TerminalDto terminalDto : list) {
+                if (bean.getId().equals(terminalDto.getId())) {
+                    bean.setStatus(terminalDto.getStatus());
+                    bean.setIp(terminalDto.getIp());
+                    bean.setVolumn(terminalDto.getVolumn());
+                    bean.setDefaultVolumn(terminalDto.getDefaultVolumn());
+                    bean.setPower(terminalDto.getPower());
+                    bean.setDefaultPower(terminalDto.getDefaultPower());
+                    bean.setLast(terminalDto.getLast());
+                    bean.setTaskType(terminalDto.getTaskType());
+                    bean.setTaskID(terminalDto.getTaskID());
 
-                    if (0 == broadcastTerminalV2Param.getWorkState() && 0 == terminalVO.getStatus()) {
+                    if (0 == broadcastTerminalV2Param.getWorkState() && 0 == terminalDto.getStatus()) {
                         broadcastTerminalV2EntityBos_final.add(bean);
-                    } else if (1 == broadcastTerminalV2Param.getWorkState() && 1 == terminalVO.getStatus()) {
+                    } else if (1 == broadcastTerminalV2Param.getWorkState() && 1 == terminalDto.getStatus()) {
                         broadcastTerminalV2EntityBos_final.add(bean);
                     }
                     break;
@@ -110,6 +171,49 @@
         } else {
             return broadcastTerminalV2EntityBos_final;
         }
+    }
+
+    /**
+     * IP闊虫煴鍒楄〃锛堢敤浜庨椤垫暟鎹粺璁★級
+     *
+     * @return
+     */
+    public List<BroadcastTerminalV2EntityBo> getBroadcastTerminalListOnHome() {
+        List<BroadcastTerminalV2EntityBo> broadcastTerminalV2EntityBos;
+
+        if (SecurityUtils.getClientId() == null) {
+            broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(null, null, 2);
+        } else {
+            broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(null, SecurityUtils.getUserId(), 2);
+        }
+
+        return broadcastTerminalV2EntityBos;
+    }
+
+    public List<BroadcastTerminalV2EntityBo> newIpTerminalList(String keyword) {
+
+        List<BroadcastTerminalV2EntityBo> broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getListTerminalOnBind(SecurityUtils.getClientId(), keyword);
+
+
+        List<TerminalDto> list = TerminalAPIUtils.getTerminalList();
+        for (BroadcastTerminalV2EntityBo bean : broadcastTerminalV2EntityBos) {
+            for (TerminalDto terminalDto : list) {
+                if (bean.getId().equals(terminalDto.getId())) {
+                    bean.setStatus(terminalDto.getStatus());
+                    bean.setIp(terminalDto.getIp());
+                    bean.setVolumn(terminalDto.getVolume());
+                    bean.setDefaultVolumn(terminalDto.getDefaultVolumn());
+                    bean.setPower(terminalDto.getPower());
+                    bean.setDefaultPower(terminalDto.getDefaultPower());
+                    bean.setLast(terminalDto.getLast());
+                    bean.setTaskType(terminalDto.getTaskType());
+                    bean.setTaskID(terminalDto.getTaskID());
+                    break;
+                }
+            }
+        }
+
+        return broadcastTerminalV2EntityBos;
     }
 
     /**
@@ -136,51 +240,142 @@
     }
 
     /**
-     * 淇敼缁堢
-     * @param params
-     * @return 0:鎴愬姛 1:鍚嶇О涓嶈兘涓虹┖
-     *//*
-    public Integer updateTerminal(BroadcastParams params, Long userId) {
-
-        // 鏍¢獙鍚嶇О鍚堟硶鎬�
-        if(null == params.getTerminalName() || "".equals(params.getTerminalName())){
-            return 1;
-        }
-        if(null == params.getDefaultVolumn() || params.getDefaultVolumn() < 0) {
-            params.setDefaultVolumn(0);
-        }
-
-        BroadcastTerminalV2Entity b = new BroadcastTerminalV2Entity();
-        b.setId(params.getTerminalId());
-        b.setTerminalName(params.getTerminalName());
-        b.setStreetlightId(params.getStreetlightId());
-        b.setExist(1);
-        //  API璋冪敤淇敼缁堢闊抽噺
-        TerminalAPIUtils.changeVol(params.getTerminalId(),params.getDefaultVolumn(),userId);
-
-        broadcastTerminalV2Dao.update(b);
-        return 0;
-    }
-
-    */
-
-    /**
      * 闊抽噺淇敼
      *
      * @param params
      * @return
      */
     public boolean changeVol(BroadcastTerminalV2Param params) {
-        return TerminalAPIUtils.changeVol(params.getId(), params.getDefaultVolumn());
+        if (params.getId() == null || params.getDefaultVolumn() == null || params.getDefaultVolumn() < 0) {
+            throw new BusinessException("璁惧ID鎴栦慨鏀圭殑闊抽噺鍊间笉姝g‘");
+        }
+
+        boolean flag = TerminalAPIUtils.changeVol(params.getId(), params.getDefaultVolumn());
+        /**
+         * IP闊虫煴闊抽噺淇敼 鏃ュ織璁板綍寮�濮�
+         */
+//        String content = "{璁惧Id:" + params.getId() + "锛屼慨鏀瑰悗闊抽噺锛�" + params.getDefaultVolumn() + "}";
+//        StoreOperationRecordsUtils.storeOperationData(null, null, "IP闊虫煴闊抽噺淇敼", content);
+        /**
+         * IP闊虫煴闊抽噺淇敼 鏃ュ織璁板綍缁撴潫
+         */
+        return flag;
     }
 
     /**
      * 缁堢璇︽儏
      */
-    public TerminalVO getIpTerminalDetail(Integer id) {
-        return TerminalAPIUtils.getTerminalInfo(id);
+    public EquipmentInfomation getIpTerminalDetail(String id) {
+        EquipmentInfomation equipmentInfo = new EquipmentInfomation();
+        equipmentInfo.setEquipmentType("IP闊虫煴");
+        if (id == null || id.trim().length() == 0) {
+            return equipmentInfo;
+        }
+        BroadcastTerminalV2Entity one = getOne(Wrappers.lambdaQuery(BroadcastTerminalV2Entity.class).eq(BroadcastTerminalV2Entity::getId, id));
+        if (one != null) {
+            equipmentInfo.setEquipmentMac(id);
+            equipmentInfo.setEquipmentName(one.getTerminalName());
+        }
+        TerminalDto terminalInfo = TerminalAPIUtils.getTerminalInfo(Integer.valueOf(id));
+        if (terminalInfo != null) {
+            //绌洪棽 1銆�   宸ヤ綔涓� 2 鎴栬�� 4銆�     鏂嚎 0锛�    鎶� 閿� 8
+            switch (terminalInfo.getStatus()) {
+                case 1:
+                    equipmentInfo.setEquipmentState("绌洪棽");
+                    break;
+                case 2:
+                case 4:
+                    equipmentInfo.setEquipmentState("宸ヤ綔涓�");
+                    break;
+                case 0:
+                    equipmentInfo.setEquipmentState("鏂嚎");
+                    break;
+                case 8:
+                    equipmentInfo.setEquipmentState("鎶ラ敊");
+                    break;
+                default:
+                    equipmentInfo.setEquipmentState("鏈煡");
+
+            }
+        } else {
+            equipmentInfo.setEquipmentState("鏈煡");
+        }
+        return equipmentInfo;
     }
 
 
+    /**
+     * 鏍规嵁缁堢id鑾峰彇缁堢淇℃伅
+     *
+     * @param name
+     * @param id
+     * @return
+     */
+    public boolean updateBroadcastTerminalName(String name, Integer id) {
+        if (name == null || name.trim().length() == 0) {
+            throw new BusinessException("璁惧鍚嶄笉鑳戒负绌�");
+        }
+        BroadcastTerminalV2Entity byId = getById(id);
+        if (byId == null) {
+            throw new BusinessException("缁堢涓嶅瓨鍦�");
+        }
+        if (AdministratorEnums.NORMAL.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
+            boolean belong = SpringContextHolder.getBean(PoleBindingService.class).isBelong(String.valueOf(byId.getId()), PoleBindingEnums.IPVOLUME);
+            if (!belong) {
+                throw new BusinessException("璇ヨ澶囦笉灞炰簬鎮�,涓嶈兘淇敼璁惧淇℃伅");
+            }
+        }
+        byId.setTerminalName(name);
+        boolean flag = updateById(byId);
+        /**
+         * IP闊虫煴淇敼璁惧鍚嶇О鏃ュ織璁板綍寮�濮�
+         */
+        String content = "{璁惧Id:" + id + "锛屼慨鏀瑰悗鍚嶇О锛�" + name + "}";
+        StoreOperationRecordsUtils.storeOperationData(null, null, "IP闊虫煴淇敼璁惧鍚�", content);
+        /**
+         * IP闊虫煴鏀硅澶囧悕绉版棩蹇楄褰曠粨鏉�
+         */
+        return flag;
+    }
 
+
+    public static Object getInfo() {
+        return TerminalAPIUtils.getTerminalInfo(25);
+    }
+
+    /**
+     * 鍚慠edis涓瓨鍏ヨ澶囩姸鎬�
+     */
+    public void setCacheData() {
+        //鏈嶅姟鍣ㄦ墍鏈夐煶鏌变俊鎭�
+        List<TerminalDto> list = TerminalAPIUtils.getTerminalList();
+        list.forEach(
+                device -> {
+                    RedisDeviceStatus deviceStatus = new RedisDeviceStatus();
+                    deviceStatus.setDeviceId(device.getId().toString());
+                    if (device != null) {
+                        //绌洪棽 1銆�   宸ヤ綔涓� 2 鎴栬�� 4銆�     鏂嚎 0锛�    鎶� 閿� 8
+                        switch (device.getStatus()) {
+                            case 1:
+                            case 2:
+                            case 4:
+                                deviceStatus.setStatus(0);
+                                break;
+                            case 0:
+                                deviceStatus.setStatus(1);
+                                break;
+                            case 8:
+                                deviceStatus.setStatus(0);
+                                break;
+                            default:
+                                deviceStatus.setStatus(1);
+
+                        }
+                    }
+                    redisUtils.set(DeviceRedisKey.IP_BROADCAST + device.getId(), JSON.toJSONString(deviceStatus));
+//                    redisUtils.delete(DeviceRedisKey.IP_BROADCAST + device.getId());
+                }
+        );
+
+    }
 }

--
Gitblit v1.9.3