186 lines
7.6 KiB
XML
186 lines
7.6 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.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 "dept_id"" 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>
|