diff --git a/src/main/java/xuan/controller/UserController.java b/src/main/java/xuan/controller/UserController.java index 8f7ccee..702ae75 100644 --- a/src/main/java/xuan/controller/UserController.java +++ b/src/main/java/xuan/controller/UserController.java @@ -156,6 +156,54 @@ public class UserController { return result; } + @PostMapping("/updateUsername") + public Map updateUsername(@RequestBody Map params) { + Map result = new HashMap<>(); + try { + String userId = params.get("userId").toString(); + String username = params.get("username").toString(); + + UserInfo user = userInfoService.updateUsername(userId, username); + if (user != null) { + Map data = new HashMap<>(); + data.put("username", user.getUsername()); + result.put("success", true); + result.put("data", data); + } else { + result.put("success", false); + result.put("error", "用户不存在"); + } + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + + @PostMapping("/updateAvatar") + public Map updateAvatar(@RequestBody Map params) { + Map result = new HashMap<>(); + try { + String userId = params.get("userId").toString(); + String avatarUrl = params.get("avatarUrl").toString(); + + UserInfo user = userInfoService.updateAvatarUrl(userId, avatarUrl); + if (user != null) { + Map data = new HashMap<>(); + data.put("avatarUrl", user.getAvatarUrl()); + result.put("success", true); + result.put("data", data); + } else { + result.put("success", false); + result.put("error", "用户不存在"); + } + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } + @PostMapping("/permissionLog") public Map addPermissionLog(@RequestBody Map params) { Map result = new HashMap<>(); diff --git a/src/main/java/xuan/service/UserInfoService.java b/src/main/java/xuan/service/UserInfoService.java index 601c068..2f53ce5 100644 --- a/src/main/java/xuan/service/UserInfoService.java +++ b/src/main/java/xuan/service/UserInfoService.java @@ -63,6 +63,24 @@ public class UserInfoService { return null; } + public UserInfo updateUsername(String userId, String username) { + UserInfo user = userInfoRepository.findByUserId(userId); + if (user != null) { + user.setUsername(username); + return userInfoRepository.save(user); + } + return null; + } + + public UserInfo updateAvatarUrl(String userId, String avatarUrl) { + UserInfo user = userInfoRepository.findByUserId(userId); + if (user != null) { + user.setAvatarUrl(avatarUrl); + return userInfoRepository.save(user); + } + return null; + } + private String generateUsername() { String prefix = "玄机用户"; String suffix = generateRandomString(6); diff --git a/xuan-deduct-uniapp/src/pages/mine/mine.vue b/xuan-deduct-uniapp/src/pages/mine/mine.vue index ccb7145..3f9767c 100644 --- a/xuan-deduct-uniapp/src/pages/mine/mine.vue +++ b/xuan-deduct-uniapp/src/pages/mine/mine.vue @@ -173,14 +173,31 @@ export default { editable: true, placeholderText: '请输入用户名', content: this.username, - success: (res) => { + success: async (res) => { if (res.confirm && res.content) { - this.username = res.content - uni.setStorageSync('username', res.content) - uni.showToast({ - title: '修改成功', - icon: 'success' - }) + try { + await api.userApi.updateUsername(this.userId, res.content) + this.username = res.content + uni.setStorageSync('username', res.content) + + const userInfoStr = uni.getStorageSync('userInfo') + if (userInfoStr) { + const userInfo = JSON.parse(userInfoStr) + userInfo.username = res.content + uni.setStorageSync('userInfo', JSON.stringify(userInfo)) + } + + uni.showToast({ + title: '修改成功', + icon: 'success' + }) + } catch (e) { + console.error('修改用户名失败:', e) + uni.showToast({ + title: '修改失败:' + (e.message || '未知错误'), + icon: 'none' + }) + } } } }) diff --git a/xuan-deduct-uniapp/src/utils/api.js b/xuan-deduct-uniapp/src/utils/api.js index ce09d5c..4cb6527 100644 --- a/xuan-deduct-uniapp/src/utils/api.js +++ b/xuan-deduct-uniapp/src/utils/api.js @@ -369,10 +369,24 @@ const userApi = { }, updatePhone: (userId, phone) => { return request({ - url: '/user/phone', + url: '/user/updatePhone', method: 'POST', data: { userId: userId, phone: phone } }) + }, + updateUsername: (userId, username) => { + return request({ + url: '/user/updateUsername', + method: 'POST', + data: { userId: userId, username: username } + }) + }, + updateAvatar: (userId, avatarUrl) => { + return request({ + url: '/user/updateAvatar', + method: 'POST', + data: { userId: userId, avatarUrl: avatarUrl } + }) } }