From 4a39ca48ee1dea7a7529904e644ce1d4e55ef3fb Mon Sep 17 00:00:00 2001 From: ivmiku <124345843+ivmiku@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:45:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tutorial/controller/UserController.java | 24 ++++++++------- .../com/ivmiku/tutorial/entity/UserDTO.java | 12 ++++++++ .../ivmiku/tutorial/service/UserService.java | 29 +++++++++++++++++++ 3 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 user-8072/src/main/java/com/ivmiku/tutorial/entity/UserDTO.java diff --git a/user-8072/src/main/java/com/ivmiku/tutorial/controller/UserController.java b/user-8072/src/main/java/com/ivmiku/tutorial/controller/UserController.java index 712db1f..eb6dc6f 100644 --- a/user-8072/src/main/java/com/ivmiku/tutorial/controller/UserController.java +++ b/user-8072/src/main/java/com/ivmiku/tutorial/controller/UserController.java @@ -2,21 +2,19 @@ package com.ivmiku.tutorial.controller; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; -import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; import cn.binarywang.wx.miniapp.util.WxMaConfigHolder; import cn.dev33.satoken.stp.StpUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson2.JSON; import com.ivmiku.tutorial.entity.User; +import com.ivmiku.tutorial.entity.UserDTO; import com.ivmiku.tutorial.mapper.UserMapper; import com.ivmiku.tutorial.response.Result; +import com.ivmiku.tutorial.service.UserService; import com.ivmiku.tutorial.utils.RedisUtil; import jakarta.annotation.Resource; import me.chanjar.weixin.common.error.WxErrorException; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.HashMap; @@ -32,17 +30,16 @@ public class UserController { @Resource private RedisUtil redisUtil; + @Resource + private UserService userService; + @GetMapping("/login") public Object login(@RequestParam(name = "code") String code, @RequestParam(name = "rawdata") String rawData, - @RequestParam(name = "signature") String signature, - @RequestParam(name = "encryptedData") String encryptedData, - @RequestParam(name = "iv") String iv) { + @RequestParam(name = "signature") String signature) { WxMaJscode2SessionResult session; - WxMaUserInfo userInfo; try { session = wxMaService.getUserService().getSessionInfo(code); - userInfo = wxMaService.getUserService().getUserInfo(session.getSessionKey(), encryptedData, iv); } catch (WxErrorException e) { return JSON.toJSON(Result.error(e.getMessage())); } @@ -77,4 +74,11 @@ public class UserController { } return Result.ok(); } + + @PostMapping("/edit") + public Object editInfo(@RequestBody UserDTO userDTO) { + String loginId = (String) StpUtil.getLoginId(); + userService.changeUserInfo(userDTO, loginId); + return Result.ok(); + } } diff --git a/user-8072/src/main/java/com/ivmiku/tutorial/entity/UserDTO.java b/user-8072/src/main/java/com/ivmiku/tutorial/entity/UserDTO.java new file mode 100644 index 0000000..fb0b383 --- /dev/null +++ b/user-8072/src/main/java/com/ivmiku/tutorial/entity/UserDTO.java @@ -0,0 +1,12 @@ +package com.ivmiku.tutorial.entity; + +import lombok.Data; + +@Data +public class UserDTO { + private String nickname; + private String avatarUrl; + private String phoneNum; + private String birthday; + private String gender; +} diff --git a/user-8072/src/main/java/com/ivmiku/tutorial/service/UserService.java b/user-8072/src/main/java/com/ivmiku/tutorial/service/UserService.java index 86c6c77..42098bc 100644 --- a/user-8072/src/main/java/com/ivmiku/tutorial/service/UserService.java +++ b/user-8072/src/main/java/com/ivmiku/tutorial/service/UserService.java @@ -1,6 +1,9 @@ package com.ivmiku.tutorial.service; +import cn.hutool.core.util.DesensitizedUtil; +import cn.hutool.crypto.SecureUtil; import com.ivmiku.tutorial.entity.User; +import com.ivmiku.tutorial.entity.UserDTO; import com.ivmiku.tutorial.mapper.UserMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -13,4 +16,30 @@ public class UserService { public User selectUserById(String id) { return userMapper.selectById(id); } + + public void changeUserInfo(UserDTO userDTO, String openid) { + String nickname = userDTO.getNickname(); + String avatarUrl = userDTO.getAvatarUrl(); + String gender = userDTO.getGender(); + String phoneNum = userDTO.getPhoneNum(); + String birthday = userDTO.getBirthday(); + User user = userMapper.selectById(openid); + if (nickname != null) { + user.setNickname(nickname); + } + if (avatarUrl != null) { + user.setAvatarUrl(avatarUrl); + } + if (gender != null) { + user.setGender(gender); + } + if (phoneNum != null) { + phoneNum = DesensitizedUtil.mobilePhone(phoneNum); + user.setPhoneNum(phoneNum); + } + if (birthday != null) { + user.setBirthday(birthday); + } + userMapper.updateById(user); + } }