123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- package com.zhentao.user.controller;
- 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.servlet.http.HttpServletRequest;
- import javax.validation.Valid;
- import javax.validation.constraints.NotNull;
- import javax.validation.constraints.Null;
- 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 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("/validateCode")
- @NullLogin
- public Result validateCode(@RequestBody @Valid NoteDto noteDto) {
- // System.err.println(noteDto);
- return userLoginService.validateCode(noteDto);
- }
- @PostMapping("/validateEmailCode")
- @NullLogin
- public Result validateEmailCode(@RequestBody @Valid EmailDto emailDto) {
- // System.err.println(noteDto);
- return userLoginService.validateEmailCode(emailDto);
- }
- //账号和密码进行登录
- @PostMapping("/UserPassLogin")
- @NullLogin
- public Result UserPassLogin(@RequestBody @Valid UserPassDto userPassDto) {
- Result result = userLoginService.UserPassLogin(userPassDto);
- return result;
- }
- @PostMapping("/logout")
- public Result logout(HttpServletRequest request){
- return userLoginService.logout(request);
- }
- // 忘记密码
- @PostMapping("/ForgetPass")
- @NullLogin
- public Result ForgetPass(@RequestBody @Valid ForgetPassDto forgetPassDto) {
- return userLoginService.ForgetPass(forgetPassDto);
- }
- @PostMapping("/emailRegister")
- @NullLogin
- public Result emailRegister(@RequestBody @Valid EmailDto emailDto){
- return userLoginService.emailRegister(emailDto);
- }
- /**
- * 上传头像
- */
- @PostMapping("/upload-avatar")
- @NullLogin
- @CrossOrigin // 添加跨域支持
- public Map<String, Object> uploadAvatar(@NotNull(message = "请选择上传文件")
- @RequestParam("file") MultipartFile file) {
- System.out.println("接收到文件上传请求:" + file.getOriginalFilename());
- Map<String, Object> result = new HashMap<>();
- // 检查文件大小
- if (file.isEmpty()) {
- System.err.println("上传文件为空");
- result.put("success", false);
- result.put("message", "上传文件不能为空");
- return result;
- }
- // 检查文件大小(例如限制在5MB)
- long maxSize = 5 * 1024 * 1024; // 5MB
- if (file.getSize() > maxSize) {
- System.err.println("文件大小超过限制:" + file.getSize());
- result.put("success", false);
- result.put("message", "文件大小不能超过5MB");
- return result;
- }
- // 检查文件类型
- String originalFilename = file.getOriginalFilename();
- String fileExtension = originalFilename.substring(originalFilename.lastIndexOf(".") + 1).toLowerCase();
- String[] allowedExtensions = {"jpg", "jpeg", "png", "gif", "bmp"};
- boolean isAllowedExtension = false;
- for (String ext : allowedExtensions) {
- if (fileExtension.equals(ext)) {
- isAllowedExtension = true;
- break;
- }
- }
- if (!isAllowedExtension) {
- System.err.println("不支持的文件类型:" + fileExtension);
- result.put("success", false);
- result.put("message", "仅支持jpg, jpeg, png, gif, bmp格式的图片");
- return result;
- }
- try {
- // 上传到OSS
- String url = ossUtil.uploadFile(file);
- if (url == null) {
- System.err.println("文件上传到OSS失败");
- result.put("success", false);
- result.put("message", "文件上传失败,请稍后重试");
- } else {
- System.out.println("文件上传成功:" + url);
- result.put("success", true);
- result.put("message", "上传成功");
- result.put("url", url);
- }
- } catch (IOException e) {
- System.err.println("文件上传异常:" + e.getMessage());
- 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));
- return Result.OK(userById, "查询成功");
- }
- @PostMapping("getUser")
- @NullLogin
- public Result getUser(@RequestBody UserInfo userInfo) {
- System.err.println(userInfo);
- UserLogin byId = userLoginService.getById(userInfo.getUserId());
- return Result.OK(byId, "查询成功");
- }
- //查询好有-搜索
- @GetMapping("searchFriends")
- @NullLogin
- public Result searchFriends(@RequestParam("keyword") String keyword) {
- return Result.OK(userLoginService.searchFriends(keyword), "查询成功");
- }
- // 修改头像
- @PostMapping("updateUserInfo")
- @NullLogin
- public Result updateUserInfo(@RequestHeader("token") String token, @RequestBody Userinfox userinfox) {
- // 从 token 中获取当前登录用户的 ID
- String userIdFromToken = TokenUtils.getUserIdFromToken(token);
- userinfox.setId(Long.valueOf(userIdFromToken));
- return userLoginService.updateUserInfo(userinfox);
- }
- }
|