fix: fix a bunch of bugs!!!!!!!!

This commit is contained in:
wzp 2024-12-24 18:34:10 +08:00
parent 9e78a943c2
commit 374271bd47
13 changed files with 34 additions and 23 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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<VerifyVo> 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<User> 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<User> 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<Boolean> 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<Result<Boolean>> changeAvatarFile(File tmpFile, File targetFile) {
if (targetFile.exists()) {
fileUtils.tryDeleteOrDeleteOnExit(targetFile);
fileUtils.tryDeleteOrDeleteOnExit(tmpFile);
return Optional.empty();
}
if (!tmpFile.renameTo(targetFile))

View File

@ -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;

View File

@ -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;