id, banner_id, title, image_url, link_type, link_id, link_url, order_num, status,
creator, updater, create_time, update_time, delete_time, deleted
deleted = 0
AND banner_id = #{bannerID}
AND title LIKE CONCAT('%', #{title}, '%')
AND link_type = #{linkType}
AND link_id = #{linkID}
AND status = #{status}
deleted = 0
AND banner_id = #{filter.bannerID}
AND title LIKE CONCAT('%', #{filter.title}, '%')
AND link_type = #{filter.linkType}
AND link_id = #{filter.linkID}
AND status = #{filter.status}
INNER JOIN tb_resource_permission rp ON b.banner_id = rp.resource_id
AND rp.resource_type = 8
AND rp.deleted = 0
AND rp.can_read = 1
AND (
-- 全局权限:所有用户可访问
(rp.dept_id IS NULL AND rp.role_id IS NULL)
OR EXISTS (
SELECT 1
FROM (
SELECT #{udr.deptID} AS dept_id, #{udr.deptPath} AS dept_path, #{udr.roleID} AS role_id
) user_roles
LEFT JOIN tb_sys_dept perm_dept ON perm_dept.dept_id = rp.dept_id AND perm_dept.deleted = 0
WHERE
-- 部门级权限:当前部门或父部门(通过dept_path判断继承关系)
(rp.role_id IS NULL AND rp.dept_id IS NOT NULL
AND user_roles.dept_path LIKE CONCAT(perm_dept.dept_path, '%'))
-- 角色级权限:跨部门的角色权限
OR (rp.dept_id IS NULL AND rp.role_id = user_roles.role_id)
-- 精确权限:特定部门的特定角色
OR (rp.dept_id = user_roles.dept_id AND rp.role_id = user_roles.role_id)
)
)
INSERT INTO tb_banner (
id, banner_id, title, image_url, link_type, link_id, link_url, order_num, status,
creator, create_time
) VALUES (
#{id}, #{bannerID}, #{title}, #{imageUrl}, #{linkType}, #{linkID}, #{linkUrl}, #{orderNum}, #{status},
#{creator}, #{createTime}
)
UPDATE tb_banner
banner_id = #{bannerID},
title = #{title},
image_url = #{imageUrl},
link_type = #{linkType},
link_id = #{linkID},
link_url = #{linkUrl},
order_num = #{orderNum},
status = #{status},
updater = #{updater},
update_time = #{updateTime},
delete_time = #{deleteTime},
deleted = #{deleted},
WHERE banner_id = #{bannerID}
DELETE FROM tb_banner
WHERE banner_id = #{bannerID}
INSERT INTO tb_banner (
id, banner_id, title, image_url, link_type, link_id, link_url, order_num, status,
creator, updater, create_time, update_time, delete_time, deleted
) VALUES
(
#{item.id}, #{item.bannerID}, #{item.title}, #{item.imageUrl}, #{item.linkType}, #{item.linkID},
#{item.linkUrl}, #{item.orderNum}, #{item.status}, #{item.creator}, #{item.updater},
#{item.createTime}, #{item.updateTime}, #{item.deleteTime}, #{item.deleted}
)
DELETE FROM tb_banner
WHERE banner_id IN
#{bannerID}