<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.casic.missiles.mapper.DeviceBizDataMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.casic.missiles.model.DeviceBizData"> <id column="id" property="id"/> <result column="frame_log_id" property="frameLogId"/> <result column="devcode" property="devcode"/> <result column="device_type" property="deviceType"/> <result column="cell" property="cell"/> <result column="pci" property="pci"/> <result column="rsrp" property="rsrp"/> <result column="snr" property="snr"/> <result column="biz_type" property="bizType"/> <result column="value" property="value"/> <result column="uptime" property="uptime"/> <result column="logtime" property="logtime"/> </resultMap> <sql id="char_toDate" databaseId="mysql"> ${paramStr} </sql> <sql id="char_toDate" databaseId="pgsql"> TO_TIMESTAMP(${paramStr},'yyyy-MM-dd hh24:mi:ss')::timestamp without time zone </sql> <sql id="char_toDate" databaseId="oracle"> TO_DATE(${paramStr},'yyyy-mm-dd hh24:mi') </sql> <sql id="timestampToChar" databaseId="mysql"> DATA_FORMAT(#{column}, '%Y-m%-d% H%:i%:s%') </sql> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, frame_log_id, devcode, device_type, cell, pci, rsrp, snr, biz_type, value, uptime, logtime </sql> <sql id="Base_Biz_Data"> id, frame_log_id, devcode, device_type, cell, pci, rsrp, snr, biz_type, value, uptime, logtime </sql> <select id="latestBizData" resultType="com.casic.missiles.dto.data.DeviceBizDataDTO"> SELECT <include refid="Base_Biz_Data"></include> FROM device_biz_data dbd WHERE dbd.devcode = #{devCode} ORDER BY dbd.logtime DESC, dbd.id DESC LIMIT 1 </select> <select id="listPageBizData" resultType="com.casic.missiles.dto.data.DeviceBizDataDTO"> SELECT dbd.id, dbd.frame_log_id, dbd.devcode, dbd.device_type, dbd.cell, dbd.pci, dbd.rsrp, dbd.snr, dbd.biz_type, dbd.value, dbd.uptime, dbd.logtime FROM device_biz_data dbd LEFT JOIN device d ON d.devcode = dbd.devcode JOIN device_group dg ON dg.id = d.group_id WHERE d.valid = 1 <if test="request.devCode!='' and request.devCode != null"> AND dbd.devcode like CONCAT('%',#{request.devCode},'%') </if> <if test="request.bizType!='' and request.bizType != null"> AND dbd.biz_type =#{request.bizType} </if> <if test="request.groupId!='' and request.groupId != null"> AND d.group_id =#{request.groupId} </if> <if test="request.beginTime!='' and request.beginTime!=null"> AND dbd.logtime <![CDATA[ >= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.beginTime}"/> </include> </if> <if test="request.endTime!='' and request.endTime!=null"> AND dbd.logtime <![CDATA[ <= ]]> <include refid="char_toDate"> <property name="paramStr" value="#{request.endTime}"/> </include> </if> <if test="request.ids != null"> and dbd.id in <foreach collection="request.ids" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> ORDER BY dbd.logtime DESC, dbd.uptime DESC, dbd.id DESC </select> </mapper>