From 3bedaa7ddc6def844dae6d990a9ff7182c1d0fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=B0=8F=E7=8E=8B=E5=AD=90?= Date: Fri, 1 Mar 2024 10:31:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/CaptchaController.java | 1 + .../com/ruoyi/web/domain/vo/TenantListVo.java | 9 ++++ .../common/security/utils/LoginHelper.java | 19 ++++++- .../system/service/ISysOssConfigService.java | 6 +-- .../ruoyi/system/service/ISysOssService.java | 43 +++++++++++++++ .../ruoyi/system/service/ISysUserService.java | 2 +- .../impl/SysLogininforServiceImpl.java | 6 +-- .../service/impl/SysOssServiceImpl.java | 53 ++++++++++++++++++- .../service/impl/SysUserServiceImpl.java | 6 +++ 9 files changed, 135 insertions(+), 10 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java index 7173881..c38550d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/CaptchaController.java @@ -74,6 +74,7 @@ public class CaptchaController AbstractCaptcha captcha = SpringUtils.getBean(captchaProperties.getCategory().getClazz()); captcha.setGenerator(codeGenerator); captcha.createCode(); + // 如果是数学验证码,使用SpEL表达式处理验证码结果 String code = captcha.getCode(); if (isMath) { ExpressionParser parser = new SpelExpressionParser(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/TenantListVo.java b/ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/TenantListVo.java index e3da6c7..d548df4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/TenantListVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/domain/vo/TenantListVo.java @@ -13,10 +13,19 @@ import lombok.Data; @AutoMapper(target = SysTenantVo.class) public class TenantListVo { + /** + * 租户编号 + */ private String tenantId; + /** + * 企业名称 + */ private String companyName; + /** + * 域名 + */ private String domain; } diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/LoginHelper.java index f3a8d09..2c339c9 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/LoginHelper.java @@ -109,6 +109,12 @@ public class LoginHelper { return Convert.toLong(getExtra(DEPT_KEY)); } + /** + * 获取当前 Token 的扩展信息 + * + * @param key 键值 + * @return 对应的扩展数据 + */ private static Object getExtra(String key) { try { return StpUtil.getExtra(key); @@ -142,12 +148,17 @@ public class LoginHelper { return UserConstants.SUPER_ADMIN_ID.equals(userId); } + /** + * 是否为超级管理员 + * + * @return 结果 + */ public static boolean isSuperAdmin() { return isSuperAdmin(getUserId()); } /** - * 是否为超级管理员 + * 是否为租户管理员 * * @param rolePermission 角色权限标识组 * @return 结果 @@ -160,6 +171,12 @@ public class LoginHelper { return Convert.toBool(isTenantAdmin(getLoginUser().getRolePermission())); } + + /** + * 检查当前用户是否已登录 + * + * @return 结果 + */ public static boolean isLogin() { return getLoginUser() != null; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java index 09cd538..02155d3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssConfigService.java @@ -37,7 +37,7 @@ public interface ISysOssConfigService extends IBaseService { * 根据新增业务对象插入对象存储配置 * * @param bo 对象存储配置新增业务对象 - * @return + * @return 结果 */ Boolean insertByBo(SysOssConfigBo bo); @@ -45,7 +45,7 @@ public interface ISysOssConfigService extends IBaseService { * 根据编辑业务对象修改对象存储配置 * * @param bo 对象存储配置编辑业务对象 - * @return + * @return 结果 */ Boolean updateByBo(SysOssConfigBo bo); @@ -54,7 +54,7 @@ public interface ISysOssConfigService extends IBaseService { * * @param ids 主键集合 * @param isValid 是否校验,true-删除前校验,false-不校验 - * @return + * @return 结果 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java index c730764..6531f6b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOssService.java @@ -20,18 +20,61 @@ import java.util.List; */ public interface ISysOssService extends IBaseService { + /** + * 查询OSS对象存储列表 + * + * @param sysOss OSS对象存储分页查询对象 + * @return 结果 + */ TableDataInfo queryPageList(SysOssBo sysOss); + /** + * 根据一组 ossIds 获取对应的 SysOssVo 列表 + * + * @param ossIds 一组文件在数据库中的唯一标识集合 + * @return 包含 SysOssVo 对象的列表 + */ List listSysOssByIds(Collection ossIds); + /** + * 根据 ossId 从缓存或数据库中获取 SysOssVo 对象 + * + * @param ossId 文件在数据库中的唯一标识 + * @return SysOssVo 对象,包含文件信息 + */ SysOssVo getById(Long ossId); + /** + * 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的 MultipartFile 对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + */ SysOssVo upload(MultipartFile file); + /** + * 上传文件到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的文件对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + */ SysOssVo upload(File file); + /** + * 文件下载方法,支持一次性下载完整文件 + * + * @param ossId OSS对象ID + * @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容 + */ void download(Long ossId, HttpServletResponse response) throws IOException; + /** + * 删除OSS对象存储 + * + * @param ids OSS对象ID串 + * @param isValid 判断是否需要校验 + * @return 结果 + */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 44bdd1b..98faa9d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -254,7 +254,7 @@ public interface ISysUserService extends IBaseService { /** * 通过部门id查询当前部门所有用户 * - * @param deptId + * @param deptId 部门id * @return 用户vo列表 */ List selectUserListByDept(Long deptId); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index 58e22f1..c12b7d8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -71,10 +71,10 @@ public class SysLogininforServiceImpl extends BaseServiceImpl imp return queryWrapper; } + /** + * 查询OSS对象存储列表 + * + * @param bo OSS对象存储分页查询对象 + * @return 结果 + */ @Override public TableDataInfo queryPageList(SysOssBo bo) { QueryWrapper queryWrapper = buildQueryWrapper(bo); @@ -78,6 +84,12 @@ public class SysOssServiceImpl extends BaseServiceImpl imp return TableDataInfo.build(result); } + /** + * 根据一组 ossIds 获取对应的 SysOssVo 列表 + * + * @param ossIds 一组文件在数据库中的唯一标识集合 + * @return 包含 SysOssVo 对象的列表 + */ @Override public List listSysOssByIds(Collection ossIds) { List list = new ArrayList<>(); @@ -95,6 +107,12 @@ public class SysOssServiceImpl extends BaseServiceImpl imp return list; } + /** + * 根据一组 ossIds 获取对应文件的 URL 列表 + * + * @param ossIds 以逗号分隔的 ossId 字符串 + * @return 以逗号分隔的文件 URL 字符串 + */ @Override public String selectUrlByIds(String ossIds) { List list = new ArrayList<>(); @@ -112,7 +130,12 @@ public class SysOssServiceImpl extends BaseServiceImpl imp return String.join(StringUtils.SEPARATOR, list); } - + /** + * 根据 ossId 从缓存或数据库中获取 SysOssVo 对象 + * + * @param ossId 文件在数据库中的唯一标识 + * @return SysOssVo 对象,包含文件信息 + */ @Cacheable(cacheNames = CacheNames.SYS_OSS, key = "#ossId") @Override public SysOssVo getById(Long ossId) { @@ -120,6 +143,12 @@ public class SysOssServiceImpl extends BaseServiceImpl imp return ossMapper.selectOneWithRelationsByQueryAs(queryWrapper, SysOssVo.class); } + /** + * 文件下载方法,支持一次性下载完整文件 + * + * @param ossId OSS对象ID + * @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容 + */ @Override public void download(Long ossId, HttpServletResponse response) throws IOException { SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId); @@ -138,6 +167,13 @@ public class SysOssServiceImpl extends BaseServiceImpl imp } } + /** + * 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的 MultipartFile 对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + * @throws ServiceException 如果上传过程中发生异常,则抛出 ServiceException 异常 + */ @Override public SysOssVo upload(MultipartFile file) { String originalfileName = file.getOriginalFilename(); @@ -153,6 +189,12 @@ public class SysOssServiceImpl extends BaseServiceImpl imp return buildResultEntity(originalfileName, suffix, storage.getConfigKey(), uploadResult); } + /** + * 上传文件到对象存储服务,并保存文件信息到数据库 + * + * @param file 要上传的文件对象 + * @return 上传成功后的 SysOssVo 对象,包含文件信息 + */ @Override public SysOssVo upload(File file) { String originalfileName = file.getName(); @@ -175,6 +217,13 @@ public class SysOssServiceImpl extends BaseServiceImpl imp return this.matchingUrl(sysOssVo); } + /** + * 删除OSS对象存储 + * + * @param ids OSS对象ID串 + * @param isValid 判断是否需要校验 + * @return 结果 + */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { @@ -190,7 +239,7 @@ public class SysOssServiceImpl extends BaseServiceImpl imp } /** - * 匹配Url + * 桶类型为 private 的URL 修改为临时URL时长为120s * * @param oss OSS对象 * @return oss 匹配Url的OSS对象 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 2a746fe..17cc39f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -765,6 +765,12 @@ public class SysUserServiceImpl extends BaseServiceImpl return successMsg.toString(); } + /** + * 通过用户ID查询用户账户 + * + * @param userId 用户ID + * @return 用户账户 + */ @Cacheable(cacheNames = CacheNames.SYS_USER_NAME, key = "#userId") @Override public String selectUserNameById(Long userId) {