diff --git a/src/main/java/xuan/controller/UserController.java b/src/main/java/xuan/controller/UserController.java index 31f1155..851b8dc 100644 --- a/src/main/java/xuan/controller/UserController.java +++ b/src/main/java/xuan/controller/UserController.java @@ -245,4 +245,25 @@ public class UserController { } return result; } + + @PostMapping("/deleteAccount") + public Map deleteAccount(@RequestBody Map params) { + Map result = new HashMap<>(); + try { + String userId = params.get("userId").toString(); + + boolean deleted = userInfoService.deleteAccount(userId); + if (deleted) { + result.put("success", true); + result.put("message", "账号已注销"); + } else { + result.put("success", false); + result.put("error", "用户不存在"); + } + } catch (Exception e) { + result.put("success", false); + result.put("error", e.getMessage()); + } + return result; + } } diff --git a/src/main/java/xuan/service/UserInfoService.java b/src/main/java/xuan/service/UserInfoService.java index f667861..71038e2 100644 --- a/src/main/java/xuan/service/UserInfoService.java +++ b/src/main/java/xuan/service/UserInfoService.java @@ -16,7 +16,9 @@ public class UserInfoService { public UserInfo loginOrRegister(String openId, String nickname, String avatarUrl) { UserInfo user = userInfoRepository.findByOpenId(openId); if (user != null) { - return user; + user.setNickname(nickname); + user.setAvatarUrl(avatarUrl); + return userInfoRepository.save(user); } user = new UserInfo(); @@ -26,7 +28,7 @@ public class UserInfoService { user.setUsername(generateUsername()); user.setUserId(generateUserId()); user.setVipLevel(0); - user.setCoins(10); + user.setCoins(3); user.setStreakDays(0); return userInfoRepository.save(user); @@ -108,6 +110,15 @@ public class UserInfoService { return null; } + public boolean deleteAccount(String userId) { + UserInfo user = userInfoRepository.findByUserId(userId); + if (user != null) { + userInfoRepository.delete(user); + return true; + } + return false; + } + private String generateUsername() { String prefix = "玄机用户"; String suffix = generateRandomString(6); diff --git a/xuan-deduct-uniapp/src/App.vue b/xuan-deduct-uniapp/src/App.vue index aff7a6a..e758b8b 100644 --- a/xuan-deduct-uniapp/src/App.vue +++ b/xuan-deduct-uniapp/src/App.vue @@ -1,21 +1,11 @@ - - diff --git a/xuan-deduct-uniapp/src/pages/index/index.vue b/xuan-deduct-uniapp/src/pages/index/index.vue index ce86211..9d73a86 100644 --- a/xuan-deduct-uniapp/src/pages/index/index.vue +++ b/xuan-deduct-uniapp/src/pages/index/index.vue @@ -155,21 +155,66 @@ + +