id, achievement_id, name, description, icon, type, level, condition_type,
condition_value, points, order_num, creator, updater, create_time, update_time,
delete_time, deleted
AND id = #{filter.id}
AND achievement_id = #{filter.achievementID}
AND name LIKE CONCAT('%', #{filter.name}, '%')
AND type = #{filter.type}
AND level = #{filter.level}
AND condition_type = #{filter.conditionType}
AND points = #{filter.points}
AND creator = #{filter.creator}
AND deleted = #{filter.deleted}
INNER JOIN tb_resource_permission rp ON a.achievement_id = rp.resource_id
AND rp.resource_type = 6
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
(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_achievement (
id, achievement_id, name, description, icon, type, level, condition_type,
condition_value, points, order_num, creator, updater, create_time, update_time,
delete_time, deleted
) VALUES (
#{id}, #{achievementID}, #{name}, #{description}, #{icon}, #{type}, #{level},
#{conditionType}, #{conditionValue}, #{points}, #{orderNum}, #{creator}, #{updater},
#{createTime}, #{updateTime}, #{deleteTime}, #{deleted}
)
UPDATE tb_achievement
achievement_id = #{achievementID},
name = #{name},
description = #{description},
icon = #{icon},
type = #{type},
level = #{level},
condition_type = #{conditionType},
condition_value = #{conditionValue},
points = #{points},
order_num = #{orderNum},
updater = #{updater},
update_time = #{updateTime},
delete_time = #{deleteTime},
deleted = #{deleted},
WHERE id = #{id}
DELETE FROM tb_achievement
WHERE id = #{id}
INSERT INTO tb_achievement (
id, achievement_id, name, description, icon, type, level, condition_type,
condition_value, points, order_num, creator, updater, create_time, update_time,
delete_time, deleted
) VALUES
(
#{item.id}, #{item.achievementID}, #{item.name}, #{item.description}, #{item.icon},
#{item.type}, #{item.level}, #{item.conditionType}, #{item.conditionValue},
#{item.points}, #{item.orderNum}, #{item.creator}, #{item.updater},
#{item.createTime}, #{item.updateTime}, #{item.deleteTime}, #{item.deleted}
)
DELETE FROM tb_achievement
WHERE id IN
#{id}