| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | |
| | | @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")); |
| | | } |
| | |
| | | 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); |
| | |
| | | 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")); |
| | | } |
| | |
| | | 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(); |
| | |
| | | |
| | | 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(); |
| | |
| | | /** |
| | | * 判断钱包是否存在 |
| | | */ |
| | | 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")); |
| | | } |
| | | |
| | | /** |
| | |
| | | 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("用户初始化"); |
| | |
| | | |
| | | 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(""); |
| | | } |
| | | } |
| | | |
| | | |