From 69a9a663e1adde509f316f8c65522c094debba0a Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Fri, 19 Sep 2025 14:17:09 +0800
Subject: [PATCH] 重置账号

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java |   43 ++++++++++++++
 trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java   |   96 ++++++++++++++++++++++---------
 trading-order-service/src/main/java/com/yami/trading/service/user/UserService.java       |    3 +
 3 files changed, 114 insertions(+), 28 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
index 22d3a3b..377701a 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java
@@ -211,6 +211,49 @@
     }
 
     /**
+     * 重置登录账号
+     */
+    @RequestMapping("resetUserName")
+    public Object resetUserName(String username, String password, String safeword, String verifcode, String type) {
+        String userId = SecurityUtils.getUser().getUserId();
+        if (StringUtils.isEmptyString(userId)) {
+            throw new YamiShopBindException("请先登录");
+        }
+        // 重置类型:1/手机;2/邮箱;
+        String error = this.validateParam(username, verifcode, password, type);
+        if (!StringUtils.isNullOrEmpty(error)) {
+            throw new YamiShopBindException(error);
+        }
+        if (StringUtils.isEmptyString(safeword)) {
+            throw new YamiShopBindException("资金密码不能为空");
+        }
+        userService.resetUserName(userId ,username, password, safeword, verifcode, type);
+
+        User secUser = userService.findByUserName(username);
+        Log log = new Log();
+        log.setCategory(Constants.LOG_CATEGORY_SECURITY);
+        log.setLog("用户重置登录账号,ip[" + IPHelper.getIpAddr() + "]");
+        log.setUserId(secUser.getUserId());
+        log.setUsername(username);
+        logService.save(log);
+        UserInfoInTokenBO userInfoInToken = new UserInfoInTokenBO();
+        userInfoInToken.setUserId(secUser.getUserId());
+        userInfoInToken.setSysType(SysTypeEnum.ORDINARY.value());
+        userInfoInToken.setEnabled(secUser.getStatus() == 1);
+        tokenStore.deleteAllToken(String.valueOf(SysTypeEnum.ORDINARY.value()), String.valueOf(secUser.getUserId()));
+        TokenInfoVO tokenInfoVO = tokenStore.storeAndGetVo(userInfoInToken);
+        this.userService.online(secUser.getUserId());
+        this.ipMenuService.saveIpMenuWhite(IPHelper.getIpAddr());
+        Map<String, Object> data = new HashMap<String, Object>();
+        data.put("token", tokenInfoVO.getAccessToken());
+        data.put("username", secUser.getUserName());
+        data.put("usercode", secUser.getUserName());
+        secUser.setUserLastip(IPHelper.getIpAddr());
+        userService.updateById(secUser);
+        return Result.succeed(data);
+    }
+
+    /**
      * 设置资金密码(注册时)
      */
     @PostMapping("/setSafewordReg")
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java
index cf6adcb..0729726 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java
@@ -82,14 +82,14 @@
     }
 
     @Override
