From e02a3eee8217ae6bff5890d1ece6ee1f342e03dd Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 21 一月 2025 14:36:21 +0800 Subject: [PATCH] 1.管理端:修改密码 2.阿里云oss --- ruoyi-modules/ruoyi-file/pom.xml | 6 ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/OssConfig.java | 59 +++++++ ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java | 40 +++- ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/query/MgtCompanyQuery.java | 2 ruoyi-auth/src/main/java/com/ruoyi/auth/form/MgtPasswordDTO.java | 22 ++ ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssServiceImpl.java | 103 ++++++++++++ pom.xml | 8 ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssService.java | 28 +++ ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java | 2 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java | 44 +++-- ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java | 38 ++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 55 ++++-- ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java | 5 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java | 17 ++ 15 files changed, 374 insertions(+), 57 deletions(-) diff --git a/pom.xml b/pom.xml index e6775b9..a3e5dbe 100644 --- a/pom.xml +++ b/pom.xml @@ -42,6 +42,7 @@ <logback.version>1.2.13</logback.version> <spring-framework.version>5.3.39</spring-framework.version> <fastexcel.version>1.0.0</fastexcel.version> + <aliyun-oss.version>3.17.4</aliyun-oss.version> </properties> <!-- 依赖声明 --> @@ -317,7 +318,12 @@ <artifactId>ocr_api20210707</artifactId> <version>3.1.2</version> </dependency> - + <!--aliyun-oss--> + <dependency> + <groupId>com.aliyun.oss</groupId> + <artifactId>aliyun-sdk-oss</artifactId> + <version>${aliyun-oss.version}</version> + </dependency> </dependencies> diff --git a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/query/MgtCompanyQuery.java b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/query/MgtCompanyQuery.java index 8c79b30..dfb0001 100644 --- a/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/query/MgtCompanyQuery.java +++ b/ruoyi-api/ruoyi-api-company/src/main/java/com/ruoyi/company/api/domain/query/MgtCompanyQuery.java @@ -3,12 +3,14 @@ import com.ruoyi.common.core.page.BasePage; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; /** * @author mitao * @date 2025/1/20 */ @Data +@EqualsAndHashCode(callSuper = true) @Schema(name = "管理端企业列表查询对象") public class MgtCompanyQuery extends BasePage { private static final long serialVersionUID = 5429160619805017277L; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java index 95cb91d..017960a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java @@ -51,4 +51,21 @@ */ @PutMapping("/user/recordlogin") public R<Boolean> recordUserLogin(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 根据用户id查询用户信息 + * @param userId + * @param source + * @return + */ + @GetMapping("/user/get-by-id/{userId}") + R<SysUser> getUserById(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 更新用户信息 + * @param sysUser + * @param source + */ + @PostMapping("/user/update") + R<?> updateUser(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java index 5972b3f..ceba746 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java @@ -42,6 +42,11 @@ { return R.fail("记录用户登录信息失败:" + throwable.getMessage()); } + + @Override + public R<SysUser> getUserById(Long userId, String source) { + return R.fail("获取用户信息失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java index a07dc6e..d60dbe4 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java @@ -1,46 +1,42 @@ package com.ruoyi.auth.controller; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; - +import com.ruoyi.auth.form.LoginBody; +import com.ruoyi.auth.form.MgtPasswordDTO; +import com.ruoyi.auth.service.SysLoginService; import com.ruoyi.auth.utils.SmsUtils; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.CaptchaException; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.JwtUtils; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.common.security.auth.AuthUtil; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.company.api.RemoteCompanyUserService; import com.ruoyi.company.api.domain.User; import com.ruoyi.company.api.model.RegisterUser; import com.ruoyi.system.api.model.AppUser; +import com.ruoyi.system.api.model.LoginUser; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.auth.form.LoginBody; -import com.ruoyi.auth.form.RegisterBody; -import com.ruoyi.auth.service.SysLoginService; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.JwtUtils; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.security.auth.AuthUtil; -import com.ruoyi.common.security.service.TokenService; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.model.LoginUser; -import java.time.LocalDateTime; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; - -import static com.alibaba.nacos.api.common.Constants.ACCESS_TOKEN; - /** * token 控制 * @@ -62,7 +58,7 @@ @Resource private RemoteCompanyUserService remoteCompanyUserService; - + @Operation(summary = "管理端-登录") @PostMapping("login") public R<?> login(@RequestBody LoginBody form) { @@ -72,6 +68,16 @@ return R.ok(tokenService.createToken(userInfo)); } + @Operation(summary = "管理端-修改密码") + @GetMapping("/modify-pwd") + public R<?> modifyPwd(@Valid @RequestBody MgtPasswordDTO dto) { + try { + sysLoginService.modifyPwd(dto); + return R.ok(); + } catch (ServiceException e) { + return R.fail(e.getMessage()); + } + } @DeleteMapping("logout") public R<?> logout(HttpServletRequest request) { diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/form/MgtPasswordDTO.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/MgtPasswordDTO.java new file mode 100644 index 0000000..e20c4d0 --- /dev/null +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/form/MgtPasswordDTO.java @@ -0,0 +1,22 @@ +package com.ruoyi.auth.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @author mitao + * @date 2025/1/21 + */ +@Data +@Schema(name = "修改密码数据传输对象") +public class MgtPasswordDTO { + @NotBlank(message = "原密码不能为空") + @Schema(description = "原密码", example = "1") + private String oldPassword; + + @NotBlank(message = "新密码不能为空") + @Schema(description = "新密码",example = "12345678") + private String newPassword; +} diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java index d0f82e2..7e4c896 100644 --- a/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java +++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java @@ -1,23 +1,13 @@ package com.ruoyi.auth.service; -import com.ruoyi.common.core.exception.CaptchaException; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.company.api.RemoteCompanyService; -import com.ruoyi.company.api.RemoteCompanyUserService; -import com.ruoyi.company.api.domain.Company; -import com.ruoyi.company.api.domain.User; -import com.ruoyi.company.api.model.RegisterUser; -import lombok.RequiredArgsConstructor; -import org.jacoco.agent.rt.internal_43f5073.core.internal.flow.IFrame; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; +import com.ruoyi.auth.form.MgtPasswordDTO; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.UserStatus; +import com.ruoyi.common.core.exception.CaptchaException; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.utils.DateUtils; @@ -25,13 +15,21 @@ import com.ruoyi.common.core.utils.ip.IpUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.company.api.RemoteCompanyService; +import com.ruoyi.company.api.RemoteCompanyUserService; +import com.ruoyi.company.api.domain.Company; +import com.ruoyi.company.api.domain.User; +import com.ruoyi.company.api.model.RegisterUser; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; /** * 登录校验方法 @@ -256,4 +254,20 @@ return false; } + /** + * 管理端-修改密码 + * @param dto + */ + public void modifyPwd(MgtPasswordDTO dto) { + Long userId = SecurityUtils.getUserId(); + SysUser sysUser = remoteUserService.getUserById(userId, SecurityConstants.INNER).getData(); + if (Objects.isNull(sysUser)){ + throw new ServiceException("用户不存在"); + } + if (!SecurityUtils.matchesPassword(SecurityUtils.encryptPassword(dto.getOldPassword()), sysUser.getPassword())){ + throw new ServiceException("原密码错误"); + } + sysUser.setPassword(SecurityUtils.encryptPassword(dto.getNewPassword())); + remoteUserService.updateUser(sysUser,SecurityConstants.INNER); + } } diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java index e6e564f..eda1030 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SpringDocConfig.java @@ -52,7 +52,7 @@ @Autowired private DiscoveryClient discoveryClient; - private final static String[] EXCLUDE_ROUTES = new String[] { "ruoyi-gateway", "ruoyi-auth", "ruoyi-file", "ruoyi-monitor" }; + private final static String[] EXCLUDE_ROUTES = new String[] { "ruoyi-gateway", /*"ruoyi-auth",*/ "ruoyi-file", "ruoyi-monitor" }; public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) { diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java index dc8925a..cdb3823 100644 --- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java +++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/controller/management/MgtCompanyController.java @@ -30,7 +30,7 @@ @Validated @RestController @RequestMapping("/mgt/company") -@Tag(name = "管理端企业列表相关接口") +@Tag(name = "管理端-企业列表相关接口") @RequiredArgsConstructor(onConstructor_ = {@Lazy}) public class MgtCompanyController { private final CompanyService companyService; diff --git a/ruoyi-modules/ruoyi-file/pom.xml b/ruoyi-modules/ruoyi-file/pom.xml index b4d5c62..3749cb2 100644 --- a/ruoyi-modules/ruoyi-file/pom.xml +++ b/ruoyi-modules/ruoyi-file/pom.xml @@ -65,7 +65,11 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-system</artifactId> </dependency> - + <!--aliyun-oss--> + <dependency> + <groupId>com.aliyun.oss</groupId> + <artifactId>aliyun-sdk-oss</artifactId> + </dependency> </dependencies> <build> diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/OssConfig.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/OssConfig.java new file mode 100644 index 0000000..cb0cee2 --- /dev/null +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/OssConfig.java @@ -0,0 +1,59 @@ +package com.ruoyi.file.config; + +import com.alibaba.fastjson2.JSONObject; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * 存储-配置 + * + * @author mitao + */ +@ConfigurationProperties(prefix = "oss") +@Component +@Slf4j +@Data +public class OssConfig { + + private String folder = "dev"; + + private String accessKeyId; + + private String accessKeySecret; + + private String uploadEndpoint; + + private String downloadEndpoint; + + private String bucketName; + + public static String FOLDER; + public static String ACCESS_KEY_ID; + public static String ACCESS_KEY_SECRET; + public static String UPLOAD_ENDPOINT; + public static String DOWNLOAD_ENDPOINT; + public static String BUCKET_NAME; + + + @PostConstruct + public void init() { + + log.debug("OSS配置信息:" + JSONObject.toJSONString(this)); + FOLDER = folder; + ACCESS_KEY_ID = accessKeyId; + ACCESS_KEY_SECRET = accessKeySecret; + UPLOAD_ENDPOINT = uploadEndpoint; + DOWNLOAD_ENDPOINT = downloadEndpoint; + BUCKET_NAME = bucketName; + } + + public String getStoreFolder() { + + return getFolder(); + } + +} diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java index 45f86b0..6bc7d21 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java @@ -1,15 +1,22 @@ package com.ruoyi.file.controller; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.file.FileUtils; +import com.ruoyi.file.service.ISysFileService; +import com.ruoyi.file.service.OssService; +import com.ruoyi.system.api.domain.SysFile; +import io.swagger.v3.oas.annotations.Operation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.file.FileUtils; -import com.ruoyi.file.service.ISysFileService; -import com.ruoyi.system.api.domain.SysFile; + +import java.io.IOException; +import java.util.Objects; /** * 文件请求处理 @@ -23,6 +30,29 @@ @Autowired private ISysFileService sysFileService; + @Autowired + private OssService ossService; + /** + * 上传文件 + * + * @param file + * @return + */ + @Operation(summary = "上传文件") + @PostMapping("/oss/upload") + public R<String> uploadOss(@RequestPart("file") MultipartFile file) { + + if (Objects.isNull(file)) { + throw new ServiceException("文件不能为空"); + } + String fileUrl; + try { + fileUrl = ossService.uploadFile(file); + } catch (IOException e) { + throw new RuntimeException(e); + } + return R.ok(fileUrl); + } /** * 文件上传请求 diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssService.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssService.java new file mode 100644 index 0000000..21b08e7 --- /dev/null +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssService.java @@ -0,0 +1,28 @@ +package com.ruoyi.file.service; + +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; + +/** + * @author mitao + * @date 2024/12/23 + */ +public interface OssService { + /** + * 文件上传 + * + * @param file + * @return + */ + String uploadFile(MultipartFile file) throws IOException; + + /** + * 文件上传,指定上传路径 + * + * @param storagePath + * @param file + * @return + */ + String upload(String storagePath, MultipartFile file) throws IOException; +} diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssServiceImpl.java new file mode 100644 index 0000000..77a3098 --- /dev/null +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/OssServiceImpl.java @@ -0,0 +1,103 @@ +package com.ruoyi.file.service; + + +import com.aliyun.oss.ClientBuilderConfiguration; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.common.auth.CredentialsProvider; +import com.aliyun.oss.common.auth.DefaultCredentialProvider; +import com.aliyun.oss.common.comm.SignVersion; +import com.aliyun.oss.model.PutObjectRequest; +import com.aliyun.oss.model.PutObjectResult; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.file.config.OssConfig; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Date; +import java.util.Objects; +import java.util.UUID; + +/** + * @author mitao + * @date 2024/12/23 + */ +@Service +public class OssServiceImpl implements OssService { + /** + * 文件上传 + * + * @param file + * @return + */ + @Override + public String uploadFile(MultipartFile file) throws IOException { + return upload(OssConfig.FOLDER, file); + } + + /** + * 文件上传,指定上传路径 + * + * @param storagePath + * @param file + * @return + */ + @Override + public String upload(String storagePath, MultipartFile file) throws IOException { + CredentialsProvider credentialsProvider = new DefaultCredentialProvider(OssConfig.ACCESS_KEY_ID, OssConfig.ACCESS_KEY_SECRET); + String region = "cn-chengdu"; + // 创建OSSClient实例。 + ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); + clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); + OSS ossClient = OSSClientBuilder.create() + .endpoint(OssConfig.UPLOAD_ENDPOINT) + .credentialsProvider(credentialsProvider) + .clientConfiguration(clientBuilderConfiguration) + .region(region) + .build(); + InputStream inputStream = file.getInputStream(); + + String originFileName = file.getOriginalFilename(); + String fileExt = Objects.requireNonNull(originFileName).substring(originFileName.lastIndexOf(".") + 1); + String fileName = originFileName.substring(0, originFileName.lastIndexOf(".")); + // 设置文件名 + String filePathName = generateRelativeStoragePath(storagePath, fileExt, fileName); + // 创建PutObjectRequest对象。 + PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfig.BUCKET_NAME, filePathName, inputStream); + // 创建PutObject请求。 + PutObjectResult result = ossClient.putObject(putObjectRequest); + + return OssConfig.DOWNLOAD_ENDPOINT + filePathName; + } + + /** + * <pre> + * 获取存储的相对路径 + * 规则path + / + yyyyMMddHH + uuid + * </pre> + * + * @param storagePath + * @return + */ + private static String generateRelativeStoragePath(String storagePath, String fileType, String fileName) { + + String time = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"); + String uuid = UUID.randomUUID().toString(); + StringBuilder sb = new StringBuilder(); + if (StringUtils.isNotBlank(storagePath)) { + sb.append(storagePath).append("/"); + } + if (fileName == null) { + sb.append(time).append(uuid); + } else { + sb.append(fileName).append(time); + } + if (StringUtils.isNotBlank(fileType)) { + sb.append(".").append(fileType); + } + return sb.toString(); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index a43361c..c37477c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -1,22 +1,5 @@ package com.ruoyi.system.controller; -import java.io.IOException; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; @@ -39,6 +22,24 @@ import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * 用户信息 @@ -348,4 +349,24 @@ { return success(deptService.selectDeptTreeList(dept)); } + + /** + * 根据用户id获取用户信息 + * @param userId + * @return + */ + @InnerAuth + @GetMapping("/get-by-id/{userId}") + R<SysUser> getUserById(@PathVariable("userId") Long userId){ + return R.ok(userService.selectUserById(userId)); + } + /** + * 更新用户信息 + * @param sysUser + */ + @InnerAuth + @PostMapping("/update") + R<?> updateUser(@RequestBody SysUser sysUser){ + return R.ok(userService.resetPwd(sysUser)); + } } -- Gitblit v1.7.1