From 78d39c4e43c80ea16cc96dc73d60c8880ac5020d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 30 Nov 2020 17:15:59 +0800
Subject: [PATCH] Merge branch 'outcenter' of https://gitee.com/chonggaoxiao/new_excoin.git into outcenter

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |  215 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 144 insertions(+), 71 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 27d6ec9..92b921e 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -15,20 +15,20 @@
 import com.xcong.excoin.common.enumerates.CoinTypeEnum;
 import com.xcong.excoin.common.enumerates.SymbolEnum;
 import com.xcong.excoin.common.response.Result;
-import com.xcong.excoin.common.system.dao.WalletDetailDao;
-import com.xcong.excoin.common.system.dao.WtTokenDao;
-import com.xcong.excoin.common.system.dao.WtWalletDao;
-import com.xcong.excoin.common.system.dao.WtWordDao;
 import com.xcong.excoin.common.system.dto.OutCenterRegisterDto;
 import com.xcong.excoin.common.system.dto.RegisterDto;
 import com.xcong.excoin.common.system.dto.WtWalletDto;
-import com.xcong.excoin.common.system.entity.WtToken;
-import com.xcong.excoin.common.system.entity.WtWallet;
-import com.xcong.excoin.common.system.entity.WtWalletDetail;
 import com.xcong.excoin.common.system.service.CommonService;
-import com.xcong.excoin.common.system.vo.LoginVo;
 import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
 import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
+import com.xcong.excoin.modules.login.dao.WalletDetailDao;
+import com.xcong.excoin.modules.login.dao.WtTokenDao;
+import com.xcong.excoin.modules.login.dao.WtWalletDao;
+import com.xcong.excoin.modules.login.dao.WtWordDao;
+import com.xcong.excoin.modules.login.entity.WtToken;
+import com.xcong.excoin.modules.login.entity.WtWallet;
+import com.xcong.excoin.modules.login.entity.WtWalletDetail;
+import com.xcong.excoin.modules.login.vo.LoginVo;
 import com.xcong.excoin.modules.member.dao.*;
 import com.xcong.excoin.modules.member.entity.*;
 import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
@@ -40,8 +40,8 @@
 import com.xcong.excoin.modules.member.parameter.dto.MemberForgetPwdDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberPaymethodDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberSubmitCoinApplyDto;
+import com.xcong.excoin.modules.member.parameter.dto.MemberTradersPwdOutcenterDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberUpdatePwdDto;
-import com.xcong.excoin.modules.member.parameter.dto.MemberUpdateTradePwdDto;
 import com.xcong.excoin.modules.member.parameter.dto.MemberUpdateTradersPwdTimeDto;
 import com.xcong.excoin.modules.member.parameter.vo.*;
 import com.xcong.excoin.modules.member.service.MemberService;
@@ -274,17 +274,15 @@
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity memberEntity = memberDao.selectById(memberId);
         MemberInfoVo memberInfoVo = new MemberInfoVo();
+        
         if (ObjectUtil.isNotEmpty(memberEntity)) {
-            String email = memberEntity.getEmail();
-            String phone = memberEntity.getPhone();
-            if (StrUtil.isNotEmpty(phone)) {
-                memberInfoVo.setPhone(phone);
-            } else if (StrUtil.isNotEmpty(email)) {
-                memberInfoVo.setPhone(email);
-            }
-
+        	String address = memberEntity.getAddress();
+        	WtWallet wtWallet = wtWalletDao.selectSimpleById(address);
+        	String walletName = wtWallet.getWalletName();
+        	memberInfoVo.setWalletName(walletName);
             memberInfoVo.setInviteId(memberEntity.getInviteId());
         }
+        
         return Result.ok(memberInfoVo);
     }
 
@@ -451,30 +449,31 @@
 
     @Override
     @Transactional
-    public Result memberUpdateTradePwd(@Valid MemberUpdateTradePwdDto memberUpdateTradePwdDto) {
+    public Result memberUpdateTradePwd(@Valid MemberTradersPwdOutcenterDto memberTradersPwdOutcenterDto) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity memberEntity = memberDao.selectById(memberId);
 
-        String code = memberUpdateTradePwdDto.getCode();
-        String password = memberUpdateTradePwdDto.getPassword();
-        String account = memberUpdateTradePwdDto.getAccount();
-        String phone = memberEntity.getPhone();
-        String email = memberEntity.getEmail();
-        int type = memberUpdateTradePwdDto.getType();
-
-        //验证手机号或者邮箱是否是该账户绑定的手机号或者邮箱
-        if (MemberEntity.ACCOUNT_TYPE_PHONE.equals(type) && !phone.equals(account)) {
-            return Result.fail(MessageSourceUtils.getString("member_service_0041"));
+        String password = memberTradersPwdOutcenterDto.getPassword();
+        String mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
+        /**
+		 * 判断钱包是否存在
+		 */
+        if(StringUtils.isEmpty(mnemonicWordList)){
+        	return Result.fail(MessageSourceUtils.getString("login_recovery_001"));
         }
-        if (MemberEntity.ACCOUNT_TYPE_EMAIL.equals(type) && !email.equals(account)) {
-            return Result.fail(MessageSourceUtils.getString("member_service_0041"));
+        WtWallet wtWallet = wtWalletDao.selectByMnemonicWords(mnemonicWordList);
+        if(wtWallet==null){
+        	return Result.fail(MessageSourceUtils.getString("login_recovery_002"));
         }
 
-        boolean flag = commonservice.verifyCode(account, code);
+
+        boolean flag = true;
         if (flag) {
             memberEntity.setTradePassword(SecureUtil.md5(password));
             memberDao.updateById(memberEntity);
+            wtWallet.setPassword(SecureUtil.md5(password));
+            wtWalletDao.updateByModel(wtWallet);
             LoginUserUtils.resetAppLoginUser(memberEntity);
             return Result.ok(MessageSourceUtils.getString("member_service_0051"));
         }
@@ -492,24 +491,33 @@
             return Result.fail(MessageSourceUtils.getString("member_service_0003"));
         }
         String token = LoginUserUtils.getAppLoginUserToken();
-        redisUtils.del(AppContants.APP_LOGIN_PREFIX + token);
+        redisUtils.del(token);
         SecurityContextHolder.clearContext();
         return Result.ok(MessageSourceUtils.getString("member_service_0071"));
     }
 
     @Override
     @Transactional
-    public Result memberTradersPwd(@Valid MemberForgetPwdDto memberForgetPwdDto) {
+    public Result memberTradersPwd(@Valid MemberTradersPwdOutcenterDto memberTradersPwdOutcenterDto) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity memberEntity = memberDao.selectById(memberId);
 
-        String code = memberForgetPwdDto.getCode();
-        String password = memberForgetPwdDto.getPassword();
-        String account = memberForgetPwdDto.getAccount();
-        int type = memberForgetPwdDto.getType();
+        String password = memberTradersPwdOutcenterDto.getPassword();
+        String mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
+        /**
+		 * 判断钱包是否存在
+		 */
+        if(StringUtils.isEmpty(mnemonicWordList)){
+        	return Result.fail(MessageSourceUtils.getString("login_recovery_001"));
+        }
+        WtWallet wtWallet = wtWalletDao.selectByMnemonicWords(mnemonicWordList);
+        if(wtWallet==null){
+        	return Result.fail(MessageSourceUtils.getString("login_recovery_002"));
+        }
 
-        boolean flag = commonservice.verifyCode(account, code);
+        boolean flag = true;
+//        boolean flag = commonservice.verifyCode(account, code);
         if (flag) {
             memberEntity.setTradePassword(SecureUtil.md5(password));
             memberDao.updateById(memberEntity);
@@ -922,22 +930,26 @@
         return Result.ok("success");
     }
 
+    @Transactional
     @Override
     public Result memberSubmitCoinApply(@Valid MemberSubmitCoinApplyDto memberSubmitCoinApplyDto) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity member = memberDao.selectById(memberId);
         String golden_limit_transfer = redisUtils.getString("GOLDEN_LIMIT_TRANSFER");
-        // 判断是否限制
-        if(StringUtils.isNotBlank(member.getPhone()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getPhone())){
-            return Result.fail("此账号有财务问题,需联系客服");
+        // 判断是否限制[邀请码限制条件]
+        if(StringUtils.isNotBlank(member.getInviteId()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getInviteId())){
+        	return Result.fail("此账号有财务问题,需联系客服");
         }
-        if(StringUtils.isNotBlank(member.getEmail()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getEmail())){
-            return Result.fail("此账号有财务问题,需联系客服");
-        }
-        if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
-            return Result.fail(MessageSourceUtils.getString("member_service_0077"));
-        }
+//        if(StringUtils.isNotBlank(member.getPhone()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getPhone())){
+//            return Result.fail("此账号有财务问题,需联系客服");
+//        }
+//        if(StringUtils.isNotBlank(member.getEmail()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getEmail())){
+//            return Result.fail("此账号有财务问题,需联系客服");
+//        }
+//        if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) {
+//            return Result.fail(MessageSourceUtils.getString("member_service_0077"));
+//        }
         if (StrUtil.isEmpty(member.getTradePassword())) {
             return Result.fail(MessageSourceUtils.getString("member_service_0081"));
         }
@@ -948,7 +960,8 @@
             return Result.fail(MessageSourceUtils.getString("member_service_0082"));
         }
 
-        boolean flag = commonservice.verifyCode(memberSubmitCoinApplyDto.getAccount(), memberSubmitCoinApplyDto.getCode());
+        boolean flag = true;
+//        boolean flag = commonservice.verifyCode(memberSubmitCoinApplyDto.getAccount(), memberSubmitCoinApplyDto.getCode());
         if (flag) {
             MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyDto.getSymbol());
             BigDecimal availableBalance = walletCoin.getAvailableBalance();
@@ -1167,26 +1180,44 @@
 
         String inviteId = ShareCodeUtil.toSerialCode(member.getId());
         member.setInviteId(inviteId);
-
-//        boolean flag = false;
-//        String parentId = member.getRefererId();
-//        String ids = "";
-//        while (!flag && StringUtils.isNotBlank(parentId)) {
-//            ids += ("," + parentId);
-//            MemberEntity parentMember = memberDao.selectMemberInfoByInviteId(parentId);
-//            if (parentMember == null) {
-//                break;
-//            }
-//            parentId = parentMember.getRefererId();
-//            if(StringUtils.isBlank(parentId)){
-//                break;
-//            }
-//            if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
-//                flag = true;
-//            }
-//        }
-//        member.setRefererIds(ids);
+        
+        String refererId = outCenterRegisterDto.getRefererId();
+        if(StrUtil.isNotEmpty(refererId)) {
+        	MemberEntity selectMemberInfoByInviteId = memberDao.selectMemberInfoByInviteId(refererId);
+        	if(ObjectUtil.isNotEmpty(selectMemberInfoByInviteId)) {
+        		boolean flag = false;
+                String parentId = member.getRefererId();
+                String ids = "";
+                while (!flag && StringUtils.isNotBlank(parentId)) {
+                    ids += ("," + parentId);
+                    MemberEntity parentMember = memberDao.selectMemberInfoByInviteId(parentId);
+                    if (parentMember == null) {
+                        break;
+                    }
+                    parentId = parentMember.getRefererId();
+                    if(StringUtils.isBlank(parentId)){
+                        break;
+                    }
+                    if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
+                        flag = true;
+                    }
+                }
+                member.setRefererIds(ids);
+        	}
+        }
+        
         memberDao.updateById(member);
+
+        // 插入ser地址
+        MemberCoinAddressEntity coinAddress = new MemberCoinAddressEntity();
+        coinAddress.setAddress(address);
+        coinAddress.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_YES);
+        coinAddress.setMemberId(member.getId());
+        coinAddress.setPrivateKey(privateKey);
+        coinAddress.setSymbol(SymbolEnum.SER.name());
+        coinAddress.setLabel(member.getInviteId());
+        memberCoinAddressDao.insert(coinAddress);
+
 
         //初始化合约钱包
         MemberWalletContractEntity walletContract = new MemberWalletContractEntity();
@@ -1274,14 +1305,22 @@
 		/**
 		 * 判断钱包是否存在
 		 */
-        List<String> mnemonicWordList = wtWalletDto.getMnemonicWordList();
-        if(CollectionUtils.isEmpty(mnemonicWordList)){
+		String mnemonicWordList = wtWalletDto.getMnemonicWordList();
+        if(StringUtils.isEmpty(mnemonicWordList)){
         	return Result.fail(MessageSourceUtils.getString("login_recovery_001"));
         }
-        String mnemonicWords = ToolUtil.listToString(mnemonicWordList, ",");
-        WtWallet wtWallet = wtWalletDao.selectByMnemonicWords(mnemonicWords);
+        WtWallet wtWallet = wtWalletDao.selectByMnemonicWords(mnemonicWordList);
         if(wtWallet==null){
         	return Result.fail(MessageSourceUtils.getString("login_recovery_002"));
+        }
+        /**
+         * 资金密码验证
+         */
+        String pssword = wtWalletDto.getPassword();
+        String passwordToMD5 = MD5Util.strToMD5(pssword);
+        String passwordWallet = wtWallet.getPassword(); 
+        if(!passwordToMD5.equals(passwordWallet)) {
+        	return Result.fail(MessageSourceUtils.getString("login_recovery_004"));
         }
         
         /**
@@ -1293,6 +1332,7 @@
         loginVo.setAddressMd(strToMD5);
         Wrapper<MemberEntity> queryWrapperOrepool = new QueryWrapper<>();
         ((QueryWrapper<MemberEntity>) queryWrapperOrepool).eq("address", address);
+        ((QueryWrapper<MemberEntity>) queryWrapperOrepool).eq("trade_password", passwordToMD5);
         MemberEntity memberEntity = memberDao.selectOne(queryWrapperOrepool);
         if(ObjectUtil.isEmpty(memberEntity)) {
         	log.info("用户初始化");
@@ -1376,6 +1416,39 @@
         
         return Result.ok(loginVo);
 	}
+
+	@Override
+	public Result getMnemonicWordList() {
+		//获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        MemberEntity memberEntity = memberDao.selectById(memberId);
+        String address = memberEntity.getAddress();
+        WtWallet wtWallet = wtWalletDao.selectById(address);
+        
+        String mnemonicWords = wtWallet.getMnemonicWords();
+        String[] split = mnemonicWords.split(",");
+        List<String> list = new ArrayList<>();
+        for(String s : split){
+            list.add(s);
+        }
+        return Result.ok(list);
+	}
+
+	@Override
+	public Result getMemberTradeCode(String tradeCode) {
+		//获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        MemberEntity memberEntity = memberDao.selectById(memberId);
+        String tradePassword = memberEntity.getTradePassword();
+        if(StrUtil.isEmpty(tradePassword)) {
+        	return Result.fail(MessageSourceUtils.getString("member_controller_0002"));
+        }
+        if(!SecureUtil.md5(tradeCode).equals(tradePassword)) {
+        	return Result.fail(MessageSourceUtils.getString("member_controller_0004"));
+        }
+        
+        return Result.ok("");
+	}
 }
 
 

--
Gitblit v1.9.1