From 20cf08efd6f966f53f4dfebafb586b127204415a Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期二, 04 一月 2022 14:55:16 +0800
Subject: [PATCH] 大气设备查询
---
dao/src/main/resources/mapper/AirEquipmentMapper.xml | 55 ++++++++++++++++-----------
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java | 2
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java | 25 ++++++------
dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentMapper.java | 4 +-
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentController.java | 17 +++-----
5 files changed, 55 insertions(+), 48 deletions(-)
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentMapper.java
index 7c334ff..3de24eb 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/AirEquipmentMapper.java
@@ -12,9 +12,9 @@
*/
@Mapper
public interface AirEquipmentMapper extends BaseMapper<AirEquipment> {
- List<AirEquipmentBo> listAirEquipment();
+ List<Long> listAirEquipmentId(String keyword, Long clientId);
- List<AirEquipmentBo> listAirEquipmentByKeyword(String keyword);
+ List<AirEquipmentBo> listAirEquipmentByIds(List<Long> airEquipmentIdList);
}
diff --git a/dao/src/main/resources/mapper/AirEquipmentMapper.xml b/dao/src/main/resources/mapper/AirEquipmentMapper.xml
index c087a54..485d81a 100644
--- a/dao/src/main/resources/mapper/AirEquipmentMapper.xml
+++ b/dao/src/main/resources/mapper/AirEquipmentMapper.xml
@@ -16,31 +16,42 @@
mac
</sql>
- <select id="listAirEquipment" resultType="com.sandu.ximon.dao.bo.AirEquipmentBo">
+ <select id="listAirEquipmentId" resultType="java.lang.Long">
SELECT
- t1.*, t2.pole_id,
- t3.pole_name
+ MAX(t1.id) AS air_equipment_id
FROM
- air_equipment t1
- LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
- AND t2.device_type = 4
- LEFT JOIN pole t3 ON t3.id = t2.pole_id
- ORDER BY
- t1.id DESC
+ air_equipment t1
+ <if test="keyword != null and keyword != ''">
+ LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
+ AND t2.device_type = 3
+ LEFT JOIN pole t3 ON t3.id = t2.pole_id
+ </if>
+ <where>
+ <if test="keyword != null and keyword != ''">
+ AND t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
+ </if>
+ <if test="clientId != null">
+ AND t3.client_id = #{clientId}
+ </if>
+ </where>
+ GROUP BY
+ t1.mac
</select>
- <select id="listAirEquipmentByKeyword" resultType="com.sandu.ximon.dao.bo.AirEquipmentBo">
- SELECT
- t1.*, t2.pole_id,
- t3.pole_name
- FROM
- air_equipment t1
- LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
- AND t2.device_type = 4
- LEFT JOIN pole t3 ON t3.id = t2.pole_id
- WHERE
- t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
- ORDER BY
- t1.id DESC
+ <select id="listAirEquipmentByIds" resultType="com.sandu.ximon.dao.bo.AirEquipmentBo">
+ SELECT
+ t1.*, t2.pole_id,
+ t3.pole_name
+ FROM
+ air_equipment t1
+ LEFT JOIN pole_binding t2 ON t1.mac = t2.device_code
+ AND t2.device_type = 3
+ LEFT JOIN pole t3 ON t3.id = t2.pole_id
+ <where>
+ t1.id IN
+ <foreach collection="airEquipmentIdList" open="(" close=")" item="airId" separator=",">
+ #{airId}
+ </foreach>
+ </where>
</select>
</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentController.java
index b75bc35..33be8db 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirEquipmentController.java
@@ -1,6 +1,7 @@
package com.sandu.ximon.admin.controller;
import com.sandu.common.domain.ResponseVO;
+import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.util.ResponseUtil;
import com.sandu.ximon.admin.service.AirEquipmentService;
import com.sandu.ximon.dao.bo.AirEquipmentBo;
@@ -19,21 +20,15 @@
public class AirEquipmentController {
private final AirEquipmentService airEquipmentService;
- @GetMapping
- public ResponseVO<Object> listAirEquipment() {
- List<AirEquipmentBo> list = airEquipmentService.listAirEquipment();
- return ResponseUtil.success(list);
- }
-
/**
- * 妯$硦鏌ヨ
+ * 鏌ヨ澶ф皵璁惧
*
* @return
*/
- @GetMapping("/listAirEquipmentByKeyword/{keyword}")
- public ResponseVO<Object> listAirEquipmentByKeyword(@PathVariable String keyword) {
- List<AirEquipmentBo> list = airEquipmentService.listAirEquipmentByKeyword(keyword);
- return ResponseUtil.success(list);
+ @GetMapping("/listAirEquipment")
+ public ResponseVO<Object> listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, @RequestParam(required = false) String keyword) {
+ List<AirEquipmentBo> list = airEquipmentService.listAirEquipmentByKeyword(baseConditionVO, keyword);
+ return ResponseUtil.successPage(list);
}
@PostMapping("/delete/{id}")
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java
index 5cabbbc..efe3bc9 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java
@@ -52,7 +52,7 @@
PageHelper.startPage(baseConditionVO.getPageNo(),baseConditionVO.getPageSize());
List<Long> listAirId = baseMapper.listAirId(keyword,clientId);
if(CollUtil.isEmpty(listAirId)){
- return null;
+ return CollUtil.newArrayList();
}
List<AirDataBo> airDataBos = baseMapper.listAirDataByIds(listAirId);
return airDataBos;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
index 69b2386..2bb2a4b 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirEquipmentService.java
@@ -1,9 +1,14 @@
package com.sandu.ximon.admin.service;
+import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.dao.bo.AirDataBo;
import com.sandu.ximon.dao.bo.AirEquipmentBo;
import com.sandu.ximon.dao.domain.AirData;
import com.sandu.ximon.dao.domain.AirEquipment;
@@ -21,23 +26,19 @@
private final AirEquipmentMapper airEquipmentMapper;
- /**
- * 鏌ヨ鍏ㄩ儴澶ф皵璁惧鏁版嵁
- */
- public List<AirEquipmentBo> listAirEquipment() {
- return airEquipmentMapper.listAirEquipment();
- }
/**
* 妯$硦鏌ヨ
*/
- public List<AirEquipmentBo> listAirEquipmentByKeyword(String keyword) {
- if (keyword == null || keyword.trim().length() == 0) {
- return listAirEquipment();
- } else {
- return airEquipmentMapper.listAirEquipmentByKeyword(keyword);
+ public List<AirEquipmentBo> listAirEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) {
+ Long clientId = SecurityUtils.getClientId();
+ PageHelper.startPage(baseConditionVO.getPageNo(),baseConditionVO.getPageSize());
+ List<Long> listAirEquipmentId = airEquipmentMapper.listAirEquipmentId(keyword,clientId);
+ if(CollUtil.isEmpty(listAirEquipmentId)){
+ return CollUtil.newArrayList();
}
-
+ List<AirEquipmentBo> airEquipmentBos = airEquipmentMapper.listAirEquipmentByIds(listAirEquipmentId);
+ return airEquipmentBos;
}
/**
--
Gitblit v1.9.3