diff --git a/music-houduan/src/main/java/com/test/musichouduan/service/impl/UserServiceImpl.java b/music-houduan/src/main/java/com/test/musichouduan/service/impl/UserServiceImpl.java index 23dff8d..14bfc4e 100644 --- a/music-houduan/src/main/java/com/test/musichouduan/service/impl/UserServiceImpl.java +++ b/music-houduan/src/main/java/com/test/musichouduan/service/impl/UserServiceImpl.java @@ -4,6 +4,7 @@ import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.stp.StpUtil; import com.test.musichouduan.dto.*; import com.test.musichouduan.entity.User; +import com.test.musichouduan.exception.BusinessException; import com.test.musichouduan.repository.*; import com.test.musichouduan.service.UserService; import org.springframework.beans.BeanUtils; @@ -49,17 +50,17 @@ public class UserServiceImpl implements UserService { public UserDTO register(RegisterRequest request) { // 检查用户名是否已存在 if (userRepository.existsByUsername(request.getUsername())) { - throw new RuntimeException("用户名已存在"); + throw new BusinessException(400,"用户名已存在"); } // 检查邮箱是否已存在 if (userRepository.existsByEmail(request.getEmail())) { - throw new RuntimeException("邮箱已存在"); + throw new BusinessException(400,"邮箱已存在"); } // 检查两次密码是否一致 if (!request.getPassword().equals(request.getConfirmPassword())) { - throw new RuntimeException("两次密码不一致"); + throw new BusinessException(400,"两次密码不一致"); } // 创建用户 @@ -83,16 +84,16 @@ public class UserServiceImpl implements UserService { public LoginResultDTO login(LoginRequest request) { // 根据用户名查找用户 User user = userRepository.findByUsername(request.getUsername()) - .orElseThrow(() -> new RuntimeException("用户名或密码错误")); + .orElseThrow(() -> new BusinessException(400,"用户名或密码错误")); // 检查用户状态 if (user.getStatus() == 0) { - throw new RuntimeException("账号已被禁用"); + throw new BusinessException(400,"账号已被禁用"); } // 检查密码 if (!BCrypt.checkpw(request.getPassword(), user.getPassword())) { - throw new RuntimeException("用户名或密码错误"); + throw new BusinessException(400,"用户名或密码错误"); } // 登录 @@ -126,7 +127,7 @@ public class UserServiceImpl implements UserService { // 根据ID查找用户 User user = userRepository.findById(userId) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 返回用户DTO return getUserStats(userId); @@ -136,7 +137,7 @@ public class UserServiceImpl implements UserService { public UserDTO getUserById(Long id) { // 根据ID查找用户 User user = userRepository.findById(id) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 返回用户DTO return convertToDTO(user); @@ -146,7 +147,7 @@ public class UserServiceImpl implements UserService { public UserDTO getUserByUsername(String username) { // 根据用户名查找用户 User user = userRepository.findByUsername(username) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 返回用户DTO return convertToDTO(user); @@ -160,7 +161,7 @@ public class UserServiceImpl implements UserService { // 根据ID查找用户 User user = userRepository.findById(userId) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 更新用户信息 if (request.getNickname() != null) { @@ -197,16 +198,16 @@ public class UserServiceImpl implements UserService { // 根据ID查找用户 User user = userRepository.findById(userId) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 检查旧密码 if (!BCrypt.checkpw(request.getOldPassword(), user.getPassword())) { - throw new RuntimeException("旧密码错误"); + throw new BusinessException(400,"旧密码错误"); } // 检查两次密码是否一致 if (!request.getNewPassword().equals(request.getConfirmPassword())) { - throw new RuntimeException("两次密码不一致"); + throw new BusinessException(400,"两次密码不一致"); } // 更新密码 @@ -222,7 +223,7 @@ public class UserServiceImpl implements UserService { public UserDTO getUserStats(Long userId) { // 根据ID查找用户 User user = userRepository.findById(userId) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 转换为DTO UserDTO userDTO = convertToDTO(user); @@ -274,7 +275,7 @@ public class UserServiceImpl implements UserService { public boolean deleteUser(Long id) { // 检查用户是否存在 if (!userRepository.existsById(id)) { - throw new RuntimeException("用户不存在"); + throw new BusinessException(400,"用户不存在"); } // 删除用户 @@ -288,7 +289,7 @@ public class UserServiceImpl implements UserService { public boolean updateUserStatus(Long id, Integer status) { // 根据ID查找用户 User user = userRepository.findById(id) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); // 更新状态 user.setStatus(status); @@ -341,7 +342,7 @@ public class UserServiceImpl implements UserService { @Override public User getById(Long id) { return userRepository.findById(id) - .orElseThrow(() -> new RuntimeException("用户不存在")); + .orElseThrow(() -> new BusinessException(400,"用户不存在")); } /** diff --git a/music-qianduan/src/views/Login.vue b/music-qianduan/src/views/Login.vue index c8c5897..3d0a3f2 100644 --- a/music-qianduan/src/views/Login.vue +++ b/music-qianduan/src/views/Login.vue @@ -81,7 +81,9 @@ const handleLogin = () => { } } catch (error) { console.error('登录失败:', error) - ElMessage.error(error.message || '登录失败,请检查用户名和密码') + if (!error.__handled) { + ElMessage.error(error.message || '登录失败,请检查用户名和密码') + } } finally { loading.value = false }