UserController.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.zhentao.user.controller;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.aliyun.oss.model.PutObjectRequest;
  5. import com.zhentao.config.NullLogin;
  6. import com.zhentao.osspicture.OssUtil;
  7. import com.zhentao.tool.TokenUtils;
  8. import com.zhentao.user.domain.UserLogin;
  9. import com.zhentao.user.dto.*;
  10. import com.zhentao.user.service.UserLoginService;
  11. import com.zhentao.vo.Result;
  12. import lombok.RequiredArgsConstructor;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.validation.annotation.Validated;
  16. import org.springframework.web.bind.annotation.*;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import javax.validation.Valid;
  19. import javax.validation.constraints.NotNull;
  20. import java.io.IOException;
  21. import java.util.HashMap;
  22. import java.util.Map;
  23. import java.util.UUID;
  24. @RestController
  25. @RequestMapping("user")
  26. @RequiredArgsConstructor
  27. @Validated
  28. public class UserController {
  29. @Autowired
  30. public UserLoginService userLoginService;
  31. @Autowired
  32. public OssUtil ossUtil;
  33. //注册
  34. @PostMapping("/register")
  35. @NullLogin
  36. public Result Register(@RequestBody @Valid UserRegister userRegister){
  37. return userLoginService.register(userRegister);
  38. }
  39. //验证码
  40. @PostMapping("/code")
  41. @NullLogin
  42. public Result code(@RequestBody @Valid NoteDto noteDto) {
  43. // System.err.println(noteDto);
  44. return userLoginService.note(noteDto);
  45. }
  46. //手机号登录
  47. @PostMapping("/login")
  48. @NullLogin
  49. public Result login(@RequestBody @Valid UserLoginDto userLoginDto) {
  50. return userLoginService.login(userLoginDto);
  51. }
  52. //账号和密码进行登录
  53. @PostMapping("/UserPassLogin")
  54. @NullLogin
  55. public Result UserPassLogin(@RequestBody @Valid UserPassDto userPassDto) {
  56. return userLoginService.UserPassLogin(userPassDto);
  57. }
  58. // 忘记密码
  59. @PostMapping("/ForgetPass")
  60. @NullLogin
  61. public Result ForgetPass(@RequestBody @Valid ForgetPassDto forgetPassDto) {
  62. return userLoginService.ForgetPass(forgetPassDto);
  63. }
  64. /**
  65. * 上传头像
  66. */
  67. @PostMapping("/upload-avatar")
  68. @NullLogin
  69. public Map<String, Object> uploadAvatar(@NotNull(message = "请选择上传文件")
  70. @RequestParam("file") MultipartFile file) {
  71. Map<String, Object> result = new HashMap<>();
  72. try {
  73. // 上传到OSS
  74. String url = ossUtil.uploadFile(file);
  75. // TODO: 保存URL到数据库
  76. // userService.updateAvatar(userId, url);
  77. result.put("success", true);
  78. result.put("message", "上传成功");
  79. result.put("url", url);
  80. } catch (IOException e) {
  81. result.put("success", false);
  82. result.put("message", "上传失败: " + e.getMessage());
  83. }
  84. return result;
  85. }
  86. //根据ID查询用户的信息
  87. @GetMapping("getUserById")
  88. @NullLogin
  89. public Result getUserById(@RequestHeader("token") String token) {
  90. String userIdFromToken = TokenUtils.getUserIdFromToken(token);
  91. UserLogin userById = userLoginService.getUserById(Long.valueOf(userIdFromToken));
  92. System.err.println(userById);
  93. return Result.OK(userById, "查询成功");
  94. }
  95. //查询好有-搜索
  96. @GetMapping("searchFriends")
  97. @NullLogin
  98. public Result searchFriends(@RequestParam("keyword") String keyword) {
  99. return Result.OK(userLoginService.searchFriends(keyword), "查询成功");
  100. }
  101. }