From 506d0923b045ef56aa72e243ebd54099bc0f3812 Mon Sep 17 00:00:00 2001 From: Github_lizhw <171332584@qq.com> Date: Sun, 22 Sep 2024 22:46:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=BA=94=E7=94=A8=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 1 + .../system/SysApplicationController.java | 105 ++++++++++++++ .../dromara/system/domain/SysApplication.java | 41 ++++++ .../system/domain/SysTenantApplication.java | 34 +++++ .../system/domain/bo/SysApplicationBo.java | 42 ++++++ .../domain/bo/SysTenantApplicationBo.java | 33 +++++ .../system/domain/vo/SysApplicationVo.java | 50 +++++++ .../domain/vo/SysTenantApplicationVo.java | 42 ++++++ .../system/mapper/SysApplicationMapper.java | 15 ++ .../system/mapper/SysClientMapper.java | 2 + .../mapper/SysTenantApplicationMapper.java | 15 ++ .../service/ISysApplicationService.java | 68 +++++++++ .../service/ISysTenantApplicationService.java | 68 +++++++++ .../impl/SysApplicationServiceImpl.java | 130 ++++++++++++++++++ .../impl/SysTenantApplicationServiceImpl.java | 128 +++++++++++++++++ .../mapper/system/SysApplicationMapper.xml | 7 + .../system/SysTenantApplicationMapper.xml | 7 + 17 files changed, 788 insertions(+) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysApplicationController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysApplication.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantApplication.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysApplicationBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantApplicationBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysApplicationVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantApplicationVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysApplicationMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantApplicationMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysApplicationService.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantApplicationService.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysApplicationServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantApplicationServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysApplicationMapper.xml create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantApplicationMapper.xml diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 22f0ff2a5..b31345856 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -120,6 +120,7 @@ tenant: - sys_menu - sys_tenant - sys_tenant_package + - sys_application - sys_role_dept - sys_role_menu - sys_user_post diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysApplicationController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysApplicationController.java new file mode 100644 index 000000000..074a467a2 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysApplicationController.java @@ -0,0 +1,105 @@ +package org.dromara.system.controller.system; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysApplicationVo; +import org.dromara.system.domain.bo.SysApplicationBo; +import org.dromara.system.service.ISysApplicationService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 应用 + * + * @author Lion Li + * @date 2024-09-22 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/application") +public class SysApplicationController extends BaseController { + + private final ISysApplicationService sysApplicationService; + + /** + * 查询应用列表 + */ + @SaCheckPermission("system:application:list") + @GetMapping("/list") + public TableDataInfo list(SysApplicationBo bo, PageQuery pageQuery) { + return sysApplicationService.queryPageList(bo, pageQuery); + } + + /** + * 导出应用列表 + */ + @SaCheckPermission("system:application:export") + @Log(title = "应用", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysApplicationBo bo, HttpServletResponse response) { + List list = sysApplicationService.queryList(bo); + ExcelUtil.exportExcel(list, "应用", SysApplicationVo.class, response); + } + + /** + * 获取应用详细信息 + * + * @param applicationId 主键 + */ + @SaCheckPermission("system:application:query") + @GetMapping("/{applicationId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long applicationId) { + return R.ok(sysApplicationService.queryById(applicationId)); + } + + /** + * 新增应用 + */ + @SaCheckPermission("system:application:add") + @Log(title = "应用", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysApplicationBo bo) { + return toAjax(sysApplicationService.insertByBo(bo)); + } + + /** + * 修改应用 + */ + @SaCheckPermission("system:application:edit") + @Log(title = "应用", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysApplicationBo bo) { + return toAjax(sysApplicationService.updateByBo(bo)); + } + + /** + * 删除应用 + * + * @param applicationIds 主键串 + */ + @SaCheckPermission("system:application:remove") + @Log(title = "应用", businessType = BusinessType.DELETE) + @DeleteMapping("/{applicationIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] applicationIds) { + return toAjax(sysApplicationService.deleteWithValidByIds(List.of(applicationIds), true)); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysApplication.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysApplication.java new file mode 100644 index 000000000..4538cb6fc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysApplication.java @@ -0,0 +1,41 @@ +package org.dromara.system.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 应用对象 sys_application + * + * @author Lion Li + * @date 2024-09-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_application") +public class SysApplication extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "application_id") + private Long applicationId; + + /** + * 应用名称 + */ + private String applicationName; + + /** + * 应用code + */ + private String applicationCode; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantApplication.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantApplication.java new file mode 100644 index 000000000..195c08718 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysTenantApplication.java @@ -0,0 +1,34 @@ +package org.dromara.system.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 租户和应用关联对象 sys_tenant_application + * + * @author Lion Li + * @date 2024-09-22 + */ +@Data +@TableName("sys_tenant_application") +public class SysTenantApplication implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 租户id + */ + @TableId(value = "tenant_id") + private Long tenantId; + + /** + * 应用ID + */ + private Long applicationId; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysApplicationBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysApplicationBo.java new file mode 100644 index 000000000..d4a234c02 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysApplicationBo.java @@ -0,0 +1,42 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysApplication; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 应用业务对象 sys_application + * + * @author Lion Li + * @date 2024-09-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysApplication.class, reverseConvertGenerate = false) +public class SysApplicationBo extends BaseEntity { + + /** + * id + */ + @NotNull(message = "id不能为空", groups = { EditGroup.class }) + private Long applicationId; + + /** + * 应用名称 + */ + @NotBlank(message = "应用名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String applicationName; + + /** + * 应用code + */ + @NotBlank(message = "应用code不能为空", groups = { AddGroup.class, EditGroup.class }) + private String applicationCode; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantApplicationBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantApplicationBo.java new file mode 100644 index 000000000..450b99478 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantApplicationBo.java @@ -0,0 +1,33 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysTenantApplication; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 租户和应用关联业务对象 sys_tenant_application + * + * @author Lion Li + * @date 2024-09-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysTenantApplication.class, reverseConvertGenerate = false) +public class SysTenantApplicationBo extends BaseEntity { + + @NotNull(message = "租户ID不能为空", groups = {EditGroup.class}) + private Long tenantId; + + /** + * 应用ID + */ + @NotNull(message = "应用ID不能为空", groups = {EditGroup.class}) + private Long applicationId; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysApplicationVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysApplicationVo.java new file mode 100644 index 000000000..e84428b37 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysApplicationVo.java @@ -0,0 +1,50 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysApplication; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 应用视图对象 sys_application + * + * @author Lion Li + * @date 2024-09-22 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysApplication.class) +public class SysApplicationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * id + */ + @ExcelProperty(value = "id") + private Long applicationId; + + /** + * 应用名称 + */ + @ExcelProperty(value = "应用名称") + private String applicationName; + + /** + * 应用code + */ + @ExcelProperty(value = "应用code") + private String applicationCode; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantApplicationVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantApplicationVo.java new file mode 100644 index 000000000..38139c802 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTenantApplicationVo.java @@ -0,0 +1,42 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysTenantApplication; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 租户和应用关联视图对象 sys_tenant_application + * + * @author Lion Li + * @date 2024-09-22 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysTenantApplication.class) +public class SysTenantApplicationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + @ExcelProperty(value = "应用ID") + private Long tenantId; + + /** + * 应用ID + */ + @ExcelProperty(value = "应用ID") + private Long applicationId; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysApplicationMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysApplicationMapper.java new file mode 100644 index 000000000..f06f287f3 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysApplicationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysApplication; +import org.dromara.system.domain.vo.SysApplicationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 应用Mapper接口 + * + * @author Lion Li + * @date 2024-09-22 + */ +public interface SysApplicationMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java index 15bcfb4d3..363c9e32c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysClientMapper.java @@ -1,5 +1,6 @@ package org.dromara.system.mapper; +import org.apache.ibatis.annotations.Mapper; import org.dromara.system.domain.SysClient; import org.dromara.system.domain.vo.SysClientVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author Michelle.Chung * @date 2023-05-15 */ +@Mapper public interface SysClientMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantApplicationMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantApplicationMapper.java new file mode 100644 index 000000000..edbb6aad4 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysTenantApplicationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysTenantApplication; +import org.dromara.system.domain.vo.SysTenantApplicationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 租户和应用关联Mapper接口 + * + * @author Lion Li + * @date 2024-09-22 + */ +public interface SysTenantApplicationMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysApplicationService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysApplicationService.java new file mode 100644 index 000000000..fdf9bb8c2 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysApplicationService.java @@ -0,0 +1,68 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.vo.SysApplicationVo; +import org.dromara.system.domain.bo.SysApplicationBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 应用Service接口 + * + * @author Lion Li + * @date 2024-09-22 + */ +public interface ISysApplicationService { + + /** + * 查询应用 + * + * @param applicationId 主键 + * @return 应用 + */ + SysApplicationVo queryById(Long applicationId); + + /** + * 分页查询应用列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 应用分页列表 + */ + TableDataInfo queryPageList(SysApplicationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的应用列表 + * + * @param bo 查询条件 + * @return 应用列表 + */ + List queryList(SysApplicationBo bo); + + /** + * 新增应用 + * + * @param bo 应用 + * @return 是否新增成功 + */ + Boolean insertByBo(SysApplicationBo bo); + + /** + * 修改应用 + * + * @param bo 应用 + * @return 是否修改成功 + */ + Boolean updateByBo(SysApplicationBo bo); + + /** + * 校验并批量删除应用信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantApplicationService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantApplicationService.java new file mode 100644 index 000000000..38c1a305b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysTenantApplicationService.java @@ -0,0 +1,68 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.vo.SysTenantApplicationVo; +import org.dromara.system.domain.bo.SysTenantApplicationBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 租户和应用关联Service接口 + * + * @author Lion Li + * @date 2024-09-22 + */ +public interface ISysTenantApplicationService { + + /** + * 查询租户和应用关联 + * + * @param tenantId 主键 + * @return 租户和应用关联 + */ + SysTenantApplicationVo queryById(Long tenantId); + + /** + * 分页查询租户和应用关联列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 租户和应用关联分页列表 + */ + TableDataInfo queryPageList(SysTenantApplicationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的租户和应用关联列表 + * + * @param bo 查询条件 + * @return 租户和应用关联列表 + */ + List queryList(SysTenantApplicationBo bo); + + /** + * 新增租户和应用关联 + * + * @param bo 租户和应用关联 + * @return 是否新增成功 + */ + Boolean insertByBo(SysTenantApplicationBo bo); + + /** + * 修改租户和应用关联 + * + * @param bo 租户和应用关联 + * @return 是否修改成功 + */ + Boolean updateByBo(SysTenantApplicationBo bo); + + /** + * 校验并批量删除租户和应用关联信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysApplicationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysApplicationServiceImpl.java new file mode 100644 index 000000000..8885fbe5e --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysApplicationServiceImpl.java @@ -0,0 +1,130 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysApplicationBo; +import org.dromara.system.domain.vo.SysApplicationVo; +import org.dromara.system.domain.SysApplication; +import org.dromara.system.mapper.SysApplicationMapper; +import org.dromara.system.service.ISysApplicationService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 应用Service业务层处理 + * + * @author Lion Li + * @date 2024-09-22 + */ +@RequiredArgsConstructor +@Service +public class SysApplicationServiceImpl implements ISysApplicationService { + + private final SysApplicationMapper baseMapper; + + /** + * 查询应用 + * + * @param applicationId 主键 + * @return 应用 + */ + @Override + public SysApplicationVo queryById(Long applicationId){ + return baseMapper.selectVoById(applicationId); + } + + /** + * 分页查询应用列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 应用分页列表 + */ + @Override + public TableDataInfo queryPageList(SysApplicationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的应用列表 + * + * @param bo 查询条件 + * @return 应用列表 + */ + @Override + public List queryList(SysApplicationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysApplicationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getApplicationName()), SysApplication::getApplicationName, bo.getApplicationName()); + lqw.eq(StringUtils.isNotBlank(bo.getApplicationCode()), SysApplication::getApplicationCode, bo.getApplicationCode()); + return lqw; + } + + /** + * 新增应用 + * + * @param bo 应用 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysApplicationBo bo) { + SysApplication add = MapstructUtils.convert(bo, SysApplication.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setApplicationId(add.getApplicationId()); + } + return flag; + } + + /** + * 修改应用 + * + * @param bo 应用 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysApplicationBo bo) { + SysApplication update = MapstructUtils.convert(bo, SysApplication.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysApplication entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除应用信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantApplicationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantApplicationServiceImpl.java new file mode 100644 index 000000000..5d112c381 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantApplicationServiceImpl.java @@ -0,0 +1,128 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysTenantApplicationBo; +import org.dromara.system.domain.vo.SysTenantApplicationVo; +import org.dromara.system.domain.SysTenantApplication; +import org.dromara.system.mapper.SysTenantApplicationMapper; +import org.dromara.system.service.ISysTenantApplicationService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 租户和应用关联Service业务层处理 + * + * @author Lion Li + * @date 2024-09-22 + */ +@RequiredArgsConstructor +@Service +public class SysTenantApplicationServiceImpl implements ISysTenantApplicationService { + + private final SysTenantApplicationMapper baseMapper; + + /** + * 查询租户和应用关联 + * + * @param tenantId 主键 + * @return 租户和应用关联 + */ + @Override + public SysTenantApplicationVo queryById(Long tenantId){ + return baseMapper.selectVoById(tenantId); + } + + /** + * 分页查询租户和应用关联列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 租户和应用关联分页列表 + */ + @Override + public TableDataInfo queryPageList(SysTenantApplicationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的租户和应用关联列表 + * + * @param bo 查询条件 + * @return 租户和应用关联列表 + */ + @Override + public List queryList(SysTenantApplicationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SysTenantApplicationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + return lqw; + } + + /** + * 新增租户和应用关联 + * + * @param bo 租户和应用关联 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysTenantApplicationBo bo) { + SysTenantApplication add = MapstructUtils.convert(bo, SysTenantApplication.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setTenantId(add.getTenantId()); + } + return flag; + } + + /** + * 修改租户和应用关联 + * + * @param bo 租户和应用关联 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysTenantApplicationBo bo) { + SysTenantApplication update = MapstructUtils.convert(bo, SysTenantApplication.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysTenantApplication entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除租户和应用关联信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysApplicationMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysApplicationMapper.xml new file mode 100644 index 000000000..002e46595 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysApplicationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantApplicationMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantApplicationMapper.xml new file mode 100644 index 000000000..e7b2d13a7 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTenantApplicationMapper.xml @@ -0,0 +1,7 @@ + + + + +