From cd0abad22583c2e518eb4853f5e9118f702c96ea Mon Sep 17 00:00:00 2001 From: KilLze Date: Mon, 29 Dec 2025 11:59:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bao/dating/controller/UserController.java | 14 ++++++++ .../com/bao/dating/mapper/UserMapper.java | 10 +++++- .../dating/pojo/dto/UserInfoUpdateDTO.java | 20 ++++++++++++ .../java/com/bao/dating/pojo/entity/User.java | 3 +- .../com/bao/dating/pojo/vo/UserInfoVO.java | 2 +- .../com/bao/dating/service/UserService.java | 7 ++++ .../dating/service/impl/UserServiceImpl.java | 32 +++++++++++++++++++ .../com/bao/dating/mapper/UserMapper.xml | 29 +++++++++++++++++ 8 files changed, 114 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/bao/dating/pojo/dto/UserInfoUpdateDTO.java diff --git a/src/main/java/com/bao/dating/controller/UserController.java b/src/main/java/com/bao/dating/controller/UserController.java index d530366..355f8b7 100644 --- a/src/main/java/com/bao/dating/controller/UserController.java +++ b/src/main/java/com/bao/dating/controller/UserController.java @@ -3,6 +3,7 @@ package com.bao.dating.controller; import com.bao.dating.common.Result; import com.bao.dating.common.ResultCode; import com.bao.dating.context.UserContext; +import com.bao.dating.pojo.dto.UserInfoUpdateDTO; import com.bao.dating.pojo.dto.UserLoginDTO; import com.bao.dating.pojo.entity.User; import com.bao.dating.pojo.vo.UserInfoVO; @@ -63,4 +64,17 @@ public class UserController { String fileUrl = userService.uploadBackground(file); return Result.success(ResultCode.SUCCESS_REVIEW, "背景上传成功", fileUrl); } + + /** + * 更新用户信息 + * @param userInfoUpdateDTO 用户信息更新参数 + * @return 更新后的用户信息 + */ + @PostMapping("/info/update") + public Result userInfoUpdate(@RequestBody UserInfoUpdateDTO userInfoUpdateDTO) { + Long userId = UserContext.getUserId(); + userInfoUpdateDTO.setUserId(userId); + UserInfoVO userInfoVO = userService.updateUserInfo(userInfoUpdateDTO); + return Result.success(ResultCode.SUCCESS_REVIEW, "用户信息更新成功", userInfoVO); + } } diff --git a/src/main/java/com/bao/dating/mapper/UserMapper.java b/src/main/java/com/bao/dating/mapper/UserMapper.java index 1e28552..8326914 100644 --- a/src/main/java/com/bao/dating/mapper/UserMapper.java +++ b/src/main/java/com/bao/dating/mapper/UserMapper.java @@ -1,8 +1,9 @@ package com.bao.dating.mapper; +import com.bao.dating.pojo.dto.UserInfoUpdateDTO; +import com.bao.dating.pojo.entity.Post; import com.bao.dating.pojo.entity.User; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; @Mapper public interface UserMapper { @@ -22,4 +23,11 @@ public interface UserMapper { * @return 用户 */ User selectByUserId(Long userid); + + /** + * 更新用户信息 + * @param userInfoUpdateDTO + */ + void updateUserInfoByUserId(UserInfoUpdateDTO userInfoUpdateDTO); + } diff --git a/src/main/java/com/bao/dating/pojo/dto/UserInfoUpdateDTO.java b/src/main/java/com/bao/dating/pojo/dto/UserInfoUpdateDTO.java new file mode 100644 index 0000000..79df035 --- /dev/null +++ b/src/main/java/com/bao/dating/pojo/dto/UserInfoUpdateDTO.java @@ -0,0 +1,20 @@ +package com.bao.dating.pojo.dto; + +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class UserInfoUpdateDTO { + private Long userId; + private String nickname; + private String avatarUrl; + private String backgroundUrl; + private Integer gender; + private LocalDate birthday; + private List hobbies; + private String signature; + private LocalDateTime updatedAt; +} diff --git a/src/main/java/com/bao/dating/pojo/entity/User.java b/src/main/java/com/bao/dating/pojo/entity/User.java index db16def..e668af5 100644 --- a/src/main/java/com/bao/dating/pojo/entity/User.java +++ b/src/main/java/com/bao/dating/pojo/entity/User.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; /** * 用户表 @@ -31,7 +32,7 @@ public class User implements Serializable { private LocalDate birthday; - private String hobbies; + private List hobbies; private String signature; diff --git a/src/main/java/com/bao/dating/pojo/vo/UserInfoVO.java b/src/main/java/com/bao/dating/pojo/vo/UserInfoVO.java index 83fd640..8be5be1 100644 --- a/src/main/java/com/bao/dating/pojo/vo/UserInfoVO.java +++ b/src/main/java/com/bao/dating/pojo/vo/UserInfoVO.java @@ -19,6 +19,6 @@ public class UserInfoVO { private LocalDate birthday; private List hobbies; private String signature; - private LocalDateTime createdAt; private LocalDateTime updatedAt; + private LocalDateTime createdAt; } diff --git a/src/main/java/com/bao/dating/service/UserService.java b/src/main/java/com/bao/dating/service/UserService.java index ab5ed64..0eb9218 100644 --- a/src/main/java/com/bao/dating/service/UserService.java +++ b/src/main/java/com/bao/dating/service/UserService.java @@ -1,5 +1,6 @@ package com.bao.dating.service; +import com.bao.dating.pojo.dto.UserInfoUpdateDTO; import com.bao.dating.pojo.dto.UserLoginDTO; import com.bao.dating.pojo.vo.PostEditVO; import com.bao.dating.pojo.vo.UserInfoVO; @@ -35,4 +36,10 @@ public interface UserService { * @return 上传后的文件URL列表 */ String uploadBackground(MultipartFile file); + + /** + * 更新用户信息 + * @param userInfoUpdateDTO 用户信息 + */ + UserInfoVO updateUserInfo(UserInfoUpdateDTO userInfoUpdateDTO); } diff --git a/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java b/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java index 3aac7da..1481799 100644 --- a/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java +++ b/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java @@ -1,10 +1,14 @@ package com.bao.dating.service.impl; import com.bao.dating.common.aliyun.AliOssUtil; +import com.bao.dating.common.aliyun.GreenImageScan; +import com.bao.dating.common.aliyun.GreenTextScan; import com.bao.dating.context.UserContext; import com.bao.dating.mapper.UserMapper; +import com.bao.dating.pojo.dto.UserInfoUpdateDTO; import com.bao.dating.pojo.dto.UserLoginDTO; import com.bao.dating.pojo.entity.User; +import com.bao.dating.pojo.vo.PostEditVO; import com.bao.dating.pojo.vo.UserInfoVO; import com.bao.dating.pojo.vo.UserLoginVO; import com.bao.dating.service.UserService; @@ -14,11 +18,14 @@ import com.bao.dating.util.MD5Util; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Map; import java.util.UUID; @Service @@ -27,6 +34,12 @@ public class UserServiceImpl implements UserService { @Autowired private AliOssUtil ossUtil; + @Autowired + private GreenTextScan greenTextScan; + + @Autowired + private GreenImageScan greenImageScan; + @Autowired private UserMapper userMapper; @@ -157,4 +170,23 @@ public class UserServiceImpl implements UserService { throw new RuntimeException("上传图片失败", e); } } + + @Override + public UserInfoVO updateUserInfo(UserInfoUpdateDTO userInfoUpdateDTO) { + Long userId = userInfoUpdateDTO.getUserId(); + User user = userMapper.selectByUserId(userId); + if (user == null){ + throw new RuntimeException("用户不存在"); + } + + userInfoUpdateDTO.setUpdatedAt(LocalDateTime.now()); + + // 更新数据库 + userMapper.updateUserInfoByUserId(userInfoUpdateDTO); + + // 返回动态详情 + UserInfoVO userInfoVO = new UserInfoVO(); + BeanUtils.copyProperties(user, userInfoVO); + return userInfoVO; + } } diff --git a/src/main/resources/com/bao/dating/mapper/UserMapper.xml b/src/main/resources/com/bao/dating/mapper/UserMapper.xml index 6d6343a..fdcbcb4 100644 --- a/src/main/resources/com/bao/dating/mapper/UserMapper.xml +++ b/src/main/resources/com/bao/dating/mapper/UserMapper.xml @@ -43,4 +43,33 @@ FROM user WHERE user_id = #{userId} + + + UPDATE user + + + nickname = #{nickname}, + + + avatar_url = #{avatarUrl}, + + + background_url = #{backgroundUrl}, + + + gender = #{gender}, + + + birthday = #{birthday}, + + + hobbies = #{hobbies}, + + + signature = #{signature}, + + updated_at = #{updatedAt} + + WHERE user_id = #{userId} + \ No newline at end of file