five-groups-couplet/couplet-modules/couplet-business/src/main/resources/mapper/business/FenceMapper.xml

104 lines
4.1 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="com.couplet.business.server.mapper.FenceMapper">
<resultMap id="map" type="com.couplet.common.domain.Fence">
<id property="fenceId" column="fence_id"/>
<result property="fenceName" column="fence_name"/>
<result property="fenceDescription" column="fence_description"/>
<result property="fenceLongitudeLatitude" column="fence_longitude_latitude"/>
<result property="fenceState" column="fence_state"/>
<result property="createName" column="create_name" />
<result property="updateTime" column="update_time" />
<result property="isDelete" column="is_delete" />
<result property="maintainerName" column="maintainer_name" />
<result property="fenceCondition" column="fence_condition" />
</resultMap>
<resultMap id="logoMap" type="com.couplet.common.domain.Logo">
<id property="logoId" column="logo_id"/>
<result property="logoName" column="logo_name" />
</resultMap>
<sql id="selectFence">
SELECT
f.fence_id,
fence_name,
fence_longitude_latitude,
fence_description,
is_delete,
fence_state,
create_time,
update_time,
create_name,
maintainer_name,
alarm_status,
fence_condition,
l.logo_id,
GROUP_CONCAT(logo_name) as logoName
FROM couplet_fence_info f INNER JOIN couplet_fences_and_logo m on
f.fence_id=m.fences_id INNER JOIN couplet_logo_info l on l.logo_id=m.logo_id
</sql>
<sql id="fence">
SELECT
fence_id,
fence_name,
fence_longitude_latitude,
fence_description,
is_delete,
fence_state,
create_time,
update_time,
create_name,
maintainer_name,
alarm_status,
fence_condition
FROM couplet_fence_info
</sql>
<insert id="insertFence" parameterType="com.couplet.common.domain.request.FenceRequest" keyProperty="fenceId"
useGeneratedKeys="true">
INSERT INTO `couplet-cloud`.`couplet_fence_info`
(`fence_name`, `fence_longitude_latitude`, `fence_description`, `is_delete`, `fence_state`, `create_time`,
`update_time`, `create_name`, `maintainer_name`, `alarm_status`,`fence_condition`)
VALUES
(#{fenceName}, null, #{fenceDescription}, 0, 0, now(), null, null, #{maintainerName}, 0 ,0)
</insert>
<update id="changeFence" parameterType="com.couplet.common.domain.request.FenceUpdateRequest">
UPDATE `couplet-cloud`.`couplet_fence_info`
SET `fence_name` = #{fenceName},
`fence_longitude_latitude` = #{fenceLongitudeLatitude},
`fence_description` = #{fenceDescription},
`is_delete` = #{isDelete},
`fence_state` = #{fenceState},
`update_time` = now(),
`maintainer_name` = 'admin',
`alarm_status` = #{alarmStatus},
`fence_condition` = #{fenceCondition}
WHERE `fence_id` = #{fenceId}
</update>
<delete id="removeByFenceId" parameterType="java.lang.Long">
delete from couplet_fence_info where fence_id = #{fenceId}
</delete>
<select id="pageQuery" resultMap="map"
parameterType="com.couplet.common.domain.request.FenceConfig">
<include refid="selectFence"></include>
<where>
<if test="fenceName!=null and fenceName!='' ">
and fence_name like concat('%',#{fenceName},'%')
</if>
<if test="fenceState!=null">
and fence_state = #{fenceState}
</if>
</where>
GROUP BY f.fence_id
</select>
<select id="checkFenceKeyUnique" resultType="java.lang.Boolean">
<include refid="fence"/> where fence_name = #{fenceName}
</select>
</mapper>