feat: 用户相关api接口
This commit is contained in:
@@ -33,15 +33,15 @@ public class AccountServiceImpl implements AccountService {
|
||||
|
||||
@Override
|
||||
public LoginResponse login(LoginRequest request) {
|
||||
AccountEntity account = accountRepository.findByUsername(request.getUsername())
|
||||
AccountEntity account = accountRepository.findByUsername(request.username())
|
||||
.orElseThrow(() -> new BusinessException(ErrorCode.BAD_CREDENTIALS));
|
||||
if (!passwordEncoder.matches(request.getPassword(), account.getPassword())) {
|
||||
if (!passwordEncoder.matches(request.password(), account.getPassword())) {
|
||||
throw new BusinessException(ErrorCode.BAD_CREDENTIALS);
|
||||
}
|
||||
// Sa-Token 登录
|
||||
StpUtil.login(account.getId());
|
||||
String token = StpUtil.getTokenValue();
|
||||
log.info("用户登录成功: username={}", request.getUsername());
|
||||
log.info("用户登录成功: username={}", request.username());
|
||||
return new LoginResponse(token);
|
||||
}
|
||||
|
||||
@@ -49,13 +49,13 @@ public class AccountServiceImpl implements AccountService {
|
||||
@Transactional
|
||||
public LoginResponse register(RegisterRequest request) {
|
||||
// 检查用户名是否已存在
|
||||
if (accountRepository.existsByUsername(request.getUsername())) {
|
||||
if (accountRepository.existsByUsername(request.username())) {
|
||||
throw new BusinessException(ErrorCode.USERNAME_EXISTS);
|
||||
}
|
||||
// 创建账号
|
||||
AccountEntity account = new AccountEntity();
|
||||
account.setUsername(request.getUsername());
|
||||
account.setPassword(passwordEncoder.encode(request.getPassword()));
|
||||
account.setUsername(request.username());
|
||||
account.setPassword(passwordEncoder.encode(request.password()));
|
||||
accountRepository.save(account);
|
||||
// 创建用户资料(默认值)
|
||||
UserEntity user = new UserEntity();
|
||||
@@ -66,7 +66,7 @@ public class AccountServiceImpl implements AccountService {
|
||||
user.setAvatar("");
|
||||
userRepository.save(user);
|
||||
|
||||
log.info("用户注册成功: username={}", request.getUsername());
|
||||
log.info("用户注册成功: username={}", request.username());
|
||||
// 注册后自动登录
|
||||
StpUtil.login(account.getId());
|
||||
String token = StpUtil.getTokenValue();
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.webgame.webgamebackend.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.webgame.webgamebackend.common.dto.user.UserInfoResponse;
|
||||
import com.webgame.webgamebackend.common.exception.BusinessException;
|
||||
import com.webgame.webgamebackend.common.exception.ErrorCode;
|
||||
import com.webgame.webgamebackend.entities.UserEntity;
|
||||
import com.webgame.webgamebackend.repository.UserRepository;
|
||||
import com.webgame.webgamebackend.service.UserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 用户服务实现
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class UserServiceImpl implements UserService {
|
||||
|
||||
private final UserRepository userRepository;
|
||||
|
||||
@Override
|
||||
public UserInfoResponse getCurrentUserInfo() {
|
||||
String accountId = StpUtil.getLoginIdAsString();
|
||||
UserEntity user = userRepository.findByAccountId(accountId)
|
||||
.orElseThrow(() -> new BusinessException(ErrorCode.USER_NOT_FOUND));
|
||||
return UserInfoResponse.from(user);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user