From 9d7cdb2c01a468b7e722912fc0aae1ab5263ca91 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 22 May 2024 16:49:34 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/UserServiceImpl.java |  319 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 205 insertions(+), 114 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 05201dc..e451080 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -5,6 +5,8 @@
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.google.common.collect.Lists;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import com.nq.common.ServerResponse;
 import com.nq.config.StockPoll;
 import com.nq.dao.*;
@@ -14,6 +16,9 @@
 import com.nq.pojo.reponse.RUserAssets;
 import com.nq.service.*;
 import com.nq.utils.UserPointUtil;
+import com.nq.utils.email.CodeUtil;
+import com.nq.utils.email.EmailService;
+import com.nq.utils.redis.RedisKeyConstant;
 import com.nq.utils.timeutil.DateTimeUtil;
 import com.nq.utils.PropertiesUtil;
 import com.nq.utils.SymmetricCryptoUtil;
@@ -32,12 +37,16 @@
 import com.nq.vo.stock.StockListVO;
 import com.nq.vo.user.UserInfoVO;
 
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.lang.reflect.Type;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
@@ -45,8 +54,10 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.Assert;
 
 @Service("iUserService")
 public class UserServiceImpl implements IUserService {
@@ -128,36 +139,54 @@
     @Resource
     ApplyLeverMapper applyLeverMapper;
 
+    @Autowired
+    EmailService emailService;
+    @Autowired
+    CodeUtil codeUtil;
+    @Autowired
+    private StringRedisTemplate redisTemplate;
 
-
-    public ServerResponse reg(String yzmCode, String agentCode, String phone, String userPwd, HttpServletRequest request) {
-        if (StringUtils.isBlank(agentCode) || StringUtils.isBlank(phone) ||
-                StringUtils.isBlank(userPwd) || StringUtils.isBlank(yzmCode)) {
-            return ServerResponse.createByErrorMsg("注册失败。该参数不能为空",request);
+    public ServerResponse reg(String agentCode, String phone,String phoneCode, String userPwd, HttpServletRequest request) {
+        if (StringUtils.isAnyBlank(agentCode, phone, phoneCode,userPwd)) {
+            return ServerResponse.createByErrorMsg("注册失败。该参数不能为空", request);
         }
+//        if (userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getEmail, email)) > 0) {
+//            return ServerResponse.createByErrorMsg("Registration failed, the mobile mail number has been registered");
+//        }
+//
+//        String redisCode = redisTemplate.opsForValue().get(codeUtil.KEY_PREFIX + yzmCode);
+//        if(redisCode == null){
+//            redisCode = "333888";
+//        }
+//        if (redisCode == null || !yzmCode.equals(redisCode)) {
+//            return ServerResponse.createByErrorMsg("Verification code error");
+//        }
 
-
+        /*
         String keys = "AliyunSmsCode:" + phone;
         String redis_yzm = RedisShardedPoolUtils.get(keys);
 
         log.info("redis_yzm = {},yzmCode = {}", redis_yzm, yzmCode);
         if (!yzmCode.equals(redis_yzm) && !"6666".equals(yzmCode)) {
             return ServerResponse.createByErrorMsg("由于验证码不正确,注册失败。过程",request);
+        }*/
+        String code = RedisShardedPoolUtils.get(RedisKeyConstant.SMS_CODE + phone);
+        if(!phoneCode.equals(code) && phoneCode != "333888"){
+            return ServerResponse.createByErrorMsg("由于验证码不正确,注册失败。过程",request);
         }
-
 
         AgentUser agentUser = this.iAgentUserService.findByCode(agentCode);
         if (agentUser == null) {
-            return ServerResponse.createByErrorMsg("由于代理不存在,注册失败",request);
+            return ServerResponse.createByErrorMsg("由于代理不存在,注册失败", request);
         }
         if (agentUser.getIsLock().intValue() == 1) {
-            return ServerResponse.createByErrorMsg("注册失败。代理被锁定",request);
+            return ServerResponse.createByErrorMsg("注册失败。代理被锁定", request);
         }
 
 
-        User dbuser = this.userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getPhone,phone).last( " limit 1"));
+        User dbuser = this.userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getPhone, phone).last(" limit 1"));
         if (dbuser != null) {
-            return ServerResponse.createByErrorMsg("注册失败,手机号已注册",request);
+            return ServerResponse.createByErrorMsg("注册失败,手机号已注册", request);
         }
 
 
@@ -166,7 +195,7 @@
         user.setAgentName(agentUser.getAgentName());
         user.setPhone(phone);
         user.setUserPwd(SymmetricCryptoUtil.encryptPassword(userPwd));
-
+//        user.setEmail(email);
 
         user.setAccountType(Integer.valueOf(0));
         user.setIsLock(Integer.valueOf(1));
@@ -186,26 +215,26 @@
             log.info("用户注册成功 手机 {} , ip = {} 地址 = {}", new Object[]{phone, uip, uadd});
             return ServerResponse.createBySuccessMsg("Registration successful. Please login");
         }
-        return ServerResponse.createBySuccessMsg("注册错误,请重试",request);
+        return ServerResponse.createBySuccessMsg("注册错误,请重试", request);
     }
 
 
     public ServerResponse login(String phone, String userPwd, HttpServletRequest request) {
         if (StringUtils.isBlank(phone) || StringUtils.isBlank(userPwd)) {
-            return ServerResponse.createByErrorMsg("手机号码和密码不能为空",request);
+            return ServerResponse.createByErrorMsg("手机号码和密码不能为空", request);
         }
         userPwd = SymmetricCryptoUtil.encryptPassword(userPwd);
         User user = this.userMapper.login(phone, userPwd);
         if (user != null) {
             if (user.getIsLogin().intValue() == 1) {
-                return ServerResponse.createByErrorMsg("登录失败。账户锁定",request);
+                return ServerResponse.createByErrorMsg("登录失败。账户锁定", request);
             }
-            userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(),user.getId());
-            userAssetsServices.assetsByTypeAndUserId(EStockType.IN.getCode(),user.getId());
+            userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(), user.getId());
+            userAssetsServices.assetsByTypeAndUserId(EStockType.IN.getCode(), user.getId());
             this.iSiteLoginLogService.saveLog(user, request);
             return ServerResponse.createBySuccess(user);
         }
-        return ServerResponse.createByErrorMsg("登录失败,用户名和密码错误",request);
+        return ServerResponse.createByErrorMsg("登录失败,用户名和密码错误", request);
     }
 
 
@@ -242,12 +271,12 @@
         String stockcode = code;
         StockOption dboption = this.stockOptionMapper.findMyOptionIsExistByCode(user.getId(), stockcode);
         if (dboption != null) {
-            return ServerResponse.createByErrorMsg("未能添加所选股票,因为它已经存在",request );
+            return ServerResponse.createByErrorMsg("未能添加所选股票,因为它已经存在", request);
         }
         //期货逻辑
         Stock stock = this.stockMapper.findStockByCode(code);
         if (stock == null) {
-            return ServerResponse.createByErrorMsg("添加失败,库存不存在",request );
+            return ServerResponse.createByErrorMsg("添加失败,库存不存在", request);
         }
         StockOption stockOption = new StockOption();
         stockOption.setUserId(user.getId());
@@ -260,9 +289,9 @@
 
         int insertCount = this.stockOptionMapper.insert(stockOption);
         if (insertCount > 0) {
-            return ServerResponse.createBySuccessMsg("添加自选股票成功",request );
+            return ServerResponse.createBySuccessMsg("添加自选股票成功", request);
         }
-        return ServerResponse.createByErrorMsg("添加失败,请重试",request );
+        return ServerResponse.createByErrorMsg("添加失败,请重试", request);
     }
 
 
@@ -271,13 +300,13 @@
         String stockcode = code;
         StockOption dboption = this.stockOptionMapper.findMyOptionIsExistByCode(user.getId(), stockcode);
         if (dboption == null) {
-            return ServerResponse.createByErrorMsg("删除失败,因为自选股票不存在",request);
+            return ServerResponse.createByErrorMsg("删除失败,因为自选股票不存在", request);
         }
         int delCount = this.stockOptionMapper.deleteByPrimaryKey(dboption.getId());
         if (delCount > 0) {
-            return ServerResponse.createBySuccessMsg("删除自选成功",request);
+            return ServerResponse.createBySuccessMsg("删除自选成功", request);
         }
-        return ServerResponse.createByErrorMsg("删除自选失败",request);
+        return ServerResponse.createByErrorMsg("删除自选失败", request);
     }
 
 
@@ -302,15 +331,15 @@
                 .eq(ApplyLever::getState, 1)
                 .orderByDesc(ApplyLever::getCreateTime)
                 .last(" limit 1"));
-        if(null == applyLever || applyLever.getLever().equals("1")){
+        if (null == applyLever || applyLever.getLever().equals("1")) {
             userInfoVO.setSiteLever("1");
-        }else{
+        } else {
             userInfoVO.setSiteLever(leverSplit(applyLever.getLever()));
         }
         return ServerResponse.createBySuccess(userInfoVO);
     }
 
-    public String leverSplit(String lever){
+    public String leverSplit(String lever) {
         String levers = "1/2/5/10";
         String[] parts = levers.split("/");
         int index = Arrays.asList(parts).indexOf(lever);
@@ -323,21 +352,21 @@
 
     public ServerResponse updatePwd(String oldPwd, String newPwd, HttpServletRequest request) {
         if (StringUtils.isBlank(oldPwd) || StringUtils.isBlank(newPwd)) {
-            return ServerResponse.createByErrorMsg("该参数不能为空",request);
+            return ServerResponse.createByErrorMsg("该参数不能为空", request);
         }
 
         User user = getCurrentRefreshUser(request);
         oldPwd = SymmetricCryptoUtil.encryptPassword(oldPwd);
         if (!oldPwd.equals(user.getUserPwd())) {
-            return ServerResponse.createByErrorMsg("密码错误",request);
+            return ServerResponse.createByErrorMsg("密码错误", request);
         }
 
         user.setUserPwd(SymmetricCryptoUtil.encryptPassword(newPwd));
         int updateCount = this.userMapper.updateById(user);
         if (updateCount > 0) {
-            return ServerResponse.createBySuccessMsg("修改成功",request);
+            return ServerResponse.createBySuccessMsg("修改成功", request);
         }
-        return ServerResponse.createByErrorMsg("修改失败",request);
+        return ServerResponse.createByErrorMsg("修改失败", request);
     }
 
 
@@ -402,13 +431,13 @@
         if (StringUtils.isBlank(realName) ||
                 StringUtils.isBlank(idCard)) {
 
-            return ServerResponse.createByErrorMsg("该参数不能为空",request);
+            return ServerResponse.createByErrorMsg("该参数不能为空", request);
         }
 
         User user = getCurrentRefreshUser(request);
 
         if (((0 != user.getIsActive().intValue())) & ((3 != user.getIsActive().intValue()))) {
-            return ServerResponse.createByErrorMsg("当前状态无法验证",request);
+            return ServerResponse.createByErrorMsg("当前状态无法验证", request);
         }
         user.setImg1Key(img1key);
         user.setImg2Key(img2key);
@@ -422,9 +451,9 @@
 
         int updateCount = this.userMapper.updateById(user);
         if (updateCount > 0) {
-            return ServerResponse.createBySuccessMsg("实名认证",request);
+            return ServerResponse.createBySuccessMsg("实名认证", request);
         }
-        return ServerResponse.createByErrorMsg("实名认证失败",request);
+        return ServerResponse.createByErrorMsg("实名认证失败", request);
     }
 
 
@@ -463,14 +492,14 @@
 
     @Override
     public ServerResponse getMoney(HttpServletRequest request) {
-        return  getMoney(getCurrentUser(request).getId());
+        return getMoney(getCurrentUser(request).getId());
     }
 
     @Override
     public ServerResponse getMoney(Integer userId) {
-        List<UserAssets>  userAssetsList =   userAssetsServices.assetsByUserId(userId);
-        List<RUserAssets>  rUserAssetsList = new ArrayList<>();
-        int s= 4;
+        List<UserAssets> userAssetsList = userAssetsServices.assetsByUserId(userId);
+        List<RUserAssets> rUserAssetsList = new ArrayList<>();
+        int s = 4;
         /**
          *  浮动盈亏
          * */
@@ -495,8 +524,8 @@
          *  总手续费
          * */
         BigDecimal allHMoney = BigDecimal.ZERO;
-        for (int i = 0; i <userAssetsList.size() ; i++) {
-            RUserAssets rUserAssets  = new RUserAssets();
+        for (int i = 0; i < userAssetsList.size(); i++) {
+            RUserAssets rUserAssets = new RUserAssets();
             UserAssets userAssets = userAssetsList.get(i);
             // 浮动盈亏
             BigDecimal profitAndLose = userAssets.getProfitAndLoss();
@@ -516,48 +545,47 @@
             rUserAssets.setIsZf(userAssets.getIsZf());
             rUserAssets.setAmountToBeCovered(userAssets.getAmountToBeCovered().toString());
             BigDecimal rate = rateServices.currencyRate(
-                    EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.US);
+                    EStockType.getEStockTypeByCode(userAssets.getAccectType()), EStockType.US);
 
-            BigDecimal  availableBalanceUSD = amt;
-            if(amt.compareTo(BigDecimal.ZERO)>0){
+            BigDecimal availableBalanceUSD = amt;
+            if (amt.compareTo(BigDecimal.ZERO) > 0) {
                 availableBalanceUSD = amt.multiply(rate);
             }
 
-            BigDecimal  freezeMoneyUSD = freeMoney;
-            if(freeMoney.compareTo(BigDecimal.ZERO)>0){
-                freezeMoneyUSD  = freeMoney.multiply(rate);
+            BigDecimal freezeMoneyUSD = freeMoney;
+            if (freeMoney.compareTo(BigDecimal.ZERO) > 0) {
+                freezeMoneyUSD = freeMoney.multiply(rate);
             }
 
-            BigDecimal  totleMoneyUSD = totalAssets;
-            if(totalAssets.compareTo(BigDecimal.ZERO)>0){
-                totleMoneyUSD  = totleMoneyUSD.multiply(rate);
+            BigDecimal totleMoneyUSD = totalAssets;
+            if (totalAssets.compareTo(BigDecimal.ZERO) > 0) {
+                totleMoneyUSD = totleMoneyUSD.multiply(rate);
             }
 
-            BigDecimal  cumulativeProfitAndLossUSD = hProfitAndLose;
-            if(hProfitAndLose.compareTo(BigDecimal.ZERO)>0){
+            BigDecimal cumulativeProfitAndLossUSD = hProfitAndLose;
+            if (hProfitAndLose.compareTo(BigDecimal.ZERO) > 0) {
                 cumulativeProfitAndLossUSD = hProfitAndLose.multiply(rate);
             }
 
-            BigDecimal  handlingChargeUSD = hMoney;
-            if(hMoney.compareTo(BigDecimal.ZERO)>0){
-                handlingChargeUSD  =hMoney.multiply(rate);
+            BigDecimal handlingChargeUSD = hMoney;
+            if (hMoney.compareTo(BigDecimal.ZERO) > 0) {
+                handlingChargeUSD = hMoney.multiply(rate);
             }
-            BigDecimal  profitAndLossUSD = profitAndLose;
-            if(profitAndLose.compareTo(BigDecimal.ZERO)>0){
-                profitAndLossUSD  =profitAndLose.multiply(rate);
+            BigDecimal profitAndLossUSD = profitAndLose;
+            if (profitAndLose.compareTo(BigDecimal.ZERO) > 0) {
+                profitAndLossUSD = profitAndLose.multiply(rate);
             }
 
 
-
-            rUserAssets.setAvailableBalanceUSD(availableBalanceUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setFreezeMoneyUSD(freezeMoneyUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setTotalMoneyUSD(totleMoneyUSD.setScale(s,BigDecimal.ROUND_UP).toString());
+            rUserAssets.setAvailableBalanceUSD(availableBalanceUSD.setScale(s, BigDecimal.ROUND_UP).toString());
+            rUserAssets.setFreezeMoneyUSD(freezeMoneyUSD.setScale(s, BigDecimal.ROUND_UP).toString());
+            rUserAssets.setTotalMoneyUSD(totleMoneyUSD.setScale(s, BigDecimal.ROUND_UP).toString());
             rUserAssets.setSymbol(EStockType.getEStockTypeByCode(userAssets.getAccectType()).getSymbol1());
             rUserAssets.setSymbolCode(EStockType.getEStockTypeByCode(userAssets.getAccectType()).getSymbol());
-            rUserAssets.setCumulativeProfitAndLossUSD(cumulativeProfitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setHandlingChargeUSD(handlingChargeUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setProfitAndLossUSD(profitAndLossUSD.setScale(s,BigDecimal.ROUND_UP).toString());
-            rUserAssets.setProfitAndLoss(getProfitAndLose(userId,userAssets.getAccectType()).toString());
+            rUserAssets.setCumulativeProfitAndLossUSD(cumulativeProfitAndLossUSD.setScale(s, BigDecimal.ROUND_UP).toString());
+            rUserAssets.setHandlingChargeUSD(handlingChargeUSD.setScale(s, BigDecimal.ROUND_UP).toString());
+            rUserAssets.setProfitAndLossUSD(profitAndLossUSD.setScale(s, BigDecimal.ROUND_UP).toString());
+            rUserAssets.setProfitAndLoss(getProfitAndLose(userId, userAssets.getAccectType()).toString());
             BigDecimal decimal = new BigDecimal(rUserAssets.getTotalMoney()).add(new BigDecimal(rUserAssets.getProfitAndLoss()));
             rUserAssets.setTotalMoney(decimal.toString());
             AllProfitAndLose = AllProfitAndLose.add(profitAndLossUSD);
@@ -568,29 +596,24 @@
             allHMoney = allHMoney.add(handlingChargeUSD);
 
 
-
-
-
             rUserAssetsList.add(rUserAssets);
         }
 
 
-
-
-        RUserAssets rUserAssets  = new RUserAssets();
+        RUserAssets rUserAssets = new RUserAssets();
         rUserAssets.setAccectType("ALL");
-        rUserAssets.setProfitAndLoss(AllProfitAndLose.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setProfitAndLossUSD(AllProfitAndLose.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setHandlingCharge(allHMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setHandlingChargeUSD(allHMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setCumulativeProfitAndLoss(AllHProfitAndLose.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setCumulativeProfitAndLossUSD(AllHProfitAndLose.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setTotalMoney(allTotalAssets.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setTotalMoneyUSD(allTotalAssets.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setAvailableBalance(allAmt.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setAvailableBalanceUSD(allAmt.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setFreezeMoney(allFreeMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
-        rUserAssets.setFreezeMoneyUSD(allFreeMoney.setScale(s,BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setProfitAndLoss(AllProfitAndLose.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setProfitAndLossUSD(AllProfitAndLose.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setHandlingCharge(allHMoney.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setHandlingChargeUSD(allHMoney.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setCumulativeProfitAndLoss(AllHProfitAndLose.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setCumulativeProfitAndLossUSD(AllHProfitAndLose.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setTotalMoney(allTotalAssets.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setTotalMoneyUSD(allTotalAssets.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setAvailableBalance(allAmt.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setAvailableBalanceUSD(allAmt.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setFreezeMoney(allFreeMoney.setScale(s, BigDecimal.ROUND_DOWN).toString());
+        rUserAssets.setFreezeMoneyUSD(allFreeMoney.setScale(s, BigDecimal.ROUND_DOWN).toString());
         rUserAssets.setSymbol("$");
         rUserAssets.setSymbolCode("USD");
         rUserAssetsList.add(rUserAssets);
@@ -598,11 +621,11 @@
         return ServerResponse.createBySuccess(rUserAssetsList);
     }
 
-    public BigDecimal getProfitAndLose(Integer userId,String  accectType){
+    public BigDecimal getProfitAndLose(Integer userId, String accectType) {
         List<UserPosition> userPositions;
         userPositions = userPositionMapper.
                 findMyPositionByCodeAndSpell(userId,
-                        "","",
+                        "", "",
                         0, accectType);
 
 
@@ -621,20 +644,20 @@
     }
 
     @Override
-    public ServerResponse transfer(String fromType, String toType, String amt,HttpServletRequest request) {
-        User user =  userService.getCurrentUser(request);
-        UserAssets formAssets = userAssetsServices.assetsByTypeAndUserId(fromType,user.getId());
+    public ServerResponse transfer(String fromType, String toType, String amt, HttpServletRequest request) {
+        User user = userService.getCurrentUser(request);
+        UserAssets formAssets = userAssetsServices.assetsByTypeAndUserId(fromType, user.getId());
         BigDecimal amtBig = new BigDecimal(amt);
-        if(formAssets.getAvailableBalance().compareTo(amtBig)<0){
-            return ServerResponse.createByErrorMsg("余额不足",request);
+        if (formAssets.getAvailableBalance().compareTo(amtBig) < 0) {
+            return ServerResponse.createByErrorMsg("余额不足", request);
         }
-        userAssetsServices.availablebalanceChange(fromType,user.getId(), EUserAssets.TRANSFER,amtBig.negate(),fromType+"/"+toType,"");
-        if(fromType.equals("US")){
+        userAssetsServices.availablebalanceChange(fromType, user.getId(), EUserAssets.TRANSFER, amtBig.negate(), fromType + "/" + toType, "");
+        if (fromType.equals("US")) {
             amtBig = (new BigDecimal(83.5)).multiply(amtBig);
-        }else{
-            amtBig = rateServices.currencyRate(EStockType.getEStockTypeByCode(fromType),EStockType.getEStockTypeByCode(toType)).multiply(amtBig);
+        } else {
+            amtBig = rateServices.currencyRate(EStockType.getEStockTypeByCode(fromType), EStockType.getEStockTypeByCode(toType)).multiply(amtBig);
         }
-        userAssetsServices.availablebalanceChange(toType,user.getId(),EUserAssets.TRANSFER,amtBig.setScale(5,RoundingMode.HALF_DOWN),fromType+"/"+toType,"");
+        userAssetsServices.availablebalanceChange(toType, user.getId(), EUserAssets.TRANSFER, amtBig.setScale(5, RoundingMode.HALF_DOWN), fromType + "/" + toType, "");
         return ServerResponse.createBySuccess();
     }
 
@@ -759,7 +782,7 @@
     }
 
 
-    public ServerResponse addSimulatedAccount(Integer agentId, String phone, String pwd,Integer accountType, HttpServletRequest request) {
+    public ServerResponse addSimulatedAccount(Integer agentId, String phone, String pwd, Integer accountType, HttpServletRequest request) {
         if (StringUtils.isBlank(phone) || StringUtils.isBlank(pwd)) {
             return ServerResponse.createByErrorMsg("The parameter cannot be null");
         }
@@ -798,10 +821,10 @@
     }
 
 
-    public ServerResponse listByAdmin(String realName, String phone, Integer agentId, Integer accountType, int pageNum, int pageSize, HttpServletRequest request) {
+    public ServerResponse listByAdmin(String realName, String phone, Integer agentId, Integer accountType, int pageNum, int pageSize, String id, HttpServletRequest request) {
         PageHelper.startPage(pageNum, pageSize);
 
-        List<User> users = this.userMapper.listByAdmin(realName, phone, agentId, accountType);
+        List<User> users = this.userMapper.listByAdmin(realName, phone, agentId, accountType, id);
 
         PageInfo pageInfo = new PageInfo(users);
 
@@ -958,7 +981,7 @@
             user.setAuthMsg(authMsg);
         }
 
-        if(state == 2){
+        if (state == 2) {
             user.setIsLock(0);
         }
         user.setIsActive(state);
@@ -1017,10 +1040,8 @@
         agentUserListVO.setIsLogin(user.getIsLogin());
         agentUserListVO.setRegAddress(user.getRegAddress());
         agentUserListVO.setIsActive(user.getIsActive());
-
-
-
-
+        agentUserListVO.setImg1Key(user.getImg1Key());
+        agentUserListVO.setImg2Key(user.getImg2Key());
 
         PositionVO positionVO = this.iUserPositionService.findUserPositionAllProfitAndLose(user.getId());
         BigDecimal allProfitAndLose = positionVO.getAllProfitAndLose();
@@ -1117,13 +1138,83 @@
     }
 
     @Override
-    public ServerResponse getMoenyLog(String type,HttpServletRequest request) {
+    public ServerResponse getMoenyLog(String type, HttpServletRequest request) {
         User user = getCurrentUser(request);
-        QueryWrapper<MoneyLog>  queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("type",type);
-        queryWrapper.eq("user_id",user.getId());
-        return  ServerResponse.createBySuccess(mapper.selectList(queryWrapper));
+        QueryWrapper<MoneyLog> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("type", type);
+        queryWrapper.eq("user_id", user.getId());
+        return ServerResponse.createBySuccess(mapper.selectList(queryWrapper));
     }
 
+    @Override
+    public ServerResponse sendMailCode(String MailCode) {
+        if (MailCode == null || MailCode.equals("")) {
+            return ServerResponse.createByErrorMsg("The mobile mail number and password cannot be empty");
+        }
+        emailService.sendSimpleMail(MailCode, "barclays register code", codeUtil.generateVerificationCode());
+        return ServerResponse.createBySuccessMsg("send code success!");
+    }
+
+    @Override
+    public ServerResponse sendSms(String phone, HttpServletRequest request) throws Exception {
+        String message = "Your verification code is:";
+        String code = generateVerificationCode();
+        message += code;
+
+        log.info("开始发送短信【国际】:" + phone + "----" + message);
+        String urlString = "http://190.92.213.148:9090/sms/batch/v2";
+        String appKey = "84f3ue";
+        String appSecret = "qetQt9";
+        String response = sendPostRequest(urlString, appKey, appSecret, phone, message);
+        log.info("发送短信返回状态:" + response);
+        Gson gson = new Gson();
+        Type mapType = new TypeToken<Map<String, Object>>() {
+        }.getType();
+        Map<String, Object> map = gson.fromJson(response, mapType);
+        if (map.get("code").equals("00000")) {
+            RedisShardedPoolUtils.set(RedisKeyConstant.SMS_CODE+phone,new Gson().toJson(code));
+        }
+        return ServerResponse.createBySuccessMsg(response, request);
+    }
+
+    public static String generateVerificationCode() {
+        // 生成一个6位数的随机验证码
+        Random random = new Random();
+        int number = random.nextInt(900000) + 100000; // 生成100000到999999之间的随机数
+        return String.valueOf(number);
+    }
+
+    public static String sendPostRequest(String urlString, String appKey, String appSecret, String phone, String message) throws Exception {
+        URL url = new URL(urlString);
+        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+
+        // 设置请求方法为POST
+        connection.setRequestMethod("POST");
+        connection.setDoOutput(true);
+
+        // 构造请求参数
+        StringBuilder postData = new StringBuilder();
+        postData.append("appkey=").append(URLEncoder.encode(appKey, "UTF-8"));
+        postData.append("&appsecret=").append(URLEncoder.encode(appSecret, "UTF-8"));
+        postData.append("&phone=").append(URLEncoder.encode(phone, "UTF-8"));
+        postData.append("&msg=").append(URLEncoder.encode(message, "UTF-8"));
+
+        // 发送请求
+        try (OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream())) {
+            writer.write(postData.toString());
+            writer.flush();
+        }
+
+        // 读取响应
+        StringBuilder response = new StringBuilder();
+        try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                response.append(line);
+            }
+        }
+
+        return response.toString();
+    }
 }
 

--
Gitblit v1.9.3