-    public Page<UserDto> listUser(Page page, List<String> roleNames, String userCode, String userName,List<String> checkedList) {
-        return baseMapper.listUser(page, roleNames, userCode, userName,checkedList);
+    public Page<UserDto> listUser(Page page, List<String> roleNames, String userCode, String userName, List<String> checkedList) {
+        return baseMapper.listUser(page, roleNames, userCode, userName, checkedList);
     }
 
     @Override
-    public Page<UserDataDto> listUserAndRecom(Page page, List<String> roleNames, String userCode, String userName, String lastIp,List<String> checkedList) {
+    public Page<UserDataDto> listUserAndRecom(Page page, List<String> roleNames, String userCode, String userName, String lastIp, List<String> checkedList) {
         return baseMapper.listUserAndRecom(page, roleNames, userCode,
-                userName, lastIp,checkedList);
+                userName, lastIp, checkedList);
     }
 
     @Override
@@ -164,12 +164,12 @@
         Page<AgentUserDto> page = new Page(current, size);
         List children = null;
         if (!StringUtils.isNullOrEmpty(targetPartyId)) {
-            children=userRecomService.findRecomsToPartyId(targetPartyId);
+            children = userRecomService.findRecomsToPartyId(targetPartyId);
             if (children.size() == 0) {
                 return new Page();
             }
         }
-            baseMapper.getAgentAllStatistics(page, userName,children);
+        baseMapper.getAgentAllStatistics(page, userName, children);
         /**
          * 页面查询第一层partyId级
          */
@@ -511,7 +511,7 @@
         User party_reco = findUserByUserCode(recoUserCode);
 //		用户注册是否需要推荐码
         if ("true".equals(sysparaService.find("register_need_usercode").getSvalue())) {
-            if (StringUtils.isNotEmpty(recoUserCode)){
+            if (StringUtils.isNotEmpty(recoUserCode)) {
                 if (party_reco == null) {
                     throw new YamiShopBindException("请输入正确的推荐码");
                 }
@@ -589,7 +589,7 @@
                     throw new YamiShopBindException("操作失败!修正后账户余额小于0。");
                 }
                 walletService.update(wallet.getUserId().toString(), gift_sum);
-                userDataService.saveGiftMoneyHandle(wallet.getUserId(),gift_sum);
+                userDataService.saveGiftMoneyHandle(wallet.getUserId(), gift_sum);
 
                 /*
                  * 保存账变日志
@@ -739,7 +739,7 @@
                     throw new YamiShopBindException("操作失败!修正后账户余额小于0。");
                 }
                 this.walletService.update(wallet.getUserId().toString(), gift_sum);
-                userDataService.saveGiftMoneyHandle(wallet.getUserId(),gift_sum);
+                userDataService.saveGiftMoneyHandle(wallet.getUserId(), gift_sum);
 
                 // 保存账变日志
 //                MoneyLog moneyLog = new MoneyLog();
@@ -847,23 +847,23 @@
         //推荐人
         if (StrUtil.isNotBlank(userCode)) {
 //            if ("true".equals(this.sysparaService.find("register_need_usercode").getSvalue())) {
-                if (null == recomUser) {
-                    throw new YamiShopBindException("推荐码不正确");
-                }
-                if (UserConstants.SECURITY_ROLE_TEST.equals(recomUser.getRoleName())) {
-                    throw new YamiShopBindException("推荐人无权限推荐");
-                }
-                if (recomUser.getStatus() == 0) {
-                    throw new YamiShopBindException("推荐人无权限推荐");
-                }
-                UserRecom userRecom = new UserRecom();
-                userRecom.setUserId(recomUser.getUserId());
-                // 父类partyId
-                userRecom.setRecomUserId(user.getUserId());
-                userRecomService.save(userRecom);
-                user.setUserRecom(recomUser.getUserId());
-                updateById(user);
-           // }
+            if (null == recomUser) {
+                throw new YamiShopBindException("推荐码不正确");
+            }
+            if (UserConstants.SECURITY_ROLE_TEST.equals(recomUser.getRoleName())) {
+                throw new YamiShopBindException("推荐人无权限推荐");
+            }
+            if (recomUser.getStatus() == 0) {
+                throw new YamiShopBindException("推荐人无权限推荐");
+            }
+            UserRecom userRecom = new UserRecom();
+            userRecom.setUserId(recomUser.getUserId());
+            // 父类partyId
+            userRecom.setRecomUserId(user.getUserId());
+            userRecomService.save(userRecom);
+            user.setUserRecom(recomUser.getUserId());
+            updateById(user);
+            // }
         }
         return user;
     }
@@ -1234,7 +1234,7 @@
 
             recomUser = findUserByUserCode(userCode);
             if ("true".equals(this.sysparaService.find("register_need_usercode").getSvalue())) {
-                if (StrUtil.isEmpty(userCode)){
+                if (StrUtil.isEmpty(userCode)) {
                     throw new YamiShopBindException("请输入推荐码");
                 }
                 if (null == recomUser) {
@@ -1376,7 +1376,7 @@
                 if (Arith.add(gift_sum, walletExtend.getMoney().doubleValue()) < 0.0D) {
                     throw new YamiShopBindException("操作失败!修正后账户余额小于0。");
                 }
-                userDataService.saveGiftMoneyHandle(user.getUserId(),gift_sum);
+                userDataService.saveGiftMoneyHandle(user.getUserId(), gift_sum);
                 this.walletService.update(wallet.getUserId(), gift_sum);
                 // 保存账变日志
 //                MoneyLog moneyLog = new MoneyLog();
@@ -1542,4 +1542,44 @@
         }
         return userLevel;
     }
+
+    @Override
+    public void resetUserName(String userId, String username, String password, String safeword, String verifcode, String type) {
+        User party = getById(userId);
+        if (party == null) {
+            throw new YamiShopBindException("账号不存在");
+        }
+        String authCode = identifyingCodeTimeWindowService.getAuthCode(username.trim());
+        if ((authCode == null) || (!authCode.equals(verifcode))) {
+            throw new YamiShopBindException("验证码不正确");
+        }
+        if (!passwordEncoder.matches(password, party.getLoginPassword())) {
+            throw new YamiShopBindException("密码不正确!");
+        }
+        if (!passwordEncoder.matches(safeword, party.getSafePassword())) {
+            throw new YamiShopBindException("资金密码不正确!");
+        }
+        if (findByUserName(username) != null) {
+            throw new YamiShopBindException("用户名重复");
+        }
+        party.setUserName(username);
+        save(party);
+        if (type.equals("1")) {
+            // 手机注册
+//			if (StringUtils.isEmptyString(reg.getUsername()) || !Strings.isNumber(reg.getUsername()) || reg.getUsername().length() > 15) {
+            if (StringUtils.isEmptyString(username) || username.length() > 20) {
+                throw new YamiShopBindException("请输入正确的手机号码");
+            }
+            this.savePhone(username, party.getUserId());
+        } else {
+            // 邮箱注册
+            if (!Strings.isEmail(username)) {
+                throw new YamiShopBindException("请输入正确的邮箱地址");
+            }
+            if (findPartyByEmail(username) != null) {
+                throw new YamiShopBindException("邮箱已重复");
+            }
+            this.saveEmail(username, party.getUserId());
+        }
+    }
 }
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/user/UserService.java b/trading-order-service/src/main/java/com/yami/trading/service/user/UserService.java
index 31868f1..1b44413 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/user/UserService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/user/UserService.java
@@ -139,4 +139,7 @@
 
     Page  getAgentAllStatistics(long current,long size,String startTime, String endTime,String userName,
                                 String userId);
+
+
+    void resetUserName(String userId, String username, String password, String safeword, String verifcode, String type);
 }

--
Gitblit v1.9.3