实现类
SysUser sysUser = ShiroUtils.getSysUser();
if (!sysUser.isAdmin()) {
wgEnterpriceStyle.setCreateUserId(sysUser.getUserId());
}
mapper.xml
oracle写法
<select id="selectWgEnterpriceStyleList" resultMap="WgEnterpriceStyleResult">
<include refid="selectWgEnterpriceStyleVo"/>
LEFT join SYS_USER u on f.create_user_id = u.user_id
<if test="wgEnterpriceStyle.createUserId != null">
INNER JOIN (
select
DEPT_ID
from
SYS_DEPT start with DEPT_ID = (select DEPT_ID from SYS_USER where user_id = #{wgEnterpriceStyle.createUserId}) connect
by prior DEPT_ID = PARENT_ID
)d on u.dept_id = d.DEPT_ID
</if>
</select>
mysql写法
<select id="selectWgEnterpriceStyleList" resultMap="WgEnterpriceStyleResult">
<include refid="selectWgEnterpriceStyleVo"/>
LEFT join SYS_USER u on f.create_user_id = u.user_id
<if test="wgEnterpriceStyle.createUserId != null">
INNER JOIN (
select
DEPT_ID
from
SYS_DEPT where (find_in_set(#{wgEnterpriceStyle.createUserId}, ancestors) or dept_id=#{wgEnterpriceStyle.createUserId}) and del_flag=0
)d on u.dept_id = d.DEPT_ID
</if>
</select>
简单来讲
表A
INNER JOIN
sys_user c on A.create_user_id = c.user_id
INNER JOIN
d on c.dept_id = d.dept_id
d表就是查询当前登录用户所在的部门和该部门管辖下的所有小部门
整体意思:
查询当前登录用户所在的部门和该部门管辖下的所有小部门创建的A表记录