From 374271bd477363aaabcb88a288d332ea5773d053 Mon Sep 17 00:00:00 2001 From: wzp Date: Tue, 24 Dec 2024 18:34:10 +0800 Subject: [PATCH] fix: fix a bunch of bugs!!!!!!!! --- .../CustomAuthorizationHandler.java | 2 +- .../blue/club/controller/UserController.java | 6 ++--- .../club/entities/dto/{ => user}/User.java | 4 +++- .../dto/{ => user}/req/LoginRequest.java | 2 +- .../dto/{ => user}/req/RegisterRequest.java | 2 +- .../{ => user}/req/UserChangeAuthRequest.java | 2 +- .../req/UserChangePasswordRequest.java | 2 +- .../dto/{ => user}/req/UserRenameRequest.java | 2 +- .../{ => user}/resp/VerifyCodeResponse.java | 2 +- .../blue/club/entities/vo/data/UserVo.java | 3 ++- .../org/blue/club/services/UserServices.java | 24 ++++++++++++------- .../blue/club/utils/{ => iop}/FileUtils.java | 2 +- .../club/utils/{ => iop}/VerifyCodeUtils.java | 4 ++-- 13 files changed, 34 insertions(+), 23 deletions(-) rename src/main/java/org/blue/club/entities/dto/{ => user}/User.java (90%) rename src/main/java/org/blue/club/entities/dto/{ => user}/req/LoginRequest.java (92%) rename src/main/java/org/blue/club/entities/dto/{ => user}/req/RegisterRequest.java (93%) rename src/main/java/org/blue/club/entities/dto/{ => user}/req/UserChangeAuthRequest.java (86%) rename src/main/java/org/blue/club/entities/dto/{ => user}/req/UserChangePasswordRequest.java (95%) rename src/main/java/org/blue/club/entities/dto/{ => user}/req/UserRenameRequest.java (91%) rename src/main/java/org/blue/club/entities/dto/{ => user}/resp/VerifyCodeResponse.java (86%) rename src/main/java/org/blue/club/utils/{ => iop}/FileUtils.java (91%) rename src/main/java/org/blue/club/utils/{ => iop}/VerifyCodeUtils.java (96%) diff --git a/src/main/java/org/blue/club/configuration/CustomAuthorizationHandler.java b/src/main/java/org/blue/club/configuration/CustomAuthorizationHandler.java index 0e7a1dd..5ac911b 100644 --- a/src/main/java/org/blue/club/configuration/CustomAuthorizationHandler.java +++ b/src/main/java/org/blue/club/configuration/CustomAuthorizationHandler.java @@ -4,7 +4,7 @@ import lombok.RequiredArgsConstructor; import org.blue.club.annotation.Auth; import org.blue.club.dao.AuthDao; import org.blue.club.dao.UserDao; -import org.blue.club.entities.dto.User; +import org.blue.club.entities.dto.user.User; import org.blue.club.entities.vo.data.UserVo; import org.mmga.spring.boot.starter.componet.AuthorizationHandler; import org.mmga.spring.boot.starter.componet.JwtUtils; diff --git a/src/main/java/org/blue/club/controller/UserController.java b/src/main/java/org/blue/club/controller/UserController.java index 2bfba8d..76b887a 100644 --- a/src/main/java/org/blue/club/controller/UserController.java +++ b/src/main/java/org/blue/club/controller/UserController.java @@ -8,9 +8,9 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.blue.club.annotation.Auth; -import org.blue.club.entities.dto.User; -import org.blue.club.entities.dto.req.*; -import org.blue.club.entities.dto.resp.VerifyCodeResponse; +import org.blue.club.entities.dto.user.User; +import org.blue.club.entities.dto.user.req.*; +import org.blue.club.entities.dto.user.resp.VerifyCodeResponse; import org.blue.club.services.UserServices; import org.mmga.spring.boot.starter.annotation.AuthMapping; import org.mmga.spring.boot.starter.entities.PagerData; diff --git a/src/main/java/org/blue/club/entities/dto/User.java b/src/main/java/org/blue/club/entities/dto/user/User.java similarity index 90% rename from src/main/java/org/blue/club/entities/dto/User.java rename to src/main/java/org/blue/club/entities/dto/user/User.java index bb4f30d..475ad72 100644 --- a/src/main/java/org/blue/club/entities/dto/User.java +++ b/src/main/java/org/blue/club/entities/dto/user/User.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto; +package org.blue.club.entities.dto.user; import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.RelationManyToOne; @@ -6,6 +6,7 @@ import jakarta.annotation.Nullable; import lombok.Data; import org.blue.club.entities.vo.data.AuthVo; import org.blue.club.entities.vo.data.ClubVo; +import org.mmga.spring.boot.starter.annotation.VoFieldMapper; import org.mmga.spring.boot.starter.interfaces.IdHolder; @Data @@ -16,6 +17,7 @@ public class User implements IdHolder { @Nullable private String avatar; @RelationManyToOne(selfField = "auth", targetField = "id") + @VoFieldMapper("auths") private AuthVo auth; @RelationManyToOne(joinTable = "club_user_auth", selfField = "id", joinSelfColumn = "user_id", targetField = "id", joinTargetColumn = "club_id") private ClubVo club; diff --git a/src/main/java/org/blue/club/entities/dto/req/LoginRequest.java b/src/main/java/org/blue/club/entities/dto/user/req/LoginRequest.java similarity index 92% rename from src/main/java/org/blue/club/entities/dto/req/LoginRequest.java rename to src/main/java/org/blue/club/entities/dto/user/req/LoginRequest.java index ac9bbca..f7b84bf 100644 --- a/src/main/java/org/blue/club/entities/dto/req/LoginRequest.java +++ b/src/main/java/org/blue/club/entities/dto/user/req/LoginRequest.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto.req; +package org.blue.club.entities.dto.user.req; import io.swagger.v3.oas.annotations.media.Schema; import org.apache.commons.codec.digest.DigestUtils; diff --git a/src/main/java/org/blue/club/entities/dto/req/RegisterRequest.java b/src/main/java/org/blue/club/entities/dto/user/req/RegisterRequest.java similarity index 93% rename from src/main/java/org/blue/club/entities/dto/req/RegisterRequest.java rename to src/main/java/org/blue/club/entities/dto/user/req/RegisterRequest.java index 2e508b5..2a1562a 100644 --- a/src/main/java/org/blue/club/entities/dto/req/RegisterRequest.java +++ b/src/main/java/org/blue/club/entities/dto/user/req/RegisterRequest.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto.req; +package org.blue.club.entities.dto.user.req; import io.swagger.v3.oas.annotations.media.Schema; import org.apache.commons.codec.digest.DigestUtils; diff --git a/src/main/java/org/blue/club/entities/dto/req/UserChangeAuthRequest.java b/src/main/java/org/blue/club/entities/dto/user/req/UserChangeAuthRequest.java similarity index 86% rename from src/main/java/org/blue/club/entities/dto/req/UserChangeAuthRequest.java rename to src/main/java/org/blue/club/entities/dto/user/req/UserChangeAuthRequest.java index 8ef7c10..669aa44 100644 --- a/src/main/java/org/blue/club/entities/dto/req/UserChangeAuthRequest.java +++ b/src/main/java/org/blue/club/entities/dto/user/req/UserChangeAuthRequest.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto.req; +package org.blue.club.entities.dto.user.req; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/org/blue/club/entities/dto/req/UserChangePasswordRequest.java b/src/main/java/org/blue/club/entities/dto/user/req/UserChangePasswordRequest.java similarity index 95% rename from src/main/java/org/blue/club/entities/dto/req/UserChangePasswordRequest.java rename to src/main/java/org/blue/club/entities/dto/user/req/UserChangePasswordRequest.java index 9fa6687..b0faa20 100644 --- a/src/main/java/org/blue/club/entities/dto/req/UserChangePasswordRequest.java +++ b/src/main/java/org/blue/club/entities/dto/user/req/UserChangePasswordRequest.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto.req; +package org.blue.club.entities.dto.user.req; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/src/main/java/org/blue/club/entities/dto/req/UserRenameRequest.java b/src/main/java/org/blue/club/entities/dto/user/req/UserRenameRequest.java similarity index 91% rename from src/main/java/org/blue/club/entities/dto/req/UserRenameRequest.java rename to src/main/java/org/blue/club/entities/dto/user/req/UserRenameRequest.java index 30328f4..6cd4c88 100644 --- a/src/main/java/org/blue/club/entities/dto/req/UserRenameRequest.java +++ b/src/main/java/org/blue/club/entities/dto/user/req/UserRenameRequest.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto.req; +package org.blue.club.entities.dto.user.req; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/src/main/java/org/blue/club/entities/dto/resp/VerifyCodeResponse.java b/src/main/java/org/blue/club/entities/dto/user/resp/VerifyCodeResponse.java similarity index 86% rename from src/main/java/org/blue/club/entities/dto/resp/VerifyCodeResponse.java rename to src/main/java/org/blue/club/entities/dto/user/resp/VerifyCodeResponse.java index 3e6f26c..0ec6bd9 100644 --- a/src/main/java/org/blue/club/entities/dto/resp/VerifyCodeResponse.java +++ b/src/main/java/org/blue/club/entities/dto/user/resp/VerifyCodeResponse.java @@ -1,4 +1,4 @@ -package org.blue.club.entities.dto.resp; +package org.blue.club.entities.dto.user.resp; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/org/blue/club/entities/vo/data/UserVo.java b/src/main/java/org/blue/club/entities/vo/data/UserVo.java index f3d9277..c42e1a2 100644 --- a/src/main/java/org/blue/club/entities/vo/data/UserVo.java +++ b/src/main/java/org/blue/club/entities/vo/data/UserVo.java @@ -1,6 +1,7 @@ package org.blue.club.entities.vo.data; import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.RelationManyToOne; import com.mybatisflex.annotation.Table; import jakarta.annotation.Nullable; @@ -12,7 +13,7 @@ import org.mmga.spring.boot.starter.annotation.VoIgnore; @Data @Table("user") public class UserVo extends BaseDataVo { - @Id + @Id(keyType = KeyType.Auto) private Long id; private String name; @VoIgnore diff --git a/src/main/java/org/blue/club/services/UserServices.java b/src/main/java/org/blue/club/services/UserServices.java index 8c1137c..67efc38 100644 --- a/src/main/java/org/blue/club/services/UserServices.java +++ b/src/main/java/org/blue/club/services/UserServices.java @@ -11,22 +11,25 @@ import org.apache.tomcat.util.buf.HexUtils; import org.blue.club.dao.UserDao; import org.blue.club.dao.redis.AvatarOperationDao; import org.blue.club.dao.redis.VerifyDao; -import org.blue.club.entities.dto.User; -import org.blue.club.entities.dto.req.*; -import org.blue.club.entities.dto.resp.VerifyCodeResponse; +import org.blue.club.entities.dto.user.User; +import org.blue.club.entities.dto.user.req.*; +import org.blue.club.entities.dto.user.resp.VerifyCodeResponse; import org.blue.club.entities.vo.data.AvatarTmpVo; import org.blue.club.entities.vo.data.UserVo; import org.blue.club.entities.vo.VerifyVo; -import org.blue.club.utils.FileUtils; -import org.blue.club.utils.VerifyCodeUtils; +import org.blue.club.utils.iop.FileUtils; +import org.blue.club.utils.iop.VerifyCodeUtils; import org.mmga.spring.boot.starter.entities.PagerData; import org.mmga.spring.boot.starter.entities.Result; import org.mmga.spring.boot.starter.exception.AuthorizationException; +import org.mmga.spring.boot.starter.properties.Env; +import org.mmga.spring.boot.starter.properties.MainProperties; import org.mmga.spring.boot.starter.utils.RandomUtils; import org.mmga.spring.boot.starter.utils.VoUtils; import org.springframework.http.ContentDisposition; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StreamUtils; import org.springframework.web.multipart.MultipartFile; @@ -55,8 +58,10 @@ public class UserServices { private final AvatarOperationDao avatarOperationDao; private final FileUtils fileUtils; private final VerifyCodeUtils verifyCodeUtils; + private final MainProperties mainProperties; private boolean isWrongVerifyCode(String key, String code) { + if (mainProperties.getEnv().equals(Env.DEV)) return false; Optional targetCode = verifyDao.findById(key); if (targetCode.isEmpty()) { return true; @@ -65,6 +70,7 @@ public class UserServices { return !targetCode.get().answer().equals(code); } + @Transactional public Result login(LoginRequest loginRequest) { if (this.isWrongVerifyCode(loginRequest.key(), loginRequest.code())) { return Result.failed(HttpStatus.FORBIDDEN, "错误的验证码"); @@ -75,6 +81,7 @@ public class UserServices { return Result.success(user); } + @Transactional public Result createUser(RegisterRequest request) { if (this.isWrongVerifyCode(request.key(), request.code())) { return Result.failed(HttpStatus.FORBIDDEN, "错误的验证码"); @@ -87,6 +94,7 @@ public class UserServices { userVo.setPassword(request.sha1HexPassword()); userVo.setAuth(request.auth()); userDao.insert(userVo); + System.out.println(userVo); UserVo insertedUserData = userDao.selectOneWithRelationsById(userVo.getId()); return Result.success(voUtils.vo2DtoSafe(insertedUserData, User.class)); } @@ -154,7 +162,7 @@ public class UserServices { MessageDigest messageDigest = digestInputStream.getMessageDigest(); String sha1Hex = HexUtils.toHexString(messageDigest.digest()); avatarOperationDao.save(new AvatarTmpVo(s, sha1Hex, new Date())); - return Result.success(s); + return Result.success("上传成功", s); } public Result changeAvatar(String avatarOperationCode, User user) { @@ -169,14 +177,14 @@ public class UserServices { avatarOperationDao.deleteById(avatarOperationCode); UserVo userVo = new UserVo(); userVo.setId(user.getId()); - userVo.setAvatar(user.getAvatar()); + userVo.setAvatar(sha1); userDao.update(userVo); return Result.success(true); } public Optional> changeAvatarFile(File tmpFile, File targetFile) { if (targetFile.exists()) { - fileUtils.tryDeleteOrDeleteOnExit(targetFile); + fileUtils.tryDeleteOrDeleteOnExit(tmpFile); return Optional.empty(); } if (!tmpFile.renameTo(targetFile)) diff --git a/src/main/java/org/blue/club/utils/FileUtils.java b/src/main/java/org/blue/club/utils/iop/FileUtils.java similarity index 91% rename from src/main/java/org/blue/club/utils/FileUtils.java rename to src/main/java/org/blue/club/utils/iop/FileUtils.java index 771ac9a..c3ca0f2 100644 --- a/src/main/java/org/blue/club/utils/FileUtils.java +++ b/src/main/java/org/blue/club/utils/iop/FileUtils.java @@ -1,4 +1,4 @@ -package org.blue.club.utils; +package org.blue.club.utils.iop; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/src/main/java/org/blue/club/utils/VerifyCodeUtils.java b/src/main/java/org/blue/club/utils/iop/VerifyCodeUtils.java similarity index 96% rename from src/main/java/org/blue/club/utils/VerifyCodeUtils.java rename to src/main/java/org/blue/club/utils/iop/VerifyCodeUtils.java index 66f3432..1c9dc54 100644 --- a/src/main/java/org/blue/club/utils/VerifyCodeUtils.java +++ b/src/main/java/org/blue/club/utils/iop/VerifyCodeUtils.java @@ -1,10 +1,10 @@ -package org.blue.club.utils; +package org.blue.club.utils.iop; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import org.apache.commons.codec.binary.Base64OutputStream; import org.blue.club.dao.redis.VerifyDao; -import org.blue.club.entities.dto.resp.VerifyCodeResponse; +import org.blue.club.entities.dto.user.resp.VerifyCodeResponse; import org.blue.club.entities.vo.VerifyVo; import org.mmga.spring.boot.starter.utils.RandomUtils; import org.springframework.stereotype.Component;