You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
8.5 KiB
213 lines
8.5 KiB
|
2 months ago
|
<?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.dongjian.dashboard.back.dao.ex.LevelRoleMapperExt">
|
||
|
|
|
||
|
|
<select id="checkExist" resultType="java.lang.Long">
|
||
|
|
SELECT
|
||
|
|
COUNT(1)
|
||
|
|
FROM
|
||
|
|
dashboard_level_role
|
||
|
|
WHERE
|
||
|
|
flag != 1 AND name = #{levelRoleName}
|
||
|
|
<if test="companyId != null">
|
||
|
|
AND company_id = #{companyId}
|
||
|
|
</if>
|
||
|
|
<if test="id != null">
|
||
|
|
AND id != #{id}
|
||
|
|
</if>
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getListPage" resultType="com.dongjian.dashboard.back.vo.levelrole.LevelRolePageDTO">
|
||
|
|
SELECT
|
||
|
|
dlr.id,
|
||
|
|
dlr.company_id,
|
||
|
|
dlr.name levelRoleName,
|
||
|
|
dlr.remark,
|
||
|
|
dlr.created_at
|
||
|
|
FROM
|
||
|
|
dashboard_level_role dlr
|
||
|
|
WHERE
|
||
|
|
dlr.flag != 1
|
||
|
|
AND dlr.company_id IN <foreach collection="companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
|
||
|
|
<if test="idList != null">
|
||
|
|
AND dlr.id IN <foreach collection="idList" item="item" open="(" separator="," close=")">#{item}</foreach>
|
||
|
|
</if>
|
||
|
|
<if test="levelRoleName != null and levelRoleName != '' ">
|
||
|
|
AND dlr.name LIKE CONCAT('%',#{levelRoleName},'%')
|
||
|
|
</if>
|
||
|
|
ORDER BY dlr.id DESC
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 全量查 Branch -->
|
||
|
|
<select id="selectAllBranches" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
|
||
|
|
SELECT
|
||
|
|
id,
|
||
|
|
name,
|
||
|
|
NULL AS parentId,
|
||
|
|
'BRANCH' AS type
|
||
|
|
FROM dashboard_level_branch
|
||
|
|
WHERE flag = 0 and company_id = #{companyId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 全量查 Store -->
|
||
|
|
<select id="selectAllStores" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
|
||
|
|
SELECT s.id,
|
||
|
|
s.name,
|
||
|
|
r.branch_id AS parentId,
|
||
|
|
'STORE' AS type
|
||
|
|
FROM dashboard_level_store s
|
||
|
|
LEFT JOIN dashboard_level_relation_branch_store r
|
||
|
|
ON s.id = r.store_id
|
||
|
|
WHERE s.flag = 0 and s.company_id = #{companyId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 全量查 Area -->
|
||
|
|
<select id="selectAllAreas" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
|
||
|
|
SELECT a.id,
|
||
|
|
a.name,
|
||
|
|
r.store_id AS parentId,
|
||
|
|
'AREA' AS type
|
||
|
|
FROM dashboard_level_area a
|
||
|
|
LEFT JOIN dashboard_level_relation_store_area r
|
||
|
|
ON a.id = r.area_id
|
||
|
|
WHERE a.flag = 0 and a.company_id = #{companyId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 全量查 Site -->
|
||
|
|
<select id="selectAllSites" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
|
||
|
|
SELECT s.id,
|
||
|
|
s.name,
|
||
|
|
r.area_id AS parentId,
|
||
|
|
'SITE' AS type
|
||
|
|
FROM dashboard_level_site s
|
||
|
|
LEFT JOIN dashboard_level_relation_area_site r
|
||
|
|
ON s.id = r.site_id
|
||
|
|
WHERE s.flag = 0 and s.company_id = #{companyId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 全量查 Building -->
|
||
|
|
<select id="selectAllBuildings" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
|
||
|
|
SELECT b.building_id AS id,
|
||
|
|
b.name,
|
||
|
|
r.site_id AS parentId,
|
||
|
|
'BUILDING' AS type
|
||
|
|
FROM basic_building b
|
||
|
|
LEFT JOIN dashboard_level_relation_site_building r
|
||
|
|
ON b.building_id = r.building_id
|
||
|
|
WHERE b.flag = 0 and b.company_id = #{companyId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<!-- 查用户绑定节点 -->
|
||
|
|
<select id="selectUserRefs" resultType="com.dongjian.dashboard.back.vo.levelrole.RefKey">
|
||
|
|
SELECT o.ref_type AS type,
|
||
|
|
o.ref_id AS id
|
||
|
|
FROM dashboard_level_role_user u
|
||
|
|
INNER JOIN dashboard_level_role_object o
|
||
|
|
ON u.level_role_id = o.level_role_id
|
||
|
|
LEFT JOIN dashboard_level_branch b
|
||
|
|
ON o.ref_type = 'BRANCH' AND o.ref_id = b.id
|
||
|
|
LEFT JOIN dashboard_level_store s
|
||
|
|
ON o.ref_type = 'STORE' AND o.ref_id = s.id
|
||
|
|
LEFT JOIN dashboard_level_area a
|
||
|
|
ON o.ref_type = 'AREA' AND o.ref_id = a.id
|
||
|
|
LEFT JOIN dashboard_level_site si
|
||
|
|
ON o.ref_type = 'SITE' AND o.ref_id = si.id
|
||
|
|
LEFT JOIN basic_building bu
|
||
|
|
ON o.ref_type = 'BUILDING' AND o.ref_id = bu.building_id
|
||
|
|
WHERE u.user_id = #{userId}
|
||
|
|
AND CASE o.ref_type
|
||
|
|
WHEN 'BRANCH' THEN IFNULL(b.flag, 1)
|
||
|
|
WHEN 'STORE' THEN IFNULL(s.flag, 1)
|
||
|
|
WHEN 'AREA' THEN IFNULL(a.flag, 1)
|
||
|
|
WHEN 'SITE' THEN IFNULL(si.flag, 1)
|
||
|
|
WHEN 'BUILDING' THEN IFNULL(bu.flag, 1)
|
||
|
|
END = 0
|
||
|
|
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getBoundLevelByRole" resultType="java.lang.String">
|
||
|
|
SELECT
|
||
|
|
CONCAT(dlro.ref_type, '-', dlro.ref_id) AS id
|
||
|
|
FROM dashboard_level_role_object dlro
|
||
|
|
INNER JOIN dashboard_level_role dlr
|
||
|
|
ON dlr.id = dlro.level_role_id
|
||
|
|
LEFT JOIN dashboard_level_branch b
|
||
|
|
ON dlro.ref_type = 'BRANCH' AND dlro.ref_id = b.id
|
||
|
|
LEFT JOIN dashboard_level_store s
|
||
|
|
ON dlro.ref_type = 'STORE' AND dlro.ref_id = s.id
|
||
|
|
LEFT JOIN dashboard_level_area a
|
||
|
|
ON dlro.ref_type = 'AREA' AND dlro.ref_id = a.id
|
||
|
|
LEFT JOIN dashboard_level_site si
|
||
|
|
ON dlro.ref_type = 'SITE' AND dlro.ref_id = si.id
|
||
|
|
LEFT JOIN basic_building bu
|
||
|
|
ON dlro.ref_type = 'BUILDING' AND dlro.ref_id = bu.building_id
|
||
|
|
WHERE dlr.flag != 1
|
||
|
|
AND dlr.id = #{roleId}
|
||
|
|
AND CASE dlro.ref_type
|
||
|
|
WHEN 'BRANCH' THEN IFNULL(b.flag, 1)
|
||
|
|
WHEN 'STORE' THEN IFNULL(s.flag, 1)
|
||
|
|
WHEN 'AREA' THEN IFNULL(a.flag, 1)
|
||
|
|
WHEN 'SITE' THEN IFNULL(si.flag, 1)
|
||
|
|
WHEN 'BUILDING' THEN IFNULL(bu.flag, 1)
|
||
|
|
END = 0
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getAlreadyBoundUserPage" resultType="com.dongjian.dashboard.back.vo.levelrole.UserBoundRolePageDTO">
|
||
|
|
SELECT
|
||
|
|
dlr.id,
|
||
|
|
dlr.company_id,
|
||
|
|
dlr.name levelRoleName,
|
||
|
|
dlr.remark,
|
||
|
|
dlr.created_at,
|
||
|
|
dlru.id AS relationId,
|
||
|
|
dlru.ref_type,
|
||
|
|
buser.id AS userId,
|
||
|
|
buser.mobile_number,
|
||
|
|
buser.login_name,
|
||
|
|
buser.email
|
||
|
|
FROM
|
||
|
|
dashboard_level_role dlr
|
||
|
|
INNER JOIN dashboard_level_role_user dlru ON dlr.id = dlru.level_role_id
|
||
|
|
INNER JOIN data_center_aeon_admin.basic_user buser ON buser.id = dlru.user_id
|
||
|
|
WHERE
|
||
|
|
dlr.flag != 1
|
||
|
|
AND buser.company_id IN <foreach collection="companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
|
||
|
|
<if test="targetUserId != null">
|
||
|
|
AND dlru.user_id = #{targetUserId}
|
||
|
|
</if>
|
||
|
|
ORDER BY dlru.created_at DESC, dlru.level_role_id DESC
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="getCanBeBoundUserPage" resultType="com.dongjian.dashboard.back.vo.levelrole.UserBindLevelRoleVO">
|
||
|
|
SELECT
|
||
|
|
u.id userId,
|
||
|
|
u.username,
|
||
|
|
u.email,
|
||
|
|
u.mobile_number
|
||
|
|
FROM
|
||
|
|
data_center_aeon_admin.basic_user u
|
||
|
|
WHERE u.id NOT IN (
|
||
|
|
SELECT DISTINCT
|
||
|
|
rru.user_id
|
||
|
|
FROM
|
||
|
|
data_center_aeon_admin.basic_role_user_relation rru
|
||
|
|
INNER JOIN data_center_aeon_admin.basic_role br ON br.id = rru.role_id
|
||
|
|
INNER JOIN data_center_aeon_admin.basic_role_menu_relation rmr ON br.id = rmr.role_id
|
||
|
|
WHERE rmr.menu_id = 88 AND br.flag != 1
|
||
|
|
)
|
||
|
|
AND u.flag != 1 AND u.user_type = 2
|
||
|
|
AND u.company_id IN <foreach collection="companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach>
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="checkLevelManager" resultType="java.lang.Integer">
|
||
|
|
SELECT
|
||
|
|
count(1)
|
||
|
|
FROM
|
||
|
|
data_center_aeon_admin.basic_role_user_relation rru
|
||
|
|
INNER JOIN data_center_aeon_admin.basic_role br ON br.id = rru.role_id
|
||
|
|
INNER JOIN data_center_aeon_admin.basic_role_menu_relation rmr ON br.id = rmr.role_id
|
||
|
|
WHERE rmr.menu_id = 88 AND br.flag != 1 AND rru.user_id = #{userId}
|
||
|
|
</select>
|
||
|
|
|
||
|
|
|
||
|
|
</mapper>
|