From b575de3230cb7bbc62c74e8e305a18797d73b5fb Mon Sep 17 00:00:00 2001 From: lzq Date: Fri, 1 Aug 2025 18:07:48 +0800 Subject: [PATCH] 1 --- .../njzscloud-common-minio/pom.xml | 5 ++ .../minio/config/MinioAutoConfiguration.java | 6 +++ .../minio/controller/OSSController.java | 54 +++++++++++++++++++ .../support/GlobalExceptionController.java | 12 +++++ njzscloud-svr/pom.xml | 4 +- .../oss/controller/OSSController.java | 4 +- .../user/pojo/UserDetailResult.java | 2 + .../user/pojo/UserModifyParam.java | 4 +- .../user/service/SysUserService.java | 13 +++-- .../src/main/resources/application-dev.yml | 2 +- .../main/resources/mapper/SysUserMapper.xml | 1 + 11 files changed, 97 insertions(+), 10 deletions(-) create mode 100644 njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/controller/OSSController.java diff --git a/njzscloud-common/njzscloud-common-minio/pom.xml b/njzscloud-common/njzscloud-common-minio/pom.xml index fccb22d..66fd54b 100644 --- a/njzscloud-common/njzscloud-common-minio/pom.xml +++ b/njzscloud-common/njzscloud-common-minio/pom.xml @@ -23,6 +23,11 @@ njzscloud-common-core provided + + com.njzscloud + njzscloud-common-mvc + provided + io.minio minio diff --git a/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/config/MinioAutoConfiguration.java b/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/config/MinioAutoConfiguration.java index 2de5499..407a241 100644 --- a/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/config/MinioAutoConfiguration.java +++ b/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/config/MinioAutoConfiguration.java @@ -1,5 +1,6 @@ package com.njzscloud.common.minio.config; +import com.njzscloud.common.minio.controller.OSSController; import io.minio.MinioAsyncClient; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -19,4 +20,9 @@ public class MinioAutoConfiguration { .credentials(accessKey, secretKey) .build(); } + + @Bean + public OSSController ossController() { + return new OSSController(); + } } diff --git a/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/controller/OSSController.java b/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/controller/OSSController.java new file mode 100644 index 0000000..3279c25 --- /dev/null +++ b/njzscloud-common/njzscloud-common-minio/src/main/java/com/njzscloud/common/minio/controller/OSSController.java @@ -0,0 +1,54 @@ +package com.njzscloud.common.minio.controller; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.njzscloud.common.core.tuple.Tuple2; +import com.njzscloud.common.core.utils.R; +import com.njzscloud.common.minio.util.Minio; +import com.njzscloud.common.mvc.util.FileResponseUtil; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/oss") +public class OSSController { + + @GetMapping("/end_mlt_upload") + public R endMltUpload(String objectName, String uploadId, int partNum) { + Minio.endMltUpload(objectName, uploadId, partNum); + return R.success(); + } + + @GetMapping("/start_mlt_upload") + public R>> startMltUpload( + String objectName, + String contentType, + int partNum) { + return R.success(Minio.startMltUpload(objectName, contentType, partNum)); + } + + @GetMapping("/obtain_presigned_url") + public R> obtainPresignedUrl( + @RequestParam(value = "bucketName") String bucketName, + @RequestParam(value = "filename") String filename) { + String objectName = IdUtil.fastSimpleUUID(); + if (StrUtil.isNotBlank(filename)) { + objectName = objectName + "." + FileUtil.extName(filename); + } + return R.success(Minio.obtainPresignedUrl(bucketName, objectName)); + } + + @GetMapping("/download/{bucketName}/{objectName}") + public void obtainFile( + @PathVariable("bucketName") String bucketName, + @PathVariable("objectName") String objectName, + HttpServletResponse response) { + Tuple2 tuple2 = Minio.obtainFile(bucketName, objectName); + FileResponseUtil.download(response, tuple2.get_0(), tuple2.get_1(), objectName); + } +} diff --git a/njzscloud-common/njzscloud-common-mvc/src/main/java/com/njzscloud/common/mvc/support/GlobalExceptionController.java b/njzscloud-common/njzscloud-common-mvc/src/main/java/com/njzscloud/common/mvc/support/GlobalExceptionController.java index 76dd19b..135804d 100644 --- a/njzscloud-common/njzscloud-common-mvc/src/main/java/com/njzscloud/common/mvc/support/GlobalExceptionController.java +++ b/njzscloud-common/njzscloud-common-mvc/src/main/java/com/njzscloud/common/mvc/support/GlobalExceptionController.java @@ -2,6 +2,7 @@ package com.njzscloud.common.mvc.support; import com.njzscloud.common.core.ex.CliException; import com.njzscloud.common.core.ex.ExceptionMsg; +import com.njzscloud.common.core.ex.SysError; import com.njzscloud.common.core.ex.SysException; import com.njzscloud.common.core.utils.R; import lombok.extern.slf4j.Slf4j; @@ -283,6 +284,17 @@ public class GlobalExceptionController { return R.failed(e.expect, e.msg, e.message); } + /** + * 系统错误 + */ + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + @ExceptionHandler(SysError.class) + public R sysErrorHandler(SysError e) { + printRequest(); + log.error(e.getMessage(), e); + return R.failed(e.expect, e.msg, e.message); + } + /** * 服务器错误 */ diff --git a/njzscloud-svr/pom.xml b/njzscloud-svr/pom.xml index a7f07d7..31f5cdc 100644 --- a/njzscloud-svr/pom.xml +++ b/njzscloud-svr/pom.xml @@ -49,10 +49,10 @@ com.njzscloud njzscloud-common-gen - + com.alibaba diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/oss/controller/OSSController.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/oss/controller/OSSController.java index 5fc494f..a6a98a4 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/oss/controller/OSSController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/oss/controller/OSSController.java @@ -21,8 +21,8 @@ import java.nio.file.Paths; import java.util.List; import java.util.Map; -@RestController -@RequestMapping("/oss") +// @RestController +// @RequestMapping("/oss") public class OSSController { @Value("${oss.path}") diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserDetailResult.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserDetailResult.java index 13e9d04..ee4cf7b 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserDetailResult.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserDetailResult.java @@ -24,6 +24,8 @@ public class UserDetailResult { */ private Gender gender; + private String avatar; + /** * 邮箱 */ diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserModifyParam.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserModifyParam.java index f0d0a38..53451c6 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserModifyParam.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/pojo/UserModifyParam.java @@ -1,10 +1,10 @@ package com.njzscloud.supervisory.user.pojo; import cn.hutool.core.util.StrUtil; -import com.njzscloud.supervisory.user.contant.Gender; import com.njzscloud.common.mvc.validator.Constrained; import com.njzscloud.common.mvc.validator.Constraint; import com.njzscloud.common.mvc.validator.ValidRule; +import com.njzscloud.supervisory.user.contant.Gender; import lombok.Getter; import lombok.Setter; @@ -24,6 +24,8 @@ public class UserModifyParam implements Constrained { */ private String nickname; + private String avatar; + /** * 性别; 字典代码:gender */ diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/service/SysUserService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/service/SysUserService.java index ebd4fbf..9e31631 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/service/SysUserService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/user/service/SysUserService.java @@ -105,10 +105,15 @@ public class SysUserService extends ServiceImpl im String wechatUnionid = account.getWechatUnionid(); List oldSysUserList = sysUserAccountService.list(Wrappers.lambdaQuery() - .eq(SysUserAccountEntity::getUsername, username) - .or().eq(StrUtil.isNotBlank(email), SysUserAccountEntity::getEmail, email) - .or().eq(StrUtil.isNotBlank(phone), SysUserAccountEntity::getPhone, phone) - .or(StrUtil.isNotBlank(wechatOpenid) && StrUtil.isNotBlank(wechatUnionid), it -> it.eq(SysUserAccountEntity::getWechatOpenid, wechatOpenid).eq(SysUserAccountEntity::getWechatUnionid, wechatUnionid)) + .ne(SysUserAccountEntity::getId, id) + .and(it1 -> it1 + .eq(SysUserAccountEntity::getUsername, username) + .or().eq(StrUtil.isNotBlank(email), SysUserAccountEntity::getEmail, email) + .or().eq(StrUtil.isNotBlank(phone), SysUserAccountEntity::getPhone, phone) + .or(StrUtil.isNotBlank(wechatOpenid) && StrUtil.isNotBlank(wechatUnionid), + it -> it.eq(SysUserAccountEntity::getWechatOpenid, wechatOpenid) + .eq(SysUserAccountEntity::getWechatUnionid, wechatUnionid)) + ) ); Assert.isTrue(oldSysUserList.stream().noneMatch(it -> username.equals(it.getUsername())), () -> Exceptions.exception("用户名【{}】已被使用", username)); Assert.isTrue(StrUtil.isBlank(email) || oldSysUserList.stream().noneMatch(it -> email.equals(it.getEmail())), () -> Exceptions.exception("邮箱【{}】已被使用", email)); diff --git a/njzscloud-svr/src/main/resources/application-dev.yml b/njzscloud-svr/src/main/resources/application-dev.yml index d4a4a90..dda1e70 100644 --- a/njzscloud-svr/src/main/resources/application-dev.yml +++ b/njzscloud-svr/src/main/resources/application-dev.yml @@ -28,7 +28,7 @@ oss: endpoint: http://localhost:9000 access-key: minioadmin secret-key: minioadmin - bucket-name: test + bucket-name: zsy app: district: diff --git a/njzscloud-svr/src/main/resources/mapper/SysUserMapper.xml b/njzscloud-svr/src/main/resources/mapper/SysUserMapper.xml index f9765aa..c6f7646 100644 --- a/njzscloud-svr/src/main/resources/mapper/SysUserMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/SysUserMapper.xml @@ -13,6 +13,7 @@ SELECT a.id, a.nickname, a.gender, + a.avatar, a.email, a.phone, b.id account_id,