dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataMapper.java
@@ -1,9 +1,9 @@ package com.sandu.ximon.dao.mapper; import com.sandu.common.object.BaseConditionVO; import com.sandu.ximon.dao.bo.AirDataBo; import com.sandu.ximon.dao.domain.AirData; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.sandu.ximon.dao.domain.Monitor; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -15,10 +15,9 @@ public interface AirDataMapper extends BaseMapper<AirData> { List<String> listAirEquipmentMAC(); List<AirDataBo> listAirData(); List<Long> listAirId(String keyword, Long clientId); List<AirDataBo> listAirDataByKeyword(String keyword); List<AirDataBo> listAirDataByIds(List<Long> airIdList); } dao/src/main/resources/mapper/AirDataMapper.xml
@@ -38,54 +38,43 @@ air_data </select> <select id="listAirData" resultType="com.sandu.ximon.dao.bo.AirDataBo"> <select id="listAirId" resultType="java.lang.Long"> SELECT t1.*, t2.pole_id, t3.pole_name MAX(t1.id) AS air_id FROM air_data t1 JOIN ( SELECT MAX(t1.id) a1 FROM air_data t1 LEFT JOIN pole_binding t2 ON t1.device_mac = t2.device_code AND t2.device_type = 3 LEFT JOIN pole t3 ON t3.id = t2.pole_id GROUP BY t1.device_mac LIMIT 0, 10 ) t ON t.a1 = t1.id air_data t1 <if test="keyword != null and keyword != ''"> LEFT JOIN pole_binding t2 ON t1.device_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.device_mac </select> <select id="listAirDataByIds" resultType="com.sandu.ximon.dao.bo.AirDataBo"> SELECT t1.*, t2.pole_id, t3.pole_name FROM air_data t1 LEFT JOIN pole_binding t2 ON t1.device_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="airIdList" open="(" close=")" item="airId" separator=","> #{airId} </foreach> </where> </select> <select id="listAirDataByKeyword" resultType="com.sandu.ximon.dao.bo.AirDataBo"> SELECT t1.*, t2.pole_id, t3.pole_name FROM air_data t1 JOIN ( SELECT MAX(t1.id) a1 FROM air_data t1 LEFT JOIN pole_binding t2 ON t1.device_mac = t2.device_code AND t2.device_type = 3 LEFT JOIN pole t3 ON t3.id = t2.pole_id WHERE t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%') GROUP BY t1.device_mac LIMIT 0, 10 ) t ON t.a1 = t1.id LEFT JOIN pole_binding t2 ON t1.device_mac = t2.device_code AND t2.device_type = 3 LEFT JOIN pole t3 ON t3.id = t2.pole_id </select> </mapper> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java
@@ -1,6 +1,8 @@ package com.sandu.ximon.admin.controller; import com.github.pagehelper.PageHelper; import com.sandu.common.domain.ResponseVO; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.dao.bo.AirDataBo; import com.sandu.ximon.admin.service.AirDataService; @@ -18,22 +20,16 @@ public class AirDataController { private final AirDataService airDataService; @GetMapping public ResponseVO<Object> listAirData() { List<AirDataBo> list = airDataService.listAirData(); return ResponseUtil.success(list); } /** * 查询大气数据模糊查询 * * @param keyword 关键字 * @return */ @GetMapping("/listAirDataByKeyword/{keyword}") public ResponseVO<Object> listAirDataByKeyword(@PathVariable String keyword) { List<AirDataBo> list = airDataService.listAirDataByKeyword(keyword); return ResponseUtil.success(list); @GetMapping("/listAirData") public ResponseVO<Object> listAirDataByKeyword(BaseConditionVO baseConditionVO, @RequestParam(required = false) String keyword) { List<AirDataBo> list = airDataService.listAirDataByKeyword(baseConditionVO, keyword); return ResponseUtil.successPage(list); } /** ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
@@ -32,7 +32,7 @@ * * @return */ @GetMapping("/listMonitorByKeyword") @PostMapping("/listMonitorByKeyword") public ResponseVO<Object> listMonitorByKeyword(@RequestBody MonitorParam monitorParam) { List<Monitor> list = monitorService.listMonitorByKeyword(monitorParam); return ResponseUtil.success(list); ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java
@@ -1,7 +1,11 @@ package com.sandu.ximon.admin.service; import cn.hutool.core.collection.CollUtil; import com.github.pagehelper.PageHelper; 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.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame; import com.sandu.ximon.dao.domain.AirData; @@ -41,21 +45,18 @@ } /** * 查询全部大气数据 */ public List<AirDataBo> listAirData() { return airDataMapper.listAirData(); } /** * 查询大气数据(模糊查询) */ public List<AirDataBo> listAirDataByKeyword(String keyword) { if (keyword == null || keyword.trim().length() == 0) { return listAirData(); } else { return airDataMapper.listAirDataByKeyword(keyword); public List<AirDataBo> listAirDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { Long clientId = SecurityUtils.getClientId(); PageHelper.startPage(baseConditionVO.getPageNo(),baseConditionVO.getPageSize()); List<Long> listAirId = baseMapper.listAirId(keyword,clientId); if(CollUtil.isEmpty(listAirId)){ return null; } List<AirDataBo> airDataBos = baseMapper.listAirDataByIds(listAirId); return airDataBos; } /** ximon-admin/src/main/resources/application-dev.yml
@@ -14,7 +14,7 @@ password: Sandu.520.ifzdm # Redis服务器连接密码(默认为空) timeout: 300ms # 连接超时时间(毫秒) server: port: 20017 port: 8080 sandu: jwt: header: Authorization