You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

271 lines
13 KiB

<?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.fastbee.iot.mapper.DeviceLogMapper">
<resultMap type="com.fastbee.iot.model.MonitorModel" id="MonitorResult">
<result property="value" column="log_value" />
<result property="time" column="create_time" />
</resultMap>
<resultMap type="com.fastbee.iot.domain.DeviceLog" id="DeviceLogResult">
<result property="logId" column="log_id" />
<result property="logType" column="log_type" />
<result property="logValue" column="log_value" />
<result property="deviceId" column="device_id" />
<result property="deviceName" column="device_name" />
<result property="serialNumber" column="serial_number" />
<result property="identity" column="identity" />
<result property="createBy" column="create_by" />
<result property="isMonitor" column="is_monitor" />
<result property="mode" column="mode" />
<result property="createTime" column="create_time" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="tenantId" column="tenant_id" />
<result property="tenantName" column="tenant_name" />
<result property="remark" column="remark" />
</resultMap>
<resultMap type="com.fastbee.iot.model.HistoryModel" id="HistoryResult">
<result property="value" column="log_value" />
<result property="time" column="create_time" />
<result property="identity" column="identity" />
</resultMap>
<sql id="selectDeviceLogVo">
select log_id, log_type, log_value, device_id, device_name,serial_number, identity, create_by, is_monitor,mode, user_id, user_name, tenant_id, tenant_name, create_time, remark from iot_device_log
</sql>
<select id="selectMonitorList" parameterType="com.fastbee.iot.domain.DeviceLog" resultMap="MonitorResult">
select log_value, create_time from iot_device_log
<where>
<if test="1==1"> and is_monitor=1</if>
<if test="identity != null and identity != ''"> and identity = #{identity}</if>
<if test="deviceId != null and deviceId !=0"> and device_id = #{deviceId}</if>
<if test="serialNumber != null and serialNumber !=''"> and serial_number = #{serialNumber}</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> and create_time between #{beginTime} and #{endTime}</if>
</where>
order by create_time desc
limit #{total}
</select>
<select id="selectDeviceLogList" parameterType="com.fastbee.iot.domain.DeviceLog" resultMap="DeviceLogResult">
<include refid="selectDeviceLogVo"/>
<where>
<if test="isMonitor != null"> and is_monitor = #{isMonitor}</if>
<if test="deviceId != null and deviceId !=0"> and device_id = #{deviceId}</if>
<if test="serialNumber != null and serialNumber !=''"> and serial_number = #{serialNumber}</if>
<if test="logType != null "> and log_type = #{logType}</if>
<if test="identity != null and identity != ''"> and identity like concat('%', #{identity}, '%')</if>
</where>
order by create_time desc
</select>
<select id="selectDeviceLogByLogId" parameterType="Long" resultMap="DeviceLogResult">
<include refid="selectDeviceLogVo"/>
where log_id = #{logId}
</select>
<select id="selectDeviceLogCount" parameterType="Long" resultType="com.fastbee.iot.model.DeviceStatistic">
SELECT
count(1) AS propertyCount,
COUNT(CASE WHEN is_monitor = 1 THEN 1 END) AS monitorCount
from iot_device_log
<where>
log_type = 1
<if test="tenantId != null and tenantId != 0"> and user_id = #{userId}</if>
</where>
</select>
<insert id="insertDeviceLog" parameterType="com.fastbee.iot.domain.DeviceLog" useGeneratedKeys="true" keyProperty="logId">
insert into iot_device_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="logType != null">log_type,</if>
<if test="logValue != null">log_value,</if>
<if test="deviceId != null">device_id,</if>
<if test="deviceName != null and deviceName != ''">device_name,</if>
<if test="serialNumber != null and serialNumber != ''">serial_number,</if>
<if test="identity != null">identity,</if>
<if test="createBy != null">create_by,</if>
<if test="isMonitor != null">is_monitor,</if>
<if test="mode != null">mode,</if>
<if test="createTime != null">create_time,</if>
<if test="remark != null">remark,</if>
<if test="userId != null">user_id,</if>
<if test="userName != null and userName != ''">user_name,</if>
<if test="tenantId != null">tenant_id,</if>
<if test="tenantName != null and tenantName != ''">tenant_name,</if>
<if test="modelName != null and modelName != ''">model_name,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="logType != null">#{logType},</if>
<if test="logValue != null">#{logValue},</if>
<if test="deviceId != null">#{deviceId},</if>
<if test="deviceName != null and deviceName != ''">#{deviceName},</if>
<if test="serialNumber != null and serialNumber != ''">#{serialNumber},</if>
<if test="identity != null">#{identity},</if>
<if test="createBy != null">#{createBy},</if>
<if test="isMonitor != null">#{isMonitor},</if>
<if test="mode != null">#{mode},</if>
<if test="createTime != null">#{createTime},</if>
<if test="remark != null">#{remark},</if>
<if test="userId != null">#{userId},</if>
<if test="userName != null and userName != ''">#{userName},</if>
<if test="tenantId != null">#{tenantId},</if>
<if test="tenantName != null and tenantName != ''">#{tenantName},</if>
<if test="modelName != null and modelName != ''">#{modelName},</if>
</trim>
</insert>
<insert id="saveBatch" parameterType="com.fastbee.iot.domain.DeviceLog">
insert into iot_device_log (log_type,log_value,device_id,device_name,serial_number,identity,create_by,
is_monitor,mode,create_time,remark,user_id,user_name,tenant_id,tenant_name,model_name)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.logType},#{item.logValue},#{item.deviceId},#{item.deviceName},#{item.serialNumber},
#{item.identity},#{item.createBy},#{item.isMonitor},#{item.mode},#{item.createTime},#{item.remark},
#{item.userId},#{item.userName},#{item.tenantId},#{item.tenantName},#{item.modelName})
</foreach>
</insert>
<update id="updateDeviceLog" parameterType="com.fastbee.iot.domain.DeviceLog">
update iot_device_log
<trim prefix="SET" suffixOverrides=",">
<if test="logType != null">log_type = #{logType},</if>
<if test="logValue != null">log_value = #{logValue},</if>
<if test="deviceId != null">device_id = #{deviceId},</if>
<if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if>
<if test="serialNumber != null and serialNumber != ''">serial_number = #{serialNumber},</if>
<if test="identity != null">identity = #{identity},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="isMonitor != null">is_monitor = #{isMonitor},</if>
<if test="mode != null">mode = #{mode},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="tenantId != null">tenant_id = #{tenantId},</if>
<if test="tenantName != null and tenantName != ''">tenant_name = #{tenantName},</if>
</trim>
where log_id = #{logId}
</update>
<delete id="deleteDeviceLogByLogId" parameterType="Long">
delete from iot_device_log where log_id = #{logId}
</delete>
<delete id="deleteDeviceLogByLogIds" parameterType="String">
delete from iot_device_log where log_id in
<foreach item="logId" collection="array" open="(" separator="," close=")">
#{logId}
</foreach>
</delete>
<delete id="deleteDeviceLogByDeviceNumber" parameterType="String">
delete from iot_device_log where serial_number = #{deviceNumber}
</delete>
<select id="selectHistoryList" parameterType="com.fastbee.iot.domain.DeviceLog" resultMap="HistoryResult">
select l.log_value,
l.create_time,
l.identity
from iot_device_log l
<where>
<if test="serialNumber != null and serialNumber != ''">
and l.serial_number = #{serialNumber}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and l.create_time between #{beginTime} and #{endTime}
</if>
</where>
order by l.create_time desc
</select>
<select id="listHistory" parameterType="com.fastbee.iot.domain.DeviceLog" resultMap="HistoryResult">
select log_value,
create_time,
identity
from iot_device_log
<where>
<if test="serialNumber != null and serialNumber != ''">
and serial_number = #{serialNumber}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and create_time between #{beginTime} and #{endTime}
</if>
<if test="identityList != null and identityList != ''">
and identity in
<foreach collection="identityList" item="identity" open="(" separator="," close=")">
#{identity}
</foreach>
</if>
<if test="logType != null">
and log_type = #{logType}
</if>
</where>
order by create_time desc
</select>
<select id="listhistoryGroupByCreateTime" resultType="com.fastbee.iot.model.HistoryModel">
select l.create_time as time, group_concat(distinct l.identity) as identity, group_concat(distinct l.log_value) as value
from iot_device_log l
<where>
<if test="serialNumber != null and serialNumber != ''">
and l.serial_number = #{serialNumber}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and l.create_time between #{beginTime} and #{endTime}
</if>
</where>
group by l.create_time
order by l.create_time desc
</select>
<select id="selectStatsValue" resultType="java.lang.String">
select log_value
from iot_device_log
<where>
<if test="logType != null">
and log_type = #{logType}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and create_time between #{beginTime} and #{endTime}
</if>
<if test="identity != null and identity != ''">
and identity = #{identity}
</if>
<if test="serialNumber != null and serialNumber != ''">
and serial_number = #{serialNumber}
</if>
</where>
</select>
<select id="countThingsModelInvoke" resultType="com.fastbee.iot.model.ThingsModelLogCountVO">
select identity identifier, min(model_name) modelName, count(identity) `count`
from iot_device_log
where log_type = 2
<if test="serialNumber != null and serialNumber != ''">
and serial_number = #{serialNumber}
</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and create_time between #{beginTime} and #{endTime}
</if>
group by identity
</select>
<select id="selectLastReport" parameterType="com.fastbee.iot.domain.DeviceLog" resultMap="DeviceLogResult">
<include refid="selectDeviceLogVo"/>
<where>
<if test="serialNumber != null and serialNumber != ''">
and serial_number = #{serialNumber}
</if>
<if test="identity != null and identity != ''"> and identity = #{identity}</if>
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
and create_time between #{beginTime} and #{endTime}
</if>
</where>
order by create_time desc
LIMIT 1
</select>
</mapper>