package com.zhentao.user.controller; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.PutObjectRequest; import com.zhentao.config.NullLogin; import com.zhentao.osspicture.OssUtil; import com.zhentao.tool.TokenUtils; import com.zhentao.user.domain.UserLogin; import com.zhentao.user.dto.*; import com.zhentao.user.service.UserLoginService; import com.zhentao.vo.Result; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.UUID; @RestController @RequestMapping("user") @RequiredArgsConstructor @Validated public class UserController { @Autowired public UserLoginService userLoginService; @Autowired public OssUtil ossUtil; //注册 @PostMapping("/register") @NullLogin public Result Register(@RequestBody @Valid UserRegister userRegister){ return userLoginService.register(userRegister); } //验证码 @PostMapping("/code") @NullLogin public Result code(@RequestBody @Valid NoteDto noteDto) { // System.err.println(noteDto); return userLoginService.note(noteDto); } //手机号登录 @PostMapping("/login") @NullLogin public Result login(@RequestBody @Valid UserLoginDto userLoginDto) { return userLoginService.login(userLoginDto); } //账号和密码进行登录 @PostMapping("/UserPassLogin") @NullLogin public Result UserPassLogin(@RequestBody @Valid UserPassDto userPassDto) { return userLoginService.UserPassLogin(userPassDto); } // 忘记密码 @PostMapping("/ForgetPass") @NullLogin public Result ForgetPass(@RequestBody @Valid ForgetPassDto forgetPassDto) { return userLoginService.ForgetPass(forgetPassDto); } /** * 上传头像 */ @PostMapping("/upload-avatar") @NullLogin public Map uploadAvatar(@NotNull(message = "请选择上传文件") @RequestParam("file") MultipartFile file) { Map result = new HashMap<>(); try { // 上传到OSS String url = ossUtil.uploadFile(file); // TODO: 保存URL到数据库 // userService.updateAvatar(userId, url); result.put("success", true); result.put("message", "上传成功"); result.put("url", url); } catch (IOException e) { result.put("success", false); result.put("message", "上传失败: " + e.getMessage()); } return result; } //根据ID查询用户的信息 @GetMapping("getUserById") @NullLogin public Result getUserById(@RequestHeader("token") String token) { String userIdFromToken = TokenUtils.getUserIdFromToken(token); UserLogin userById = userLoginService.getUserById(Long.valueOf(userIdFromToken)); System.err.println(userById); return Result.OK(userById, "查询成功"); } //查询好有-搜索 @GetMapping("searchFriends") @NullLogin public Result searchFriends(@RequestParam("keyword") String keyword) { return Result.OK(userLoginService.searchFriends(keyword), "查询成功"); } }