From 0573797792d6d68aea1a39d1b9a571845206aeff Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Mon, 12 Jun 2023 19:31:57 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90sys=E3=80=91?= =?UTF-8?q?=E3=80=90app=E3=80=91=E6=9B=B4=E6=96=B0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/SysAppController.java | 13 ++++++++++ .../app/pojo/request/SysAppRequest.java | 9 +++++++ .../modular/app/service/SysAppService.java | 24 ++++++++++++------- .../app/service/impl/SysAppServiceImpl.java | 16 +++++++++++++ 4 files changed, 54 insertions(+), 8 deletions(-) diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/controller/SysAppController.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/controller/SysAppController.java index 294fbf4bc..f5fd25514 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/controller/SysAppController.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/controller/SysAppController.java @@ -1,6 +1,7 @@ package cn.stylefeng.roses.kernel.sys.modular.app.controller; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; @@ -52,6 +53,18 @@ public class SysAppController { return new SuccessResponseData<>(); } + /** + * 批量删除应用 + * + * @author fengshuonan + * @date 2023/06/10 21:28 + */ + @PostResource(name = "批量删除应用", path = "/sysApp/batchDelete") + public ResponseData batchDelete(@RequestBody @Validated(BaseRequest.batchDelete.class) SysAppRequest sysAppRequest) { + sysAppService.batchDelete(sysAppRequest); + return new SuccessResponseData<>(); + } + /** * 编辑应用 * diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/pojo/request/SysAppRequest.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/pojo/request/SysAppRequest.java index 4ad253a47..219c70d69 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/pojo/request/SysAppRequest.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/pojo/request/SysAppRequest.java @@ -7,8 +7,10 @@ import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.Set; /** * 系统应用封装类 @@ -82,4 +84,11 @@ public class SysAppRequest extends BaseRequest { @ChineseDescription("备注") private String remark; + /** + * 主键id集合,用在批量删除 + */ + @NotEmpty(message = "主键id集合不能为空", groups = batchDelete.class) + @ChineseDescription("主键id集合") + private Set appIdList; + } diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/SysAppService.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/SysAppService.java index fa1bc9025..a6b31fa58 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/SysAppService.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/SysAppService.java @@ -15,7 +15,7 @@ import java.util.List; */ public interface SysAppService extends IService { - /** + /** * 新增 * * @param sysAppRequest 请求参数 @@ -24,7 +24,7 @@ public interface SysAppService extends IService { */ void add(SysAppRequest sysAppRequest); - /** + /** * 删除 * * @param sysAppRequest 请求参数 @@ -33,7 +33,15 @@ public interface SysAppService extends IService { */ void del(SysAppRequest sysAppRequest); - /** + /** + * 批量删除应用 + * + * @author fengshuonan + * @since 2023/6/12 19:30 + */ + void batchDelete(SysAppRequest sysAppRequest); + + /** * 编辑 * * @param sysAppRequest 请求参数 @@ -42,7 +50,7 @@ public interface SysAppService extends IService { */ void edit(SysAppRequest sysAppRequest); - /** + /** * 查询详情 * * @param sysAppRequest 请求参数 @@ -51,20 +59,20 @@ public interface SysAppService extends IService { */ SysApp detail(SysAppRequest sysAppRequest); - /** + /** * 获取列表 * - * @param sysAppRequest 请求参数 + * @param sysAppRequest 请求参数 * @return List 返回结果 * @author fengshuonan * @date 2023/06/10 21:28 */ List findList(SysAppRequest sysAppRequest); - /** + /** * 获取列表(带分页) * - * @param sysAppRequest 请求参数 + * @param sysAppRequest 请求参数 * @return PageResult 返回结果 * @author fengshuonan * @date 2023/06/10 21:28 diff --git a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/impl/SysAppServiceImpl.java b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/impl/SysAppServiceImpl.java index 2a591cc8e..dbb780ba8 100644 --- a/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/impl/SysAppServiceImpl.java +++ b/kernel-s-sys/sys-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/app/service/impl/SysAppServiceImpl.java @@ -18,9 +18,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; +import java.util.Set; /** * 系统应用业务实现层 @@ -53,6 +55,20 @@ public class SysAppServiceImpl extends ServiceImpl impleme this.removeById(sysApp.getAppId()); } + @Override + @Transactional(rollbackFor = Exception.class) + public void batchDelete(SysAppRequest sysAppRequest) { + + Set appIdList = sysAppRequest.getAppIdList(); + + // 判断应用下是否有绑定菜单 + if (this.sysMenuService.validateMenuBindApp(appIdList)) { + throw new ServiceException(SysAppExceptionEnum.APP_BIND_MENU); + } + + this.removeBatchByIds(appIdList); + } + @Override public void edit(SysAppRequest sysAppRequest) { SysApp sysApp = this.querySysApp(sysAppRequest);