From 4bc9e8a3962a01dd204185039c29c40b734ea4a4 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期三, 11 五月 2022 16:06:37 +0800
Subject: [PATCH] fix
---
dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java | 6 +
dao/src/main/resources/mapper/PoleMapper.xml | 33 +++++++++++
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java | 87 +++++------------------------
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java | 25 +-------
4 files changed, 57 insertions(+), 94 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java
index 087d8ef..749638f 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/PoleMapper.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
/**
* @Entity com.sandu.ximon.dao.domain.Pole
*/
@@ -11,7 +13,9 @@
public interface PoleMapper extends BaseMapper<Pole> {
- boolean updateDeviceCode(Long id);
+ boolean updateDeviceCode(Long id);
+
+ List<Pole> queryPoleOnLineStatesList(Long userid, Integer isTrue, Integer bingStates, Long groupid, String keyword);
}
diff --git a/dao/src/main/resources/mapper/PoleMapper.xml b/dao/src/main/resources/mapper/PoleMapper.xml
index 5945bd5..3dc4b36 100644
--- a/dao/src/main/resources/mapper/PoleMapper.xml
+++ b/dao/src/main/resources/mapper/PoleMapper.xml
@@ -38,4 +38,37 @@
SET device_code=null
WHERE id = #{id}
</update>
+ <select id="queryPoleOnLineStatesList" resultType="com.sandu.ximon.dao.domain.Pole">
+ SELECT
+ t1.*
+ FROM
+ pole t1
+ LEFT JOIN pole_group_relation t2 ON t1.id = t2.pole_id
+ LEFT JOIN pole_group t3 ON t3.group_id = t2.pole_group_id
+ <where>
+ <if test="userid != null">
+ AND (t1.user_id = #{userid} OR t1.client_id = #{userid})
+ </if>
+ <if test="keyword != null and keyword != ''">
+ AND ( t1.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
+ OR t1.device_code LIKE CONCAT(CONCAT('%', #{keyword}), '%'))
+ </if>
+ <if test="isTrue != null and isTrue == 1">
+ AND t1.device_type = -1
+ </if>
+ <if test="isTrue != null and isTrue == 0">
+ AND t1.device_type != -1
+ </if>
+ <if test="groupid != null">
+ AND t3.group_id = #{groupid}
+ </if>
+ <if test="bingStates != null and bingStates == 0 ">
+ AND t1.user_id != -1
+ </if>
+ <if test="bingStates != null and bingStates == 1 ">
+ AND t1.user_id = -1
+ </if>
+ </where>
+ GROUP BY t1.id
+ </select>
</mapper>
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 198cbe7..14d1a93 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
@@ -75,22 +75,12 @@
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 = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param);
List<PoleBindVO> listResult = new ArrayList<>();
- for (Pole pole : results) {
+ for (Pole pole : (List<Pole>) commonPage.getList()) {
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);
}
@@ -100,15 +90,8 @@
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());
- }
+ CommonPage commonPage = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param);
+
return ResponseUtil.success(commonPage);
}
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 b90a64b..32e0f03 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;
@@ -260,83 +263,23 @@
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(list);
- return list;
+ CommonPage commonPage = ListPagingUtils.pages(PoleResult, pageNo, pageSize);
+
+ return commonPage;
}
/**
--
Gitblit v1.9.3