select area_id,
parent_id,
ancestors,
area_code,
area_name,
area_desc,
order_num,
del_flag,
create_by,
create_time,
update_by,
update_time,
remark
from t_visit_area
select a.area_id,
a.parent_id,
p.area_name as parent_name,
a.area_code,
a.area_name,
a.area_desc,
a.order_num,
a.create_time
from t_visit_area a
left join t_visit_area p on p.area_id = a.parent_id and p.del_flag = '0'
insert into t_visit_area (
parent_id,
ancestors,
area_code,
area_name,
area_desc,
order_num,
create_by,
create_time
) values (
#{parentId},
#{ancestors},
#{areaCode},
#{areaName},
#{areaDesc},
#{orderNum},
#{createBy},
sysdate()
)
update t_visit_area
set parent_id = #{parentId},
ancestors = #{ancestors},
area_code = #{areaCode},
area_name = #{areaName},
area_desc = #{areaDesc},
order_num = #{orderNum},
update_by = #{updateBy},
update_time = sysdate()
where area_id = #{areaId}
and del_flag = '0'
update t_visit_area
set ancestors = replace(ancestors, #{oldAncestors}, #{newAncestors}),
update_time = sysdate()
where del_flag = '0'
and find_in_set(#{areaId}, ancestors)
update t_visit_area
set del_flag = '1',
update_by = #{updateBy},
update_time = sysdate()
where del_flag = '0'
and (
area_id in
#{areaId}
or find_in_set(#{areaId}, ancestors)
)