From cb054a76352b728ea76d31a6a76874eff97cbd4d Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 02 九月 2023 10:06:48 +0800 Subject: [PATCH] 级联删除发布服务及权限 --- src/main/java/com/moon/server/controller/sys/ResController.java | 4 +++- src/main/java/com/moon/server/service/sys/ResService.java | 2 +- src/main/resources/mapper/sys/ResMapper.xml | 9 ++++----- src/main/java/com/moon/server/mapper/sys/ResMapper.java | 2 +- src/main/resources/mapper/data/PublishMapper.xml | 14 +++++++++++--- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/moon/server/controller/sys/ResController.java b/src/main/java/com/moon/server/controller/sys/ResController.java index e8f6d9b..072c767 100644 --- a/src/main/java/com/moon/server/controller/sys/ResController.java +++ b/src/main/java/com/moon/server/controller/sys/ResController.java @@ -5,6 +5,7 @@ import com.moon.server.entity.all.ResponseMsg; import com.moon.server.entity.sys.ResEntity; import com.moon.server.entity.sys.UserEntity; +import com.moon.server.helper.StringHelper; import com.moon.server.service.all.PermsService; import com.moon.server.service.all.UploadAttachService; import com.moon.server.service.sys.ResService; @@ -208,7 +209,8 @@ } permsService.clearPermsCache(); - int count = resService.deletes(ids); + String strs = StringHelper.join(ids, ","); + int count = resService.deletes(strs); return success(count); } catch (Exception ex) { diff --git a/src/main/java/com/moon/server/mapper/sys/ResMapper.java b/src/main/java/com/moon/server/mapper/sys/ResMapper.java index 676d5ea..8b91820 100644 --- a/src/main/java/com/moon/server/mapper/sys/ResMapper.java +++ b/src/main/java/com/moon/server/mapper/sys/ResMapper.java @@ -102,7 +102,7 @@ * @param ids * @return */ - public Integer deletes(List<Integer> ids); + public Integer deletes(String ids); /** * 鏇存柊涓�鏉� diff --git a/src/main/java/com/moon/server/service/sys/ResService.java b/src/main/java/com/moon/server/service/sys/ResService.java index 4319c83..9c31f2d 100644 --- a/src/main/java/com/moon/server/service/sys/ResService.java +++ b/src/main/java/com/moon/server/service/sys/ResService.java @@ -67,7 +67,7 @@ } @Override - public Integer deletes(List<Integer> ids) { + public Integer deletes(String ids) { return resMapper.deletes(ids); } diff --git a/src/main/resources/mapper/data/PublishMapper.xml b/src/main/resources/mapper/data/PublishMapper.xml index 3e6cf74..8dfb4f1 100644 --- a/src/main/resources/mapper/data/PublishMapper.xml +++ b/src/main/resources/mapper/data/PublishMapper.xml @@ -134,13 +134,21 @@ </insert> <delete id="delete"> - delete from lf.sys_publish where id = #{id} + delete from lf.sys_role_layer where layerid in (select a.id from lf.sys_layer a inner join lf.sys_res b on a.resid = b.id where b.pubid = #{id}); + delete from lf.sys_role_res where resid in (select id from lf.sys_res where pubid = #{id}); + delete from lf.sys_layer where resid in (select id from lf.sys_res where pubid = #{id}); + delete from lf.sys_res where pubid = #{id}; + delete from lf.sys_meta_pub where pubid = #{id}; + delete from lf.sys_publish where id = #{id}; </delete> <delete id="deletes"> - delete from lf.sys_publish where id in (${ids}); - delete from lf.sys_layer where pubid in (${ids}); + delete from lf.sys_role_layer where layerid in (select a.id from lf.sys_layer a inner join lf.sys_res b on a.resid = b.id where b.pubid in (${ids})); + delete from lf.sys_role_res where resid in (select id from lf.sys_res where pubid in (${ids})); + delete from lf.sys_layer where resid in (select id from lf.sys_res where pubid in (${ids})); + delete from lf.sys_res where pubid in (${ids}); delete from lf.sys_meta_pub where pubid in (${ids}); + delete from lf.sys_publish where id in (${ids}); </delete> <update id="update"> diff --git a/src/main/resources/mapper/sys/ResMapper.xml b/src/main/resources/mapper/sys/ResMapper.xml index b9d506d..4d2f895 100644 --- a/src/main/resources/mapper/sys/ResMapper.xml +++ b/src/main/resources/mapper/sys/ResMapper.xml @@ -100,14 +100,13 @@ </insert> <delete id="delete"> - delete from lf.sys_res where id = #{id} + delete from lf.sys_layer where resid = #{id}; + delete from lf.sys_res where id = #{id}; </delete> <delete id="deletes"> - delete from lf.sys_res where id in - <foreach item="id" collection="ids" index="index" open="(" separator="," close=")"> - #{id} - </foreach> + delete from lf.sys_layer where resid in (${ids}); + delete from lf.sys_res where id in (${ids}); </delete> <update id="update"> -- Gitblit v1.9.3