From 2c52eaf28f9b8a666547e1307a76c3032598e57f Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期三, 11 五月 2022 16:50:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java |   95 +++++++++++------------------------------------
 1 files changed, 23 insertions(+), 72 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
index abb7cc1..ad0012e 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
+import com.sandu.common.domain.CommonPage;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.redis.RedisService;
@@ -14,6 +15,7 @@
 import com.sandu.common.util.SpringContextHolder;
 import com.sandu.ximon.admin.dto.DeviceStatus;
 import com.sandu.ximon.admin.dto.WaterQualityDataDto;
+import com.sandu.ximon.admin.entity.Command;
 import com.sandu.ximon.admin.manager.iot.frame.A1Frame;
 import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder;
 import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
@@ -31,6 +33,7 @@
 import com.sandu.ximon.admin.redis.LightKey;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.utils.LightemitUtils;
+import com.sandu.ximon.admin.utils.ListPagingUtils;
 import com.sandu.ximon.admin.utils.RedisUtils;
 import com.sandu.ximon.admin.utils.response.VnnoxResult;
 import com.sandu.ximon.admin.vo.PoleBindVO;
@@ -74,6 +77,13 @@
         Pole pole = getById(poleId);
         if (pole == null) {
             throw new BusinessException("鏈壘鍒拌鐏潌");
+        }
+        Long clientId = SecurityUtils.getClientId();
+        //闈炶秴绠�
+        if (clientId != null) {
+            if (!Objects.equals(SecurityUtils.getUserId(), pole.getUserId()) && !Objects.equals(SecurityUtils.getUserId(), pole.getClientId())) {
+                throw new BusinessException("璇ョ伅鏉嗕笉灞炰簬鎮�");
+            }
         }
         Pole update = new Pole();
         BeanUtils.copyProperties(param, update);
@@ -253,83 +263,24 @@
         return result;
     }
 
-    public List<Pole> queryAllStatesAndList(Integer pageNo, Integer pageSize, PoleStatesParam param) {
-
-        List<Pole> list = new ArrayList<>();
-        LambdaQueryWrapper<Pole> wrapper = new LambdaQueryWrapper<>();
+    public CommonPage queryAllStatesAndList(Integer pageNo, Integer pageSize, PoleStatesParam param) {
+        if (param == null) {
+            param = new PoleStatesParam();
+        }
+        System.out.println(param);
+        List<Pole> poleList;
         if (SecurityUtils.getClientId() == null) {
-            wrapper = Wrappers.lambdaQuery(Pole.class);
+            poleList = poleMapper.queryPoleOnLineStatesList(null, param.getIsTrue(), param.getBingStates(), param.getGroupid(), param.getKeyword());
         } else {
-            wrapper = Wrappers.lambdaQuery(Pole.class).eq(Pole::getClientId, SecurityUtils.getUserId()).or(
-                    w -> {
-                        w.eq(Pole::getUserId, SecurityUtils.getUserId());
-                    });
-        }
-        if (param.getKeyword() != null && !param.getKeyword().isEmpty()) {
-            wrapper.like(Pole::getPoleCode, param.getKeyword()).or(
-                    wrappers -> {
-                        wrappers.like(Pole::getPoleName, param.getKeyword());
-                    }
-            );
+            poleList = poleMapper.queryPoleOnLineStatesList(SecurityUtils.getUserId(), param.getIsTrue(), param.getBingStates(), param.getGroupid(), param.getKeyword());
         }
 
-        PageHelper.startPage(pageNo, pageSize);
-        list = list(wrapper);
-        if (param.getGroupid() != null) {
-            //  List<Long> poleIds = new ArrayList<>();
-            List<Pole> pole = new ArrayList<>();
-            List<PoleGroupRelation> relations = groupRelationService.list(Wrappers.lambdaQuery(PoleGroupRelation.class)
-                    .eq(PoleGroupRelation::getPoleGroupId, param.getGroupid()));
-            relations.forEach(relation -> {
-                        pole.add(getById(relation.getPoleId()));
-                    }
-            );
-            list = pole;
-        }
-        //鏄惁缁戝畾
-        if (param.getBingStates() != 2) {
-            //   缁戝畾/鏈粦瀹�
-            list = isBind(list, param);
-            //宸茬粦瀹氱殑鏄惁鏄湡瀹炵伅鏉�
-            if (param.getIsTrue() != 2) {
-                list = isTrue(list, param);
-                //缁戝畾鐨勭湡瀹炵伅鏉嗘槸鍚﹀湪绾�
-                if (param.getOnLineStates() != 2) {
-                    list = isOnLine(list, param);
-                }
-            }
-            //鍏ㄩ儴鐏潌  瀹炰綋/铏氭嫙
-            else {
-                //鏌ヨ鍏ㄩ儴鐏潌鏄惁鍦ㄧ嚎
-                if (param.getOnLineStates() != 2) {
-                    list = isOnLine(list, param);
-                }
-            }
-        }
-        //鍏ㄩ儴 缁戝畾/鏈粦瀹�
-        else {
-            // 鍒ゆ柇鐏潌绫诲瀷
-            if (param.getIsTrue() != 2) {
-                // 瀹炰綋/铏氭嫙
-                list = isTrue(list, param);
-                // 鐏潌鐨勫湪绾垮垽鏂�
-                if (param.getOnLineStates() != 2) {
-                    //鍦ㄧ嚎/绂荤嚎
-                    list = isOnLine(list, param);
-                }
-            }
-            //鍏ㄧ被鍨嬬伅鏉�
-            else {
-                //鍒ゆ柇鍦ㄧ嚎鐘舵��
-                if (param.getOnLineStates() != 2) {
-                    //鍦ㄧ嚎/绂荤嚎
-                    list = isOnLine(list, param);
-                }
-            }
-        }
+        List<Pole> PoleResult = isOnLine(poleList, param);
+        setCount(PoleResult);
 
-        setCount(list);
-        return list;
+        CommonPage commonPage = ListPagingUtils.pages(PoleResult, pageNo, pageSize);
+
+        return commonPage;
     }
 
     /**

--
Gitblit v1.9.3