refactor(all): change sql to postgresql
This commit is contained in:
@@ -1,18 +1,21 @@
|
||||
package xin.merlin.myblog_server.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.benmanes.caffeine.cache.Cache;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import xin.merlin.myblog_server.config.CustomUserDetails;
|
||||
import xin.merlin.myblog_server.config.LoginDetails;
|
||||
import xin.merlin.myblog_server.entity.Account;
|
||||
import xin.merlin.myblog_server.service.impl.AccountServiceImpl;
|
||||
import xin.merlin.myblog_server.entity.User;
|
||||
import xin.merlin.myblog_server.service.CacheService;
|
||||
import xin.merlin.myblog_server.service.impl.UserServiceImpl;
|
||||
import xin.merlin.myblog_server.utils.JwtUtil;
|
||||
import xin.merlin.myblog_server.utils.RandomCode;
|
||||
import xin.merlin.myblog_server.utils.RequestBack;
|
||||
import xin.merlin.myblog_server.utils.SHA256Util;
|
||||
import xin.merlin.myblog_server.utils.enums.ResultCode;
|
||||
@@ -27,7 +30,7 @@ public class LoginController {
|
||||
private LoginDetails loginDetails;
|
||||
|
||||
@Autowired
|
||||
private AccountServiceImpl accountServiceImpl;
|
||||
private UserServiceImpl userServiceImpl;
|
||||
|
||||
@Autowired
|
||||
private SHA256Util sha256Util;
|
||||
@@ -38,25 +41,32 @@ public class LoginController {
|
||||
@Autowired
|
||||
private HttpServletRequest request;
|
||||
|
||||
@Autowired
|
||||
private CacheService cacheService;
|
||||
|
||||
// 登录逻辑
|
||||
@PostMapping("/login")
|
||||
public RequestBack login(@RequestBody Account account) {
|
||||
public RequestBack login(@RequestBody User user) {
|
||||
try {
|
||||
String ip = request.getRemoteAddr();
|
||||
account.setIp(ip);
|
||||
user.setIp(ip);
|
||||
|
||||
CustomUserDetails userDetails = loginDetails
|
||||
.loadUserByUsername(account.getU_account());
|
||||
account.setU_password(sha256Util
|
||||
.encryptPassword(account.getU_password(),userDetails.getU_id()));
|
||||
.loadUserByUsername(user.getAccount());
|
||||
user.setPassword(sha256Util
|
||||
.encryptPassword(user.getPassword()));
|
||||
|
||||
if (userDetails == null) {
|
||||
return RequestBack.success(ResultCode.USER_NOT_FOUND);
|
||||
}
|
||||
//System.out.println(account.getU_password());
|
||||
// 验证密码
|
||||
if(!account.getU_password().equals(userDetails.getPassword()))
|
||||
if(!user.getPassword().equals(userDetails.getPassword()))
|
||||
return RequestBack.success(ResultCode.USER_PASSWORD_ERROR,null);
|
||||
|
||||
//System.out.println(userDetails.getU_id());
|
||||
// 生成token
|
||||
String token = jwtUtil.generateToken(account.getU_account(),userDetails.getU_id());
|
||||
String token = jwtUtil.generateToken(user.getAccount(),userDetails.getU_id());
|
||||
|
||||
return RequestBack.success(ResultCode.SUCCESS, Map.of("token",token,"token_type","Bearer","role","User"));
|
||||
} catch (UsernameNotFoundException e) {
|
||||
@@ -67,24 +77,20 @@ public class LoginController {
|
||||
|
||||
// 注册逻辑
|
||||
@PostMapping("/register")
|
||||
public RequestBack register(@RequestBody Account account) {
|
||||
|
||||
public RequestBack register(@RequestBody User user, @RequestParam String c_id) {
|
||||
if(c_id == null || cacheService.getWaitingList().getIfPresent(c_id)==null) return RequestBack.fail(ResultCode.USER_VERIFICATION_ERROR);
|
||||
try {
|
||||
if(accountServiceImpl.isExist(account.getU_account())) return RequestBack.success(ResultCode.USER_EXIST,null);
|
||||
// 分配id
|
||||
String u_id;
|
||||
do{
|
||||
u_id = "U"+ RandomCode.generateID();
|
||||
}while(accountServiceImpl.idIsExist(u_id));
|
||||
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("account", user.getAccount());
|
||||
if(userServiceImpl.exists(queryWrapper)) return RequestBack.success(ResultCode.USER_EXIST,null);
|
||||
|
||||
// 注册信息初始化
|
||||
account.setU_id(u_id);
|
||||
account.setU_password(sha256Util.encryptPassword(account.getU_password(),account.getU_id()));
|
||||
account.setU_status(0);
|
||||
account.setRole("User");
|
||||
user.setIp(request.getRemoteAddr());
|
||||
user.setPassword(sha256Util.encryptPassword(user.getPassword()));
|
||||
|
||||
// 注册
|
||||
accountServiceImpl.register(account);
|
||||
userServiceImpl.save(user);
|
||||
cacheService.getWaitingList().invalidate(c_id);
|
||||
|
||||
return RequestBack.success(ResultCode.SUCCESS,null);
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user