206 lines
7.2 KiB
XML
206 lines
7.2 KiB
XML
<?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="net.shapelight.modules.ten.dao.TenPersonSyncDao">
|
|
|
|
<!-- 可根据自己的需求,是否要使用 -->
|
|
<resultMap type="net.shapelight.modules.ten.entity.TenPersonSyncEntity" id="tenPersonSyncMap">
|
|
<result property="personSyncId" column="person_sync_id"/>
|
|
<result property="deviceId" column="device_id"/>
|
|
<result property="deviceSn" column="device_sn"/>
|
|
<result property="personId" column="person_id"/>
|
|
<result property="state" column="state"/>
|
|
<result property="lastUpdateTime" column="last_update_time"/>
|
|
<result property="tenantId" column="tenant_id"/>
|
|
</resultMap>
|
|
|
|
<resultMap id="idupdatetime" type="net.shapelight.modules.vo.TenPersonIdUpdateAllVo">
|
|
<result column="person_id" jdbcType="BIGINT" property="uid"/>
|
|
<result column="last_update_time" jdbcType="TIMESTAMP" property="last_update_stamp"/>
|
|
</resultMap>
|
|
|
|
|
|
<insert id="insertBatch" parameterType="java.util.List">
|
|
INSERT INTO ten_person_sync_${cellId}
|
|
(device_id,
|
|
device_sn,
|
|
person_id,
|
|
state,
|
|
last_update_time,
|
|
tenant_id)
|
|
VALUES
|
|
<foreach collection="list" item="item" open="(" close=")" separator="),(">
|
|
#{item.deviceId},
|
|
#{item.deviceSn},
|
|
#{item.personId},
|
|
#{item.state},
|
|
#{item.lastUpdateTime},
|
|
#{item.tenantId}
|
|
</foreach>
|
|
</insert>
|
|
|
|
<insert id="insert" parameterType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
insert into ten_person_sync_${cellId}
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
<if test="personSyncId != null">
|
|
person_sync_id,
|
|
</if>
|
|
<if test="deviceId != null">
|
|
device_id,
|
|
</if>
|
|
<if test="deviceSn != null">
|
|
device_sn,
|
|
</if>
|
|
<if test="personId != null">
|
|
person_id,
|
|
</if>
|
|
<if test="state != null">
|
|
state,
|
|
</if>
|
|
<if test="lastUpdateTime != null">
|
|
last_update_time,
|
|
</if>
|
|
<if test="tenantId != null">
|
|
tenant_id
|
|
</if>
|
|
</trim>
|
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
<if test="personSyncId != null">
|
|
#{personSyncId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="deviceId != null">
|
|
#{deviceId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="deviceSn != null">
|
|
#{deviceSn},
|
|
</if>
|
|
<if test="personId != null">
|
|
#{personId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="state != null">
|
|
#{state,jdbcType=TINYINT},
|
|
</if>
|
|
<if test="lastUpdateTime != null">
|
|
#{lastUpdateTime,jdbcType=TIMESTAMP},
|
|
</if>
|
|
<if test="tenantId != null">
|
|
#{tenantId,jdbcType=BIGINT},
|
|
</if>
|
|
</trim>
|
|
</insert>
|
|
|
|
|
|
<update id="updateById" parameterType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
update ten_person_sync_${cellId}
|
|
<set>
|
|
<if test="personSyncId != null">
|
|
person_sync_id = #{personSyncId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="deviceId != null">
|
|
device_id = #{deviceId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="deviceSn != null">
|
|
device_sn = #{deviceSn},
|
|
</if>
|
|
<if test="personId != null">
|
|
person_id = #{personId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="state != null">
|
|
state = #{state,jdbcType=TINYINT},
|
|
</if>
|
|
<if test="lastUpdateTime != null">
|
|
last_update_time = #{lastUpdateTime,jdbcType=TIMESTAMP},
|
|
</if>
|
|
<if test="tenantId != null">
|
|
tenant_id = #{tenantId,jdbcType=TIMESTAMP},
|
|
</if>
|
|
</set>
|
|
where person_sync_id = #{personSyncId,jdbcType=BIGINT}
|
|
</update>
|
|
|
|
|
|
<select id="getDeviceAllPersonIdUpdateTime" resultMap="idupdatetime">
|
|
select person_id,last_update_time from ten_person_sync_${cellId}
|
|
where 1=1
|
|
<if test="deviceId != null and deviceId!=''">
|
|
and device_id = #{deviceId}
|
|
</if>
|
|
and state <> 3
|
|
</select>
|
|
|
|
<delete id="removeAllDeletePersons">
|
|
delete from ten_person_sync_${cellId}
|
|
where device_id = #{deviceId}
|
|
and state = 3
|
|
</delete>
|
|
|
|
|
|
<delete id="removeByDeviceId">
|
|
delete from ten_person_sync_${cellId}
|
|
where device_id = #{deviceId}
|
|
</delete>
|
|
|
|
<delete id="removePersonSyncId">
|
|
delete from ten_person_sync_${cellId}
|
|
where person_sync_id = #{personSyncId}
|
|
</delete>
|
|
|
|
|
|
<select id="findByDeviceIdAndPersonId" resultType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
select * from ten_person_sync_${cellId}
|
|
where device_id = #{deviceId}
|
|
and person_id = #{personId}
|
|
order by last_update_time desc
|
|
limit 1
|
|
</select>
|
|
|
|
<select id="findByPersonId" resultType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
select * from ten_person_sync_${cellId}
|
|
where person_id = #{personId}
|
|
</select>
|
|
|
|
|
|
<select id="findGroupDevicePersons" resultType="map">
|
|
select device_sn as deviceSn,group_concat(person_id,"_",last_update_time separator ",") as plist
|
|
from ten_person_sync_${cellId} where 1= 1
|
|
<if test="personIds != null">
|
|
and person_id in
|
|
<foreach item="personId" collection="personIds" open="(" separator="," close=")">
|
|
#{personId}
|
|
</foreach>
|
|
</if>
|
|
GROUP BY device_sn
|
|
</select>
|
|
|
|
<select id="findGroupDevicePerson" resultType="map">
|
|
select device_sn as deviceSn,group_concat(person_id,"_",last_update_time separator ",") as plist
|
|
from ten_person_sync_${cellId} where 1= 1
|
|
<if test="personIds != null">
|
|
and person_id = #{personId}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="findDeviceAllDeletePersons" resultType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
select * from ten_person_sync_${cellId}
|
|
where device_id = #{deviceId}
|
|
and state = 3
|
|
</select>
|
|
|
|
<select id="findDeviceAllAddPersons" resultType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
select * from ten_person_sync_${cellId}
|
|
where device_id = #{deviceId}
|
|
and state = 1
|
|
</select>
|
|
|
|
<select id="findTwo" resultType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
select device_id, person_id, count(*) from ten_person_sync_${cellId} group by device_id, person_id having count(*) > 1
|
|
</select>
|
|
|
|
<select id="findByDeviceIdAndPersonIdTwo" resultType="net.shapelight.modules.ten.entity.TenPersonSyncEntity">
|
|
select * from ten_person_sync_${cellId}
|
|
where device_id = #{deviceId}
|
|
and person_id = #{personId}
|
|
</select>
|
|
|
|
</mapper>
|