xiaoyong931011
2020-11-24 a2572574485ed006e715816d3e071e5f5bfd998f
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -15,19 +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.entity.WtToken;
import com.xcong.excoin.common.system.entity.WtWallet;
import com.xcong.excoin.common.system.entity.WtWalletDetail;
import com.xcong.excoin.common.system.dto.WtWalletDto;
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;
@@ -39,6 +40,7 @@
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;
@@ -450,27 +452,27 @@
    @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();
        List<String> mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
        /**
       * 判断钱包是否存在
       */
        if(CollectionUtils.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"));
        String mnemonicWords = ToolUtil.listToString(mnemonicWordList, ",");
        WtWallet wtWallet = wtWalletDao.selectByMnemonicWords(mnemonicWords);
        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);
@@ -498,17 +500,27 @@
    @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();
        List<String> mnemonicWordList = memberTradersPwdOutcenterDto.getMnemonicWordList();
        /**
       * 判断钱包是否存在
       */
        if(CollectionUtils.isEmpty(mnemonicWordList)){
           return Result.fail(MessageSourceUtils.getString("login_recovery_001"));
        }
        String mnemonicWords = ToolUtil.listToString(mnemonicWordList, ",");
        WtWallet wtWallet = wtWalletDao.selectByMnemonicWords(mnemonicWords);
        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);
@@ -927,16 +939,19 @@
        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"));
        }
@@ -947,7 +962,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();
@@ -1266,14 +1282,14 @@
   @Transactional
   @Override
   public Result recovery(WtWallet wallet) {
   public Result recovery(WtWalletDto wtWalletDto) {
      
      LoginVo loginVo = new LoginVo();
      
      /**
       * 判断钱包是否存在
       */
        List<String> mnemonicWordList = wallet.getMnemonicWordList();
        List<String> mnemonicWordList = wtWalletDto.getMnemonicWordList();
        if(CollectionUtils.isEmpty(mnemonicWordList)){
           return Result.fail(MessageSourceUtils.getString("login_recovery_001"));
        }
@@ -1300,8 +1316,8 @@
             */
          MemberEntity member = new MemberEntity();
          member.setAddress(address);
          member.setPassword(MD5Util.strToMD5(wallet.getPassword()));
            member.setTradePassword(MD5Util.strToMD5(wallet.getPassword()));
          member.setPassword(MD5Util.strToMD5(wtWalletDto.getPassword()));
            member.setTradePassword(MD5Util.strToMD5(wtWalletDto.getPassword()));
            member.setAccountStatus(MemberEntity.ACCOUNT_STATUS_ENABLE);
            member.setAccountType(MemberEntity.ACCOUNT_TYPE_NORMAL);
            member.setAgentLevel(MemberEntity.ACCOUNT_AGENT_LEVEL);
@@ -1375,6 +1391,23 @@
        
        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);
   }
}