change package name,fixes error

This commit is contained in:
2025-08-05 14:44:03 +08:00
parent 9832336b89
commit 69700c8fe1
22 changed files with 46 additions and 39 deletions

View File

@@ -0,0 +1,79 @@
package com.onekeycall.videotablet.service;
import com.onekeycall.videotablet.entity.User;
import com.onekeycall.videotablet.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Map;
@Service
public class UserService implements UserDetailsService {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
private final RedisTemplate<String, Object> redisTemplate;
@Autowired
public UserService(UserRepository userRepository, PasswordEncoder passwordEncoder, RedisTemplate<String, Object> redisTemplate) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
this.redisTemplate = redisTemplate;
}
public User registerUser(String username, String password) {
if (userRepository.existsByUsername(username)) {
throw new RuntimeException("Username already exists");
}
User user = new User();
user.setUsername(username);
user.setPassword(passwordEncoder.encode(password));
return userRepository.save(user);
}
public User registerByPhone(String phone, String code, Date createTime) {
// 1. 验证验证码
Map<String, Object> codeMap = (Map<String, Object>) redisTemplate.opsForValue().get(phone);
if (codeMap == null || !code.equals(codeMap.get("code").toString())) {
throw new RuntimeException("Invalid verification code");
}
// 2. 检查手机号是否已注册
if (userRepository.existsByPhone(phone)) {
throw new RuntimeException("Phone number already registered");
}
// 3. 创建新用户
User user = new User();
user.setPhone(phone);
user.setCreatTime(createTime);
return userRepository.save(user);
}
public User loginByPhone(String phone, String code) {
// 1. 验证验证码
Map<String, Object> codeMap = (Map<String, Object>) redisTemplate.opsForValue().get(phone);
if (codeMap == null || !code.equals(codeMap.get("code").toString())) {
throw new RuntimeException("Invalid verification code");
}
// 2. 查询用户
return userRepository.findByPhone(phone)
.orElseThrow(() -> new RuntimeException("User not found with phone: " + phone));
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return userRepository.findByUsername(username)
.orElseThrow(() -> new UsernameNotFoundException("User not found with username: " + username));
}
}