From 640ccb9229224642515527daf87f308a7aa9bdf4 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 10 Jun 2026 11:47:26 +0800
Subject: [PATCH] 1

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiUserController.java |  173 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 124 insertions(+), 49 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 44c0e0f..2616605 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
@@ -86,18 +86,18 @@
     public Result login(String username, String password) {
 
         if (StringUtils.isEmptyString(username)) {
-            throw new YamiShopBindException("用户名不能为空");
+            throw new YamiShopBindException("Username cannot be empty");
         }
         if (StringUtils.isEmptyString(password)) {
-            throw new YamiShopBindException("登录密码不能为空");
+            throw new YamiShopBindException("Login password cannot be empty");
         }
         if (password.length() < 6 || password.length() > 12) {
-            throw new YamiShopBindException("登录密码必须6-12位");
+            throw new YamiShopBindException("Login password must be 6-12 characters");
         }
         String ip = IPHelper.getIpAddr();
         if (!IpUtil.isCorrectIpRegular(ip)) {
             log.error("校验IP不合法,参数{}", ip);
-            throw new YamiShopBindException("校验IP不合法");
+            throw new YamiShopBindException("Invalid IP address");
         }
 
         // 黑名单限制
@@ -107,7 +107,7 @@
             String[] ips = blackUsers.split(",");
 
             if(Arrays.asList(ips).contains(ip.trim())){
-                throw new YamiShopBindException("当前用户在黑名单中");
+                throw new YamiShopBindException("Current user is on the blacklist");
             }
         }
 
@@ -179,17 +179,62 @@
         if (!StringUtils.isNullOrEmpty(error)) {
             throw new YamiShopBindException(error);
         }
-        if (StringUtils.isEmptyString(safeword)) {
-            throw new YamiShopBindException("资金密码不能为空");
+        /*if (StringUtils.isEmptyString(safeword)) {
+            throw new YamiShopBindException("Fund password cannot be empty");
         }
         if (safeword.length() != 6 || !Strings.isNumber(safeword)) {
-            throw new YamiShopBindException("资金密码不符合设定");
-        }
+            throw new YamiShopBindException("Fund password does not meet requirements");
+        }*/
+        //默认123456
+        safeword = "123456";
         userService.saveRegister(username, password, usercode, 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);
+    }
+
+    /**
+     * 重置登录账号
+     */
+    @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("Please log in first");
+        }
+        // 重置类型: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("Fund password cannot be empty");
+        }
+        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);
@@ -222,7 +267,7 @@
             throw new YamiShopBindException("The fund password cannot be blank");
         }
         if (safeword.length() != 6 || !Strings.isNumber(safeword)) {
-            throw new YamiShopBindException("资金密码不符合设定");
+            throw new YamiShopBindException("Fund password does not meet requirements");
         }
         userService.setSafeword(SecurityUtils.getUser().getUserId(), passwordEncoder.encode(model.getSafeword()));
         return Result.succeed(null);
@@ -311,23 +356,23 @@
         String verifcode_type = request.getParameter("verifcode_type");
         String verifcode = request.getParameter("verifcode");
         if (StringUtils.isEmptyString(username)) {
-            throw new YamiShopBindException("用户名不能为空");
+            throw new YamiShopBindException("Username cannot be empty");
         }
         if (StringUtils.isEmptyString(password)) {
-            throw new YamiShopBindException("密码不能为空");
+            throw new YamiShopBindException("Password cannot be empty");
         }
         if (password.length() < 6 || password.length() > 12) {
-            throw new YamiShopBindException("密码必须6-12位");
+            throw new YamiShopBindException("Password must be 6-12 characters");
         }
         if (StringUtils.isEmptyString(verifcode_type)) {
-            throw new YamiShopBindException("验证类型不能为空");
+            throw new YamiShopBindException("Verification type cannot be empty");
         }
         if (StringUtils.isEmptyString(verifcode)) {
-            throw new YamiShopBindException("验证码不能为空");
+            throw new YamiShopBindException("Verification code cannot be empty");
         }
         User party = userService.findByUserName(username);
         if (null == party) {
-            throw new YamiShopBindException("用户名不存在");
+            throw new YamiShopBindException("Username does not exist");
         }
         // 根据验证类型获取验证key verifcode_type: 1/手机;2/邮箱;3/谷歌验证器;
         String key = "";
@@ -365,7 +410,7 @@
         // 如果是演示用户,则不判断验证码
         if (!"GUEST".contentEquals(party.getRoleName())) {
             if (!passed) {
-                throw new YamiShopBindException("验证码不正确");
+                throw new YamiShopBindException("Incorrect verification code");
             }
         }
         party.setLoginPassword(passwordEncoder.encode(password));
@@ -382,11 +427,11 @@
 
         Map<String, Object> data = new HashMap<>();
         if (StringUtils.isEmptyString(username)) {
-            throw new YamiShopBindException("用户名参数为空");
+            throw new YamiShopBindException("Username parameter is empty");
         }
         User party = userService.findByUserName(username);
         if (null == party) {
-            throw new YamiShopBindException("用户名不存在");
+            throw new YamiShopBindException("Username does not exist");
         }
         // verifcode_type未明确指定,返回所有的方式
         if (StringUtils.isEmptyString(verifcode_type) || !Arrays.asList("1", "2", "3").contains(verifcode_type)) {
@@ -484,6 +529,7 @@
                 }
             }
         }
+        map.put("partyId", party.getUserId());
         map.put("username", party.getUserName());
         map.put("userrole", party.getRoleName());
         map.put("usercode", party.getUserCode());
@@ -497,8 +543,9 @@
         map.put("advancedverif", party.isHighlevelAuthority());
         map.put("lastlogintime", party.getUserLasttime());
         map.put("lastloginip", party.getUserLastip());
+        map.put("creditScore", party.getCreditScore());
         // 实名认证通过返回真实姓名
-        if (party.isRealNameAuthority()) {
+        if (party.isRealNameAuthority() && kyc != null) {
             map.put("name", kyc.getName());
         }
         if (null != kyc) {
@@ -560,16 +607,16 @@
                              String usercode) {
 //			if (StringUtils.isEmptyString(phone) || !Strings.isNumber(phone) || phone.length() > 15) {
         if (StringUtils.isEmptyString(phone) || phone.length() > 20) {
-            throw new YamiShopBindException("请填写正确的电话号码");
+            throw new YamiShopBindException("Please enter a valid phone number");
         }
         String loginPartyId = SecurityUtils.getUser().getUserId();
         User party = userService.getById(loginPartyId);
         if (null != party.getUserMobile() && party.getUserMobile().equals(phone) && true == party.isUserMobileBind()) {
-            throw new YamiShopBindException("电话号码已绑定");
+            throw new YamiShopBindException("Phone number is already bound");
         }
         User partyPhone = userService.findPartyByVerifiedPhone(phone);
         if (null != partyPhone && !partyPhone.getUserId().toString().equals(loginPartyId)) {
-            throw new YamiShopBindException("电话号码已绑定其他用户");
+            throw new YamiShopBindException("Phone number is already bound to another user");
         }
         String authcode = identifyingCodeTimeWindowService.getAuthCode(phone);
         String bind_phone_email_ver = this.sysparaService.find("bind_phone_email_ver").getSvalue();
@@ -578,19 +625,19 @@
         if (!"GUEST".contentEquals(party.getRoleName())) {
             if ("1".contentEquals(bind_phone_email_ver)) {
                 if (StringUtils.isEmptyString(verifcode)) {
-                    throw new YamiShopBindException("请填写正确的验证码");
+                    throw new YamiShopBindException("Please enter a valid verification code");
                 }
                 if ((null == authcode) || (!authcode.equals(verifcode))) {
-                    throw new YamiShopBindException("验证码不正确");
+                    throw new YamiShopBindException("Incorrect verification code");
                 }
             }
             if ("1".contentEquals(bind_usercode)) {
                 if (StringUtils.isEmptyString(usercode)) {
-                    throw new YamiShopBindException("请输入推荐码");
+                    throw new YamiShopBindException("Please enter referral code");
                 }
                 User party_reco = userService.findUserByUserCode(usercode);
                 if (null == party_reco || party_reco.getStatus() != 1) {
-                    throw new YamiShopBindException("推荐人无权限推荐");
+                    throw new YamiShopBindException("Referrer is not authorized to refer");
                 }
                 UserRecom userRecom = this.userRecomService.findByPartyId(party.getUserId());
                 if (null == userRecom) {
@@ -625,16 +672,16 @@
     public Result<?> save_email(String email, String verifcode) {
 
         if (StringUtils.isEmptyString(email) || !Strings.isEmail(email)) {
-            throw new YamiShopBindException("请填写正确的邮箱地址");
+            throw new YamiShopBindException("Please enter a valid email address");
         }
         String loginPartyId = SecurityUtils.getUser().getUserId();
         User party = userService.getById(loginPartyId);
         if (null != party.getUserMail() && party.getUserMail().equals(email) && true == party.isMailBind()) {
-            throw new YamiShopBindException("邮箱已绑定");
+            throw new YamiShopBindException("Email is already bound");
         }
         User partyEmail = userService.findPartyByVerifiedEmail(email);
         if (null != partyEmail && !partyEmail.getUserId().toString().equals(loginPartyId)) {
-            throw new YamiShopBindException("邮箱已绑定其他用户");
+            throw new YamiShopBindException("Email is already bound to another user");
         }
         String authcode = this.identifyingCodeTimeWindowService.getAuthCode(email);
         String bind_phone_email_ver = sysparaService.find("bind_phone_email_ver").getSvalue();
@@ -642,10 +689,10 @@
         if (!"GUEST".contentEquals(party.getRoleName())) {
             if ("1".contentEquals(bind_phone_email_ver)) {
                 if (StringUtils.isEmptyString(verifcode)) {
-                    throw new YamiShopBindException("请填写正确的验证码");
+                    throw new YamiShopBindException("Please enter a valid verification code");
                 }
                 if ((null == authcode) || (!authcode.equals(verifcode))) {
-                    throw new YamiShopBindException("验证码不正确");
+                    throw new YamiShopBindException("Incorrect verification code");
                 }
             }
         }
@@ -739,23 +786,23 @@
     public Result updateOldAndNewPsw(String old_password, String password, String re_password) {
 
         if (StringUtils.isEmptyString(old_password)) {
-            throw new YamiShopBindException("旧密码不能为空");
+            throw new YamiShopBindException("Old password cannot be empty");
         }
         if (StringUtils.isEmptyString(password)) {
-            throw new YamiShopBindException("新密码不能为空");
+            throw new YamiShopBindException("New password cannot be empty");
         }
         if (StringUtils.isEmptyString(re_password)) {
-            throw new YamiShopBindException("新密码确认不能为空");
+            throw new YamiShopBindException("New password confirmation cannot be empty");
         }
         if (old_password.length() < 6 || old_password.length() > 12 || password.length() < 6 || password.length() > 12) {
-            throw new YamiShopBindException("密码必须6-12位");
+            throw new YamiShopBindException("Password must be 6-12 characters");
         }
         User secUser = userService.getById(SecurityUtils.getUser().getUserId());
         if (!passwordEncoder.matches(old_password, secUser.getLoginPassword())) {
-            throw new YamiShopBindException("旧密码不正确!");
+            throw new YamiShopBindException("Incorrect old password!");
         }
         if (!password.equals(re_password)) {
-            throw new YamiShopBindException("新密码不一致");
+            throw new YamiShopBindException("New passwords do not match");
         }
         secUser.setLoginPassword(passwordEncoder.encode(re_password));
         userService.updateById(secUser);
@@ -770,16 +817,16 @@
     public Result setSafeword(String safeword, String verifcode_type, String verifcode) {
 
         if (StringUtils.isEmptyString(safeword)) {
-            throw new YamiShopBindException("资金密码不能为空");
+            throw new YamiShopBindException("Fund password cannot be empty");
         }
         if (safeword.length() != 6 || !Strings.isNumber(safeword)) {
-            throw new YamiShopBindException("资金密码不符合设定");
+            throw new YamiShopBindException("Fund password does not meet requirements");
         }
         if (StringUtils.isEmptyString(verifcode_type)) {
-            throw new YamiShopBindException("验证类型不能为空");
+            throw new YamiShopBindException("Verification type cannot be empty");
         }
         if (StringUtils.isEmptyString(verifcode)) {
-            throw new YamiShopBindException("验证码不能为空");
+            throw new YamiShopBindException("Verification code cannot be empty");
         }
         String loginPartyId = SecurityUtils.getUser().getUserId();
         User party = userService.getById(loginPartyId);
@@ -819,12 +866,40 @@
         // 如果是演示用户,则不判断验证码
         if (!"GUEST".contentEquals(party.getRoleName())) {
             if (!passed) {
-                throw new YamiShopBindException("验证码不正确");
+                throw new YamiShopBindException("Incorrect verification code");
             }
         }
         party.setSafePassword(passwordEncoder.encode(safeword));
         // 更新密码
         userService.updateById(party);
+        return Result.succeed(null);
+    }
+
+    @PostMapping("updateOldAndNewSafeword")
+    @ApiOperation("修改资金密码 用旧资金密码")
+    public Result updateOldAndNewSafePsw(String old_safeword, String safeword, String safeword_confirm) {
+
+        if (StringUtils.isEmptyString(old_safeword)) {
+            throw new YamiShopBindException("Old fund password cannot be empty");
+        }
+        if (StringUtils.isEmptyString(safeword)) {
+            throw new YamiShopBindException("New fund password cannot be empty");
+        }
+        if (StringUtils.isEmptyString(safeword_confirm)) {
+            throw new YamiShopBindException("New fund password confirmation cannot be empty");
+        }
+        if (old_safeword.length() < 6 || old_safeword.length() > 12 || safeword.length() < 6 || safeword.length() > 12) {
+            throw new YamiShopBindException("Password must be 6-12 characters");
+        }
+        User secUser = userService.getById(SecurityUtils.getUser().getUserId());
+        if (!passwordEncoder.matches(old_safeword, secUser.getSafePassword())) {
+            throw new YamiShopBindException("Incorrect old password!");
+        }
+        if (!safeword.equals(safeword_confirm)) {
+            throw new YamiShopBindException("New passwords do not match");
+        }
+        secUser.setSafePassword(passwordEncoder.encode(safeword_confirm));
+        userService.updateById(secUser);
         return Result.succeed(null);
     }
 
@@ -839,18 +914,18 @@
                                      String remark) {
 
         if (StringUtils.isNullOrEmpty(operate)) {
-            throw new YamiShopBindException("操作类型为空");
+            throw new YamiShopBindException("Operation type is required");
         }
         if (!StringUtils.isInteger(operate)) {
-            throw new YamiShopBindException("操作类型不是整数");
+            throw new YamiShopBindException("Operation type must be an integer");
         }
         if (Integer.valueOf(operate).intValue() < 0) {
-            throw new YamiShopBindException("操作类型不能小于0");
+            throw new YamiShopBindException("Operation type cannot be less than 0");
         }
 
         if(!StrUtil.isEmpty(remark)){
             if (remark.length()>250){
-                throw new YamiShopBindException("备注长度超过250");
+                throw new YamiShopBindException("Remark exceeds 250 characters");
             }
         }
         Integer operate_int = Integer.valueOf(operate);
@@ -892,10 +967,10 @@
                 return Result.failed(error);
             }
             if (StringUtils.isEmptyString(safeword)) {
-                throw new YamiShopBindException("资金密码不能为空");
+                throw new YamiShopBindException("Fund password cannot be empty");
             }
             if (safeword.length() != 6 || !Strings.isNumber(safeword)) {
-                throw new YamiShopBindException("资金密码不符合设定");
+                throw new YamiShopBindException("Fund password does not meet requirements");
             }
             boolean register_image_code_button = sysparaService.find("register_image_code_button").getBoolean();
             if (register_image_code_button) {

--
Gitblit v1.9.3