Files

186 lines
7.6 KiB
XML
Raw Normal View History

2021-11-29 10:00:15 +08:00
<?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.ailanyin.mapper.SysDeptMapper">
<resultMap type="SysDept" id="SysDeptResult">
<id property="deptId" column="dept_id" />
<result property="parentId" column="parent_id" />
<result property="ancestors" column="ancestors" />
<result property="deptName" column="dept_name" />
<result property="orderNum" column="order_num" />
<result property="leader" column="leader" />
<result property="phone" column="phone" />
<result property="email" column="email" />
<result property="status" column="status" />
<result property="delFlag" column="del_flag" />
<result property="parentName" column="parent_name" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectDeptVo">
select d."dept_id", d."parent_id", d."ancestors", d."dept_name", d."order_num", d."leader", d."phone", d."email", d."status", d."del_flag", d."create_by", d."create_time"
from ROOT."sys_dept" d
</sql>
<select id="selectRoleDeptTree" parameterType="Long" resultType="String">
select concat(d."dept_id", d."dept_name") as "dept_name"
from ROOT."sys_dept" d
left join ROOT."sys_role_dept" rd on d."dept_id" = rd."dept_id"
where d."del_flag" = '0' and rd."role_id" = #{roleId}
order by d."parent_id", d."order_num"
</select>
<select id="hasChildByDeptId" parameterType="Long" resultType="int">
select count(1) from ROOT."sys_dept"
where "del_flag" = '0' and "parent_id" = #{deptId} limit 1
</select>
<select id="selectDeptList" parameterType="SysDept" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where d."del_flag" = '0'
<if test="parentId != null and parentId != 0">
AND "parent_id" = #{parentId}
</if>
<if test="deptName != null and deptName != ''">
AND "dept_name" like concat(concat('%',#{deptName}),'%')
</if>
<if test="status != null and status != ''">
AND "status" = #{status}
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
order by d."parent_id", d."order_num"
</select>
<select id="checkDeptExistUser" parameterType="Long" resultType="int">
select count(1) from ROOT."sys_user" where "dept_id" = #{deptId} and "del_flag" = '0'
</select>
<select id="selectDeptCount" parameterType="SysDept" resultType="int">
select count(1) from ROOT."sys_dept"
where "del_flag" = '0'
<if test="deptId != null and deptId != 0"> and "dept_id" = #{deptId} </if>
<if test="parentId != null and parentId != 0"> and "parent_id" = #{parentId} </if>
</select>
<select id="checkDeptNameUnique" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where "dept_name"=#{deptName} and "parent_id" = #{parentId}
</select>
<select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
select d."dept_id", d."parent_id", d."ancestors", d."dept_name", d."order_num", d."leader", d."phone", d."email", d."status",
(select "dept_name" from ROOT."sys_dept" where "dept_id" = d."parent_id") "parent_name"
from ROOT."sys_dept" d
where d."dept_id" = #{deptId}
</select>
<select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
select * from ROOT."sys_dept" where "ancestors" like concat(concat('%,',#{deptName}),'%,')
</select>
<insert id="insertDept" parameterType="SysDept" >
insert into ROOT."sys_dept"(
<if test="parentId != null and parentId != 0">"parent_id",</if>
<if test="deptName != null and deptName != ''">"dept_name",</if>
<if test="ancestors != null and ancestors != ''">"ancestors",</if>
<if test="orderNum != null and orderNum != ''">"order_num",</if>
<if test="leader != null and leader != ''">"leader",</if>
<if test="phone != null and phone != ''">"phone",</if>
<if test="email != null and email != ''">"email",</if>
<if test="status != null">"status",</if>
<if test="createBy != null and createBy != ''">"create_by",</if>
"create_time"
)values(
<if test="parentId != null and parentId != 0">#{parentId},</if>
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="ancestors != null and ancestors != ''">#{ancestors},</if>
<if test="orderNum != null and orderNum != ''">#{orderNum},</if>
<if test="leader != null and leader != ''">#{leader},</if>
<if test="phone != null and phone != ''">#{phone},</if>
<if test="email != null and email != ''">#{email},</if>
<if test="status != null">#{status},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate
)
</insert>
<update id="updateDept" parameterType="SysDept">
update ROOT."sys_dept"
<set>
<if test="parentId != null and parentId != 0">"parent_id" = #{parentId},</if>
<if test="deptName != null and deptName != ''">"dept_name" = #{deptName},</if>
<if test="ancestors != null and ancestors != ''">"ancestors" = #{ancestors},</if>
<if test="orderNum != null and orderNum != ''">"order_num" = #{orderNum},</if>
<if test="leader != null">"leader" = #{leader},</if>
<if test="phone != null">"phone" = #{phone},</if>
<if test="email != null">"email" = #{email},</if>
<if test="status != null and status != ''">"status" = #{status},</if>
<if test="updateBy != null and updateBy != ''">"update_by" = #{updateBy},</if>
"update_time" = sysdate
</set>
where "dept_id" = #{deptId}
</update>
<update id="updateDeptChildren" parameterType="java.util.List">
update ROOT."sys_dept" set "ancestors" =
<foreach collection="deptList" item="item" index="index"
separator=" " open="case &quot;dept_id&quot;" close="end">
when #{item.deptId} then #{item.ancestors}
</foreach>
where "dept_id" in
<foreach collection="deptList" item="item" index="index"
separator="," open="(" close=")">
#{item.deptId}
</foreach>
</update>
<delete id="deleteDeptById" parameterType="Long">
update ROOT."sys_dept" set "del_flag" = '2' where "dept_id" = #{deptId}
</delete>
<update id="updateDeptStatus" parameterType="SysDept">
update ROOT."sys_dept"
<set>
<if test="status != null and status != ''">"status" = #{status},</if>
<if test="updateBy != null and updateBy != ''">"update_by" = #{updateBy},</if>
"update_time" = sysdate
</set>
where "dept_id" in (${"ancestors"})
</update>
<select id="selectAllChild" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where d."del_flag" = '0' AND d."parent_id" = #{deptId}
</select>
<select id="selectAllGrandson" resultMap="SysDeptResult">
<include refid="selectDeptVo"/>
where d."del_flag" = '0'
AND d."ancestors" like concat(concat('%,',#{deptId}),',%')
</select>
<update id="updateDeptStatusNormal" parameterType="Long">
update ROOT."sys_dept" set "status" = '0' where "dept_id" in
<foreach collection="array" item="deptId" open="(" separator="," close=")">
#{deptId}
</foreach>
</update>
<select id="selectDeptListByRoleId" resultType="Integer">
select d."dept_id"
from ROOT."sys_dept" d
left join ROOT."sys_role_dept" rd on d."dept_id" = rd."dept_id"
where rd."role_id" = #{roleId}
<if test="deptCheckStrictly">
and d."dept_id" not in (select d."parent_id" from ROOT."sys_dept" d inner join ROOT."sys_role_dept" rd on d."dept_id" = rd."dept_id" and rd."role_id" = #{roleId})
</if>
order by d."parent_id", d."order_num"
</select>
</mapper>