package com.weiwojc.controller; import com.weiwojc.model.common.Result; import com.weiwojc.model.dto.UserLoginDTO; import com.weiwojc.model.dto.UserRegisterDTO; import com.weiwojc.model.entity.User; import com.weiwojc.service.UserService; import com.weiwojc.utils.JwtUtils; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api/users") @RequiredArgsConstructor public class UserController { private final UserService userService; private final JwtUtils jwtUtils; @PostMapping("/register") public Result register(@Valid @RequestBody UserRegisterDTO registerDTO) { User user = userService.register(registerDTO); return Result.success("注册成功", user); } @PostMapping("/login") public Result login(@Valid @RequestBody UserLoginDTO loginDTO) { String token = userService.login(loginDTO); return Result.success("登录成功", token); } @GetMapping("/info") public Result getUserInfo(HttpServletRequest request) { String token = request.getHeader("token"); // 验证token是否存在 if (token == null || token.isEmpty()) { return Result.unauthorized("未登录或token无效"); } // 验证token是否有效 if (!jwtUtils.validateToken(token)) { return Result.unauthorized("token无效或已过期"); } Long userId = jwtUtils.getUserIdFromToken(token); User user = userService.getUserInfo(userId); if (user == null) { return Result.error("用户不存在"); } return Result.success(user); } }