2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-01-04 9a46347d03f06ca89e0d12f0dcc10ade753d5b40
大气数据查询
已修改6个文件
129 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/mapper/AirDataMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/AirDataMapper.xml 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/AirDataController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/AirDataService.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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