<?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.ruoyi.system.mapper.SysVisitAreaMapper">
|
|
<resultMap type="SysVisitArea" id="SysVisitAreaResult">
|
<id property="areaId" column="area_id" />
|
<result property="parentId" column="parent_id" />
|
<result property="ancestors" column="ancestors" />
|
<result property="areaCode" column="area_code" />
|
<result property="areaName" column="area_name" />
|
<result property="areaDesc" column="area_desc" />
|
<result property="orderNum" column="order_num" />
|
<result property="delFlag" column="del_flag" />
|
<result property="createBy" column="create_by" />
|
<result property="createTime" column="create_time" />
|
<result property="updateBy" column="update_by" />
|
<result property="updateTime" column="update_time" />
|
<result property="remark" column="remark" />
|
</resultMap>
|
|
<resultMap type="SysVisitAreaVO" id="SysVisitAreaVOResult">
|
<id property="areaId" column="area_id" />
|
<result property="parentId" column="parent_id" />
|
<result property="parentName" column="parent_name" />
|
<result property="areaCode" column="area_code" />
|
<result property="areaName" column="area_name" />
|
<result property="areaDesc" column="area_desc" />
|
<result property="orderNum" column="order_num" />
|
<result property="createTime" column="create_time" />
|
</resultMap>
|
|
<sql id="selectAreaDomain">
|
select area_id,
|
parent_id,
|
ancestors,
|
area_code,
|
area_name,
|
area_desc,
|
order_num,
|
del_flag,
|
create_by,
|
create_time,
|
update_by,
|
update_time,
|
remark
|
from t_visit_area
|
</sql>
|
|
<sql id="selectAreaVo">
|
select a.area_id,
|
a.parent_id,
|
p.area_name as parent_name,
|
a.area_code,
|
a.area_name,
|
a.area_desc,
|
a.order_num,
|
a.create_time
|
from t_visit_area a
|
left join t_visit_area p on p.area_id = a.parent_id and p.del_flag = '0'
|
</sql>
|
|
<select id="selectAreaTreeList" resultMap="SysVisitAreaVOResult">
|
<include refid="selectAreaVo" />
|
where a.del_flag = '0'
|
<if test="query != null and query.areaName != null and query.areaName != ''">
|
and a.area_name like concat('%', #{query.areaName}, '%')
|
</if>
|
order by a.parent_id, a.order_num, a.area_id
|
</select>
|
|
<select id="selectVoById" parameterType="Long" resultMap="SysVisitAreaVOResult">
|
<include refid="selectAreaVo" />
|
where a.area_id = #{areaId}
|
and a.del_flag = '0'
|
</select>
|
|
<select id="selectById" parameterType="Long" resultMap="SysVisitAreaResult">
|
<include refid="selectAreaDomain" />
|
where area_id = #{areaId}
|
and del_flag = '0'
|
</select>
|
|
<select id="checkAreaNameUnique" resultMap="SysVisitAreaResult">
|
<include refid="selectAreaDomain" />
|
where area_name = #{areaName}
|
and parent_id = #{parentId}
|
and del_flag = '0'
|
<if test="excludeAreaId != null">
|
and area_id != #{excludeAreaId}
|
</if>
|
limit 1
|
</select>
|
|
<select id="checkAreaCodeUnique" resultMap="SysVisitAreaResult">
|
<include refid="selectAreaDomain" />
|
where area_code = #{areaCode}
|
and del_flag = '0'
|
<if test="excludeAreaId != null">
|
and area_id != #{excludeAreaId}
|
</if>
|
limit 1
|
</select>
|
|
<insert id="insertArea" parameterType="SysVisitArea" useGeneratedKeys="true" keyProperty="areaId">
|
insert into t_visit_area (
|
parent_id,
|
ancestors,
|
area_code,
|
area_name,
|
area_desc,
|
order_num,
|
create_by,
|
create_time
|
) values (
|
#{parentId},
|
#{ancestors},
|
#{areaCode},
|
#{areaName},
|
#{areaDesc},
|
#{orderNum},
|
#{createBy},
|
sysdate()
|
)
|
</insert>
|
|
<update id="updateArea" parameterType="SysVisitArea">
|
update t_visit_area
|
set parent_id = #{parentId},
|
ancestors = #{ancestors},
|
area_code = #{areaCode},
|
area_name = #{areaName},
|
area_desc = #{areaDesc},
|
order_num = #{orderNum},
|
update_by = #{updateBy},
|
update_time = sysdate()
|
where area_id = #{areaId}
|
and del_flag = '0'
|
</update>
|
|
<update id="updateChildrenAncestors">
|
update t_visit_area
|
set ancestors = replace(ancestors, #{oldAncestors}, #{newAncestors}),
|
update_time = sysdate()
|
where del_flag = '0'
|
and find_in_set(#{areaId}, ancestors)
|
</update>
|
|
<select id="countChildrenByParentIds" resultType="int">
|
select count(1)
|
from t_visit_area
|
where del_flag = '0'
|
and parent_id in
|
<foreach collection="parentIds" item="parentId" open="(" separator="," close=")">
|
#{parentId}
|
</foreach>
|
</select>
|
|
<update id="deleteByIds">
|
update t_visit_area
|
set del_flag = '1',
|
update_by = #{updateBy},
|
update_time = sysdate()
|
where del_flag = '0'
|
and (
|
area_id in
|
<foreach collection="areaIds" item="areaId" open="(" separator="," close=")">
|
#{areaId}
|
</foreach>
|
<foreach collection="areaIds" item="areaId">
|
or find_in_set(#{areaId}, ancestors)
|
</foreach>
|
)
|
</update>
|
</mapper>
|