2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-01-04 9a46347d03f06ca89e0d12f0dcc10ade753d5b40
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>