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}