xiaoyong931011
2020-11-30 78d39c4e43c80ea16cc96dc73d60c8880ac5020d
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -42,7 +42,6 @@
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;
@@ -275,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);
    }
@@ -458,15 +455,14 @@
        MemberEntity memberEntity = memberDao.selectById(memberId);
        String password = memberTradersPwdOutcenterDto.getPassword();
        List<String> mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
        String mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
        /**
       * 判断钱包是否存在
       */
        if(CollectionUtils.isEmpty(mnemonicWordList)){
        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"));
        }
@@ -476,6 +472,8 @@
        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"));
        }
@@ -493,7 +491,7 @@
            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"));
    }
@@ -506,15 +504,14 @@
        MemberEntity memberEntity = memberDao.selectById(memberId);
        String password = memberTradersPwdOutcenterDto.getPassword();
        List<String> mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
        String mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
        /**
       * 判断钱包是否存在
       */
        if(CollectionUtils.isEmpty(mnemonicWordList)){
        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"));
        }
@@ -933,6 +930,7 @@
        return Result.ok("success");
    }
    @Transactional
    @Override
    public Result memberSubmitCoinApply(@Valid MemberSubmitCoinApplyDto memberSubmitCoinApplyDto) {
        //获取用户ID
@@ -1182,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;
            }
        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);
           }
        }
        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();
@@ -1289,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"));
        }
        
        /**
@@ -1308,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("用户初始化");
@@ -1408,6 +1433,22 @@
        }
        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("");
   }
}