| | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.crypto.SecureUtil; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.xcong.excoin.common.LoginUserUtils; |
| | | import com.xcong.excoin.common.contants.AppContants; |
| | | import com.xcong.excoin.common.contants.WalletConstants; |
| | | 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.dto.OutCenterRegisterDto; |
| | | import com.xcong.excoin.common.system.dto.RegisterDto; |
| | | import com.xcong.excoin.common.system.dto.WtWalletDto; |
| | | import com.xcong.excoin.common.system.service.CommonService; |
| | | 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; |
| | |
| | | import com.xcong.excoin.modules.platform.dao.PlatformSymbolsCoinDao; |
| | | import com.xcong.excoin.modules.platform.entity.PlatformFeeSettingEntity; |
| | | import com.xcong.excoin.modules.platform.entity.PlatformSymbolsCoinEntity; |
| | | import com.xcong.excoin.utils.MD5Util; |
| | | import com.xcong.excoin.utils.MessageSourceUtils; |
| | | import com.xcong.excoin.utils.RedisUtils; |
| | | import com.xcong.excoin.utils.ShareCodeUtil; |
| | | import com.xcong.excoin.utils.ThreadPoolUtils; |
| | | import com.xcong.excoin.utils.ToolUtil; |
| | | import com.xcong.excoin.utils.UUIDUtil; |
| | | import com.xcong.excoin.utils.WordsUtil; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import org.apache.commons.collections.CollectionUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.security.core.context.SecurityContextHolder; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Random; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.validation.Valid; |
| | |
| | | |
| | | @Resource |
| | | MemberCoinWithdrawDao memberCoinWithdrawDao; |
| | | |
| | | |
| | | @Resource |
| | | AppVersionDao appVersionDao; |
| | | @Resource |
| | | private MemberSettingDao memberSettingDao; |
| | | |
| | | @Resource |
| | | private MemberWalletContractSimulateDao memberWalletContractSimulateDao; |
| | | |
| | | @Resource |
| | | private WtWalletDao wtWalletDao; |
| | | |
| | | @Resource |
| | | private WtWordDao wtWordDao; |
| | | |
| | | @Resource |
| | | private WtTokenDao wtTokenDao; |
| | | @Resource |
| | | private WalletDetailDao walletDetailDao; |
| | | |
| | | @Transactional() |
| | | @Override |
| | | public Result register(RegisterDto registerDto) { |
| | |
| | | // } |
| | | if (!AppContants.SYSTEM_REFERER.equals(registerDto.getRefererId())) { |
| | | MemberEntity isExist = memberDao.selectMemberInfoByInviteId(registerDto.getRefererId()); |
| | | if (isExist == null) { |
| | | return Result.fail("推荐人不存在"); |
| | | if (isExist != null) { |
| | | member.setRefererId(registerDto.getRefererId()); |
| | | } |
| | | } |
| | | |
| | | member.setRefererId(registerDto.getRefererId()); |
| | | member.setAccountStatus(MemberEntity.ACCOUNT_STATUS_ENABLE); |
| | | member.setAccountType(registerDto.getType()); |
| | | member.setAccountType(MemberEntity.ACCOUNT_TYPE_NORMAL); |
| | | member.setAgentLevel(MemberEntity.ACCOUNT_AGENT_LEVEL); |
| | | member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT); |
| | | member.setIsForce(0); |
| | | member.setIsForce(1); |
| | | member.setIsProfit(0); |
| | | member.setSpread(BigDecimal.ZERO); |
| | | memberDao.insert(member); |
| | | |
| | | MemberSettingEntity memberSettingEntity = new MemberSettingEntity(); |
| | | memberSettingEntity.setSpread(BigDecimal.ONE); |
| | | memberSettingEntity.setClosingSpread(BigDecimal.valueOf(5)); |
| | | memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0030)); |
| | | memberSettingEntity.setMemberId(member.getId()); |
| | | memberSettingDao.insert(memberSettingEntity); |
| | | |
| | | String inviteId = ShareCodeUtil.toSerialCode(member.getId()); |
| | | member.setInviteId(inviteId); |
| | |
| | | boolean flag = false; |
| | | String parentId = member.getRefererId(); |
| | | String ids = ""; |
| | | while (!flag) { |
| | | 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; |
| | | } |
| | |
| | | levelRate.setSymbol(symbolEnum.getValue()); |
| | | memberLevelRateDao.insert(levelRate); |
| | | } |
| | | return Result.ok("success"); |
| | | |
| | | return Result.ok(MessageSourceUtils.getString("home_service_0009")); |
| | | } |
| | | |
| | | @Override |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | //获取用户ID |
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId(); |
| | | MemberEntity member = memberDao.selectById(memberId); |
| | | if(MemberEntity.CERTIFY_STATUS_ING.equals(member.getCertifyStatus())) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_4000")); |
| | | } |
| | | if (MemberEntity.CERTIFY_STATUS_ING.equals(member.getCertifyStatus())) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_4000")); |
| | | } |
| | | if (ObjectUtil.isNotEmpty(member)) { |
| | | |
| | | MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity(); |
| | | |
| | | |
| | | MemberAuthenticationEntity memberAuthenticationEntity = new MemberAuthenticationEntity(); |
| | | |
| | | if (MemberEntity.CERTIFY_STATUS_Y == member.getCertifyStatus()) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0055")); |
| | | } |
| | |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0059")); |
| | | } |
| | | memberAuthenticationEntity.setSecondName(memberAuthenticationDto.getSecondName()); |
| | | |
| | | |
| | | String type = memberAuthenticationDto.getType(); |
| | | memberAuthenticationEntity.setType(type); |
| | | |
| | | |
| | | String idCardNo = memberAuthenticationDto.getIdCardNo(); |
| | | if (StrUtil.isBlank(idCardNo)) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0060")); |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0060")); |
| | | } |
| | | memberAuthenticationEntity.setIdcardNo(idCardNo); |
| | | //同一个身份证号码不能重复实名认证 |
| | | int count = memberAuthenticationDao.findMemberbyIdCardNoCount(idCardNo); |
| | | if (count > 0) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0060")); |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0060")); |
| | | } |
| | | // 同一个人只能认证一次 |
| | | int authenByMemberId = memberAuthenticationDao.findAuthenByMemberId(memberId); |
| | | if (authenByMemberId > 0) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0055")); |
| | | } |
| | | if (StrUtil.isBlank(memberAuthenticationDto.getIdCardFront()) |
| | | || StrUtil.isBlank(memberAuthenticationDto.getIdCardReverse()) |
| | |
| | | memberAuthenticationEntity.setIdcardImageFront(memberAuthenticationDto.getIdCardFront()); |
| | | memberAuthenticationEntity.setIdcardImageBack(memberAuthenticationDto.getIdCardReverse()); |
| | | memberAuthenticationEntity.setIdcardImageInHand(memberAuthenticationDto.getIdCardImage()); |
| | | |
| | | |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("member_id", memberId); |
| | | List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap); |
| | | if(CollUtil.isEmpty(selectByMap)) { |
| | | memberAuthenticationDao.insert(memberAuthenticationEntity); |
| | | }else { |
| | | memberAuthenticationEntity.setId(selectByMap.get(0).getId()); |
| | | memberAuthenticationDao.updateById(memberAuthenticationEntity); |
| | | } |
| | | columnMap.put("member_id", memberId); |
| | | List<MemberAuthenticationEntity> selectByMap = memberAuthenticationDao.selectByMap(columnMap); |
| | | if (CollUtil.isEmpty(selectByMap)) { |
| | | memberAuthenticationDao.insert(memberAuthenticationEntity); |
| | | } else { |
| | | memberAuthenticationEntity.setId(selectByMap.get(0).getId()); |
| | | memberAuthenticationDao.updateById(memberAuthenticationEntity); |
| | | } |
| | | |
| | | member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_ING); |
| | | member.setIdcardNo(idCardNo); |
| | | memberDao.updateById(member); |
| | | /** |
| | | * TODO dingtalk |
| | | |
| | | Constant.excutor.execute(new Runnable() { |
| | | @Override public void run() { |
| | | DingTalkUtils.sendActionCard(4); |
| | | } |
| | | });*/ |
| | | ThreadPoolUtils.sendDingTalk(4); |
| | | return Result.ok(MessageSourceUtils.getString("member_service_0024")); |
| | | } |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0063")); |
| | |
| | | |
| | | @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 |
| | | MemberEntity memberEntity = LoginUserUtils.getAppLoginUser(); |
| | | 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); |
| | |
| | | if (!MemberEntity.CERTIFY_STATUS_Y.equals(member.getCertifyStatus())) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0077")); |
| | | } |
| | | |
| | | |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("member_id", memberId); |
| | | List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap); |
| | | if(CollUtil.isNotEmpty(selectByMap)) { |
| | | for(MemberPaymentMethodEntity memberPaymentMethodEntity : selectByMap) { |
| | | if(memberPaymethodDto.getAccount().equals(memberPaymentMethodEntity.getAccount())) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0097")); |
| | | } |
| | | } |
| | | } |
| | | List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap); |
| | | if (CollUtil.isNotEmpty(selectByMap)) { |
| | | for (MemberPaymentMethodEntity memberPaymentMethodEntity : selectByMap) { |
| | | if (memberPaymethodDto.getAccount().equals(memberPaymentMethodEntity.getAccount())) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0097")); |
| | | } |
| | | } |
| | | } |
| | | String account = memberPaymethodDto.getAccount(); |
| | | String bank = memberPaymethodDto.getBank(); |
| | | String name = memberPaymethodDto.getName(); |
| | |
| | | @Override |
| | | @Transactional |
| | | public Result memberBindPhone(@Valid MemberBindPhoneDto memberBindPhoneDto) { |
| | | //获取用户ID |
| | | //获取用户ID |
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId(); |
| | | String phone = memberBindPhoneDto.getPhone(); |
| | | String code = memberBindPhoneDto.getCode(); |
| | |
| | | MemberEntity member = memberDao.selectById(memberId); |
| | | |
| | | if (ObjectUtil.isNotEmpty(member)) { |
| | | if (!commonservice.verifyCode(phone, code)) { |
| | | if (!commonservice.mutiVerifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode(), phone, code)) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0013")); |
| | | } |
| | | // 验证邮箱验证码 |
| | | // if (!commonservice.verifyCode(member.getEmail(), memberBindPhoneDto.getOtherCode())) { |
| | | // return Result.fail("邮箱"+MessageSourceUtils.getString("member_service_0013")); |
| | | // } |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("phone", phone); |
| | | List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap ); |
| | | if(CollUtil.isEmpty(selectByMap)) { |
| | | member.setPhone(phone); |
| | | memberDao.updateById(member); |
| | | return Result.ok(MessageSourceUtils.getString("member_service_0014")); |
| | | }else { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_1400")); |
| | | List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap); |
| | | if (CollUtil.isEmpty(selectByMap)) { |
| | | member.setPhone(phone); |
| | | memberDao.updateById(member); |
| | | return Result.ok(MessageSourceUtils.getString("member_service_0014")); |
| | | } else { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_1400")); |
| | | } |
| | | } |
| | | |
| | |
| | | @Transactional |
| | | public Result memberBindEmail(@Valid MemberBindEmailDto memberBindEmailDto) { |
| | | |
| | | //获取用户ID |
| | | //获取用户ID |
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId(); |
| | | String email = memberBindEmailDto.getEmail(); |
| | | String code = memberBindEmailDto.getCode(); |
| | | |
| | | MemberEntity member = memberDao.selectById(memberId); |
| | | boolean flag = commonservice.verifyCode(email, code); |
| | | boolean flag = commonservice.mutiVerifyCode(email, code, member.getPhone(), memberBindEmailDto.getOtherCode()); |
| | | // boolean flag2 = commonservice.verifyCode(member.getPhone(), memberBindEmailDto.getOtherCode()); |
| | | if(!flag){ |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0013")); |
| | | } |
| | | // if(!flag2){ |
| | | // return Result.fail("手机"+MessageSourceUtils.getString("member_service_0013")); |
| | | // } |
| | | if (ObjectUtil.isNotEmpty(member)) { |
| | | if (flag) { |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("email", email); |
| | | List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap ); |
| | | if(CollUtil.isEmpty(selectByMap)) { |
| | | member.setEmail(email); |
| | | List<MemberEntity> selectByMap = memberDao.selectByMap(columnMap); |
| | | if (CollUtil.isEmpty(selectByMap)) { |
| | | member.setEmail(email); |
| | | memberDao.updateById(member); |
| | | return Result.ok(MessageSourceUtils.getString("member_service_0018")); |
| | | }else { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_1400")); |
| | | } else { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_1400")); |
| | | } |
| | | } |
| | | } |
| | |
| | | MemberCoinAddressEntity memberCoinAddressEntity = new MemberCoinAddressEntity(); |
| | | memberCoinAddressEntity.setAddress(address); |
| | | memberCoinAddressEntity.setMemberId(memberId); |
| | | memberCoinAddressEntity.setIsBiyict(isBiyict); |
| | | memberCoinAddressEntity.setIsBiyict(MemberCoinAddressEntity.IS_BIYICT_NO); |
| | | memberCoinAddressEntity.setSymbolscoinId(symbolscoinId); |
| | | memberCoinAddressEntity.setLabel(remark); |
| | | memberCoinAddressEntity.setSymbol(platformSymbolsCoinEntity.getName()); |
| | |
| | | MemberEntity member = memberDao.selectById(memberId); |
| | | |
| | | MemberPersonCenterInfoVo memberPersonCenterInfoVo = new MemberPersonCenterInfoVo(); |
| | | |
| | | |
| | | Integer certifyStatus = member.getCertifyStatus(); |
| | | memberPersonCenterInfoVo.setCertifyStatus(certifyStatus); |
| | | |
| | | |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("member_id", memberId); |
| | | List<MemberPaymentMethodEntity> selectByMap = memberPaymentMethodDao.selectByMap(columnMap); |
| | | if(CollUtil.isEmpty(selectByMap)) { |
| | | memberPersonCenterInfoVo.setMemberPaymentMethod(0); |
| | | }else { |
| | | memberPersonCenterInfoVo.setMemberPaymentMethod(1); |
| | | if (CollUtil.isEmpty(selectByMap)) { |
| | | memberPersonCenterInfoVo.setMemberPaymentMethod(0); |
| | | } else { |
| | | memberPersonCenterInfoVo.setMemberPaymentMethod(1); |
| | | } |
| | | |
| | | |
| | | if (StrUtil.isNotEmpty(member.getPhone())) { |
| | | memberPersonCenterInfoVo.setPhone(1); |
| | | } else { |
| | |
| | | } |
| | | |
| | | List<MemberAvivableCoinInfoVo> arrayList = new ArrayList<>(); |
| | | |
| | | |
| | | List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol); |
| | | |
| | | |
| | | List<PlatformFeeSettingEntity> feeSettingByTypeAndSymbolLable = platformFeeSettingDao.getFeeSettingsByTypeAndSymbol(2, symbol); |
| | | if (CollUtil.isEmpty(feeSettingByTypeAndSymbolLable)) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0087")); |
| | | } |
| | | for(PlatformFeeSettingEntity platformFeeSettingEntity : feeSettingByTypeAndSymbolLable) { |
| | | MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo(); |
| | | memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance()); |
| | | memberAvivableCoinInfoVo.setFee(platformFeeSettingEntity.getFeePrice()); |
| | | memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable()); |
| | | arrayList.add(memberAvivableCoinInfoVo); |
| | | for (PlatformFeeSettingEntity platformFeeSettingEntity : feeSettingByTypeAndSymbolLable) { |
| | | MemberAvivableCoinInfoVo memberAvivableCoinInfoVo = new MemberAvivableCoinInfoVo(); |
| | | memberAvivableCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance()); |
| | | memberAvivableCoinInfoVo.setFee(platformFeeSettingEntity.getFeePrice()); |
| | | memberAvivableCoinInfoVo.setLable(platformFeeSettingEntity.getLable()); |
| | | arrayList.add(memberAvivableCoinInfoVo); |
| | | } |
| | | |
| | | |
| | | return Result.ok(arrayList); |
| | | } |
| | | |
| | |
| | | return Result.ok("success"); |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public Result memberSubmitCoinApply(@Valid MemberSubmitCoinApplyDto memberSubmitCoinApplyDto) { |
| | | //获取用户ID |
| | | Long memberId = LoginUserUtils.getAppLoginUser().getId(); |
| | | MemberEntity member = memberDao.selectById(memberId); |
| | | if (member.getCertifyStatus() != MemberEntity.CERTIFY_STATUS_Y) { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0077")); |
| | | String golden_limit_transfer = redisUtils.getString("GOLDEN_LIMIT_TRANSFER"); |
| | | // 判断是否限制[邀请码限制条件] |
| | | if(StringUtils.isNotBlank(member.getInviteId()) &&StringUtils.isNotBlank(golden_limit_transfer) && golden_limit_transfer.contains(member.getInviteId())){ |
| | | return Result.fail("此账号有财务问题,需联系客服"); |
| | | } |
| | | // 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(); |
| | |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | columnMap.put("symbol", memberSubmitCoinApplyDto.getSymbol()); |
| | | columnMap.put("address", memberSubmitCoinApplyDto.getAddress()); |
| | | columnMap.put("is_biyict", MemberCoinAddressEntity.IS_BIYICT_YES); |
| | | List<MemberCoinAddressEntity> selectByMap = memberCoinAddressDao.selectByMap(columnMap); |
| | | if (CollUtil.isEmpty(selectByMap)) { |
| | | memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_NO); |
| | |
| | | accountRecord.setContent("提币"); |
| | | accountRecord.setMemberId(memberId); |
| | | accountRecord.setAmount(coinNumber); |
| | | accountRecord.setWithdrawId(memberCoinWithdrawEntity.getId()); |
| | | accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER); |
| | | accountRecord.setSymbol(memberSubmitCoinApplyDto.getSymbol()); |
| | | accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); |
| | | memberAccountMoneyChangeDao.insert(accountRecord); |
| | | /** |
| | | * TODO dingtalk |
| | | Constant.excutor.execute(new Runnable() { |
| | | @Override public void run() { |
| | | DingTalkUtils.sendActionCard(3); |
| | | } |
| | | }); |
| | | */ |
| | | |
| | | ThreadPoolUtils.sendDingTalk(3); |
| | | return Result.ok(MessageSourceUtils.getString("member_service_0086")); |
| | | } else { |
| | | return Result.fail(MessageSourceUtils.getString("member_service_0005")); |
| | |
| | | return Result.ok(""); |
| | | } |
| | | |
| | | @Override |
| | | public Result getAppVersionInfo() { |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); |
| | | List<Object> arrayList = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(selectByMap)) { |
| | | for (AppVersionEntity appVersionEntity : selectByMap) { |
| | | AppVersionVo appVersionVo = new AppVersionVo(); |
| | | appVersionVo.setAddress(appVersionEntity.getAddress()); |
| | | appVersionVo.setType(appVersionEntity.getType()); |
| | | appVersionVo.setVersion(appVersionEntity.getVersion()); |
| | | arrayList.add(appVersionVo); |
| | | } |
| | | } |
| | | return Result.ok(arrayList); |
| | | } |
| | | |
| | | @Override |
| | | public Result getPcVersionInfo() { |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); |
| | | List<Object> arrayList = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(selectByMap)) { |
| | | for (AppVersionEntity appVersionEntity : selectByMap) { |
| | | AppVersionVo appVersionVo = new AppVersionVo(); |
| | | appVersionVo.setAddress(appVersionEntity.getAddress()); |
| | | appVersionVo.setType(appVersionEntity.getType()); |
| | | appVersionVo.setVersion(appVersionEntity.getVersion()); |
| | | arrayList.add(appVersionVo); |
| | | } |
| | | } |
| | | return Result.ok(arrayList); |
| | | } |
| | | |
| | | @Transactional() |
| | | @Override |
| | | public Result getAppVersionInfo() { |
| | | Map<String, Object> columnMap = new HashMap<>(); |
| | | List<AppVersionEntity> selectByMap = appVersionDao.selectByMap(columnMap); |
| | | List<Object> arrayList = new ArrayList<>(); |
| | | if(CollUtil.isNotEmpty(selectByMap)) { |
| | | for(AppVersionEntity appVersionEntity : selectByMap) { |
| | | AppVersionVo appVersionVo = new AppVersionVo(); |
| | | appVersionVo.setAddress(appVersionEntity.getAddress()); |
| | | appVersionVo.setType(appVersionEntity.getType()); |
| | | appVersionVo.setVersion(appVersionEntity.getVersion()); |
| | | arrayList.add(appVersionVo); |
| | | } |
| | | } |
| | | return Result.ok(arrayList); |
| | | public Result registerOutCenter(OutCenterRegisterDto outCenterRegisterDto) { |
| | | LoginVo loginVo = new LoginVo(); |
| | | log.info("钱包初始化"); |
| | | /** |
| | | * 钱包初始化 |
| | | */ |
| | | // 创建钱包需要先清除这个设备之前的钱包 |
| | | //wtWalletDao.deleteTerminal(outCenterRegisterDto.getTerminalId()); |
| | | WtWallet wtWallet = new WtWallet(); |
| | | wtWallet.setWalletName(outCenterRegisterDto.getWalletName()); |
| | | wtWallet.setTerminalId(outCenterRegisterDto.getTerminalId()); |
| | | wtWallet.setPassword(MD5Util.strToMD5(outCenterRegisterDto.getPassword())); |
| | | // 校验钱包名和密码 |
| | | // 得到助记词 |
| | | List<String> words = getWords(); |
| | | wtWallet.setMnemonicWordList(words); |
| | | loginVo.setMnemonicWordList(words); |
| | | if(CollectionUtils.isEmpty(words)){ |
| | | // 报错 不能生成钱包 |
| | | return Result.fail(MessageSourceUtils.getString("login_init")); |
| | | } |
| | | // 创建钱包 |
| | | // 生成钱包地址和私钥 34 52 42 64 |
| | | // 公链钱包地址36位 私钥 46 |
| | | String randomID = UUIDUtil.getRandomID(); |
| | | String address = WalletConstants.ADDRESS_PREFIX+randomID; |
| | | String privateKey = (UUIDUtil.getRandomID()+UUIDUtil.getRandomID()).substring(0,46); |
| | | wtWallet.setAddress(address); |
| | | loginVo.setAddress(address); |
| | | String strToMD5 = MD5Util.strToMD5(address); |
| | | loginVo.setAddressMd(strToMD5); |
| | | |
| | | wtWallet.setPrivateKey(privateKey); |
| | | wtWallet.setMnemonicWords(ToolUtil.listToString(words,",")); |
| | | wtWalletDao.insert(wtWallet); |
| | | // 同时需要创建各个token |
| | | List<WtToken> wtTokens = wtTokenDao.selectAllToken(); |
| | | List<WtWalletDetail> wtWalletDetails = new ArrayList<>(); |
| | | WtWalletDetail wtWalletDetail = null; |
| | | if(CollectionUtils.isNotEmpty(wtTokens)){ |
| | | for(WtToken token : wtTokens){ |
| | | wtWalletDetail = new WtWalletDetail(); |
| | | String symbol = token.getSymbol(); |
| | | wtWalletDetail.setAddress(address); |
| | | wtWalletDetail.setBalance(BigDecimal.ZERO); |
| | | wtWalletDetail.setSymbol(symbol); |
| | | wtWalletDetail.setMain(token.getMain()); |
| | | wtWalletDetail.setIsShow(0); |
| | | wtWalletDetails.add(wtWalletDetail); |
| | | } |
| | | walletDetailDao.batchInsert(wtWalletDetails); |
| | | } |
| | | // 置空敏感信息 |
| | | wtWallet.setTerminalId(null); |
| | | wtWallet.setPassword(null); |
| | | wtWallet.setPrivateKey(null); |
| | | // 查询是否存在该账号用户 |
| | | // MemberEntity member = memberDao.selectMemberInfoByAccount(registerDto.getAccount()); |
| | | // if (member != null) { |
| | | // return Result.fail("账号已存在"); |
| | | // } |
| | | |
| | | // boolean isTrue = commonservice.verifyCode(registerDto.getAccount(), registerDto.getCode()); |
| | | // if (!isTrue) { |
| | | // return Result.fail(MessageSourceUtils.getString("common_verify_code")); |
| | | // } |
| | | |
| | | log.info("用户初始化"); |
| | | /** |
| | | * 用户初始化 |
| | | */ |
| | | MemberEntity member = new MemberEntity(); |
| | | member.setAddress(address); |
| | | member.setPassword(SecureUtil.md5(outCenterRegisterDto.getPassword())); |
| | | member.setTradePassword(SecureUtil.md5(outCenterRegisterDto.getPassword())); |
| | | |
| | | // 判断账号类型 |
| | | // if (MemberEntity.ACCOUNT_TYPE_PHONE.equals(registerDto.getType())) { |
| | | // member.setPhone(registerDto.getAccount()); |
| | | // } else if (MemberEntity.ACCOUNT_TYPE_EMAIL.equals(registerDto.getType())) { |
| | | // member.setEmail(registerDto.getAccount()); |
| | | // } else { |
| | | // return Result.fail("账号类型错误"); |
| | | // } |
| | | |
| | | // 判断是否拥有推荐人,若为空则默认系统 |
| | | // if (StrUtil.isBlank(registerDto.getRefererId())) { |
| | | // registerDto.setRefererId(AppContants.SYSTEM_REFERER); |
| | | // } |
| | | // if (!AppContants.SYSTEM_REFERER.equals(outCenterRegisterDto.getRefererId())) { |
| | | // MemberEntity isExist = memberDao.selectMemberInfoByInviteId(outCenterRegisterDto.getRefererId()); |
| | | // if (isExist != null) { |
| | | // member.setRefererId(outCenterRegisterDto.getRefererId()); |
| | | // } |
| | | // } |
| | | member.setAccountStatus(MemberEntity.ACCOUNT_STATUS_ENABLE); |
| | | member.setAccountType(MemberEntity.ACCOUNT_TYPE_NORMAL); |
| | | member.setAgentLevel(MemberEntity.ACCOUNT_AGENT_LEVEL); |
| | | member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT); |
| | | member.setIsForce(1); |
| | | member.setIsProfit(0); |
| | | memberDao.insert(member); |
| | | |
| | | MemberSettingEntity memberSettingEntity = new MemberSettingEntity(); |
| | | memberSettingEntity.setSpread(BigDecimal.ONE); |
| | | memberSettingEntity.setClosingSpread(BigDecimal.valueOf(5)); |
| | | memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0030)); |
| | | memberSettingEntity.setMemberId(member.getId()); |
| | | memberSettingDao.insert(memberSettingEntity); |
| | | |
| | | String inviteId = ShareCodeUtil.toSerialCode(member.getId()); |
| | | member.setInviteId(inviteId); |
| | | |
| | | 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(); |
| | | walletContract.setMemberId(member.getId()); |
| | | walletContract.setAvailableBalance(AppContants.INIT_MONEY); |
| | | walletContract.setFrozenBalance(AppContants.INIT_MONEY); |
| | | walletContract.setTotalBalance(AppContants.INIT_MONEY); |
| | | walletContract.setBorrowedFund(AppContants.INIT_MONEY); |
| | | walletContract.setWalletCode(CoinTypeEnum.USDT.name()); |
| | | memberWalletContractDao.insert(walletContract); |
| | | |
| | | MemberWalletContractSimulateEntity walletContractSimulate = new MemberWalletContractSimulateEntity(); |
| | | walletContractSimulate.setMemberId(member.getId()); |
| | | walletContractSimulate.setAvailableBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); |
| | | walletContractSimulate.setTotalBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); |
| | | walletContractSimulate.setFrozenBalance(AppContants.INIT_MONEY); |
| | | walletContractSimulate.setBorrowedFund(AppContants.INIT_MONEY); |
| | | walletContractSimulate.setWalletCode(CoinTypeEnum.USDT.name()); |
| | | memberWalletContractSimulateDao.insert(walletContractSimulate); |
| | | |
| | | |
| | | // 初始化币币钱包 |
| | | for (CoinTypeEnum coinTypeEnum : CoinTypeEnum.values()) { |
| | | MemberWalletCoinEntity walletCoin = new MemberWalletCoinEntity(); |
| | | walletCoin.setWalletCode(coinTypeEnum.name()); |
| | | walletCoin.setMemberId(member.getId()); |
| | | walletCoin.setAvailableBalance(AppContants.INIT_MONEY); |
| | | walletCoin.setFrozenBalance(AppContants.INIT_MONEY); |
| | | walletCoin.setTotalBalance(AppContants.INIT_MONEY); |
| | | walletCoin.setBorrowedFund(AppContants.INIT_MONEY); |
| | | memberWalletCoinDao.insert(walletCoin); |
| | | } |
| | | |
| | | // 初始化代理佣金钱包 |
| | | MemberWalletAgentEntity walletAgent = new MemberWalletAgentEntity(); |
| | | walletAgent.setMemberId(member.getId()); |
| | | walletAgent.setWalletCode(CoinTypeEnum.USDT.name()); |
| | | memberWalletAgentDao.insert(walletAgent); |
| | | |
| | | // 初始化杠杆 |
| | | for (SymbolEnum symbolEnum : SymbolEnum.values()) { |
| | | MemberLevelRateEntity levelRate = new MemberLevelRateEntity(); |
| | | levelRate.setMemberId(member.getId()); |
| | | levelRate.setSymbol(symbolEnum.getValue()); |
| | | memberLevelRateDao.insert(levelRate); |
| | | } |
| | | //加密地址为key,member为value |
| | | redisUtils.set(strToMD5, JSONObject.toJSONString(member)); |
| | | return Result.ok(loginVo); |
| | | } |
| | | |
| | | public List<String> getWords(){ |
| | | if(CollectionUtils.isEmpty(WordsUtil.words_list)){ |
| | | WordsUtil.words_list = wtWordDao.selectAllWords(); |
| | | } |
| | | // 随机得12个单词 |
| | | if(CollectionUtils.isEmpty(WordsUtil.words_list)){ |
| | | throw new RuntimeException("error"); |
| | | } |
| | | int size = WordsUtil.words_list.size(); |
| | | Random random = new Random(); |
| | | // 获得12个单词 |
| | | List<String> zjc = new ArrayList<>(12); |
| | | boolean loop = true; |
| | | while (loop){ |
| | | int randInt = random.nextInt(size - 1); |
| | | // 根据得到的随机数去取 |
| | | String s = WordsUtil.words_list.get(randInt); |
| | | if(!zjc.contains(s)){ |
| | | zjc.add(s); |
| | | } |
| | | if(zjc.size()>=12){ |
| | | loop = false; |
| | | } |
| | | } |
| | | return zjc; |
| | | } |
| | | |
| | | @Transactional |
| | | @Override |
| | | public Result recovery(WtWalletDto wtWalletDto) { |
| | | |
| | | LoginVo loginVo = new LoginVo(); |
| | | |
| | | /** |
| | | * 判断钱包是否存在 |
| | | */ |
| | | String mnemonicWordList = wtWalletDto.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")); |
| | | } |
| | | /** |
| | | * 资金密码验证 |
| | | */ |
| | | 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")); |
| | | } |
| | | |
| | | /** |
| | | * 通过地址获取该用户是否存在 |
| | | */ |
| | | String address = wtWallet.getAddress(); |
| | | String strToMD5 = MD5Util.strToMD5(address); |
| | | loginVo.setAddress(address); |
| | | 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("用户初始化"); |
| | | /** |
| | | * 用户初始化 |
| | | */ |
| | | MemberEntity member = new MemberEntity(); |
| | | member.setAddress(address); |
| | | 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); |
| | | member.setCertifyStatus(MemberEntity.CERTIFY_STATUS_UN_SUBMIT); |
| | | member.setIsForce(1); |
| | | member.setIsProfit(0); |
| | | memberDao.insert(member); |
| | | |
| | | MemberSettingEntity memberSettingEntity = new MemberSettingEntity(); |
| | | memberSettingEntity.setSpread(BigDecimal.ONE); |
| | | memberSettingEntity.setClosingSpread(BigDecimal.valueOf(5)); |
| | | memberSettingEntity.setForceParam(BigDecimal.valueOf(0.0030)); |
| | | memberSettingEntity.setMemberId(member.getId()); |
| | | memberSettingDao.insert(memberSettingEntity); |
| | | |
| | | String inviteId = ShareCodeUtil.toSerialCode(member.getId()); |
| | | member.setInviteId(inviteId); |
| | | memberDao.updateById(member); |
| | | |
| | | //初始化合约钱包 |
| | | MemberWalletContractEntity walletContract = new MemberWalletContractEntity(); |
| | | walletContract.setMemberId(member.getId()); |
| | | walletContract.setAvailableBalance(AppContants.INIT_MONEY); |
| | | walletContract.setFrozenBalance(AppContants.INIT_MONEY); |
| | | walletContract.setTotalBalance(AppContants.INIT_MONEY); |
| | | walletContract.setBorrowedFund(AppContants.INIT_MONEY); |
| | | walletContract.setWalletCode(CoinTypeEnum.USDT.name()); |
| | | memberWalletContractDao.insert(walletContract); |
| | | |
| | | MemberWalletContractSimulateEntity walletContractSimulate = new MemberWalletContractSimulateEntity(); |
| | | walletContractSimulate.setMemberId(member.getId()); |
| | | walletContractSimulate.setAvailableBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); |
| | | walletContractSimulate.setTotalBalance(new BigDecimal(AppContants.INIT_SIMULATE_MONEY)); |
| | | walletContractSimulate.setFrozenBalance(AppContants.INIT_MONEY); |
| | | walletContractSimulate.setBorrowedFund(AppContants.INIT_MONEY); |
| | | walletContractSimulate.setWalletCode(CoinTypeEnum.USDT.name()); |
| | | memberWalletContractSimulateDao.insert(walletContractSimulate); |
| | | |
| | | |
| | | // 初始化币币钱包 |
| | | for (CoinTypeEnum coinTypeEnum : CoinTypeEnum.values()) { |
| | | MemberWalletCoinEntity walletCoin = new MemberWalletCoinEntity(); |
| | | walletCoin.setWalletCode(coinTypeEnum.name()); |
| | | walletCoin.setMemberId(member.getId()); |
| | | walletCoin.setAvailableBalance(AppContants.INIT_MONEY); |
| | | walletCoin.setFrozenBalance(AppContants.INIT_MONEY); |
| | | walletCoin.setTotalBalance(AppContants.INIT_MONEY); |
| | | walletCoin.setBorrowedFund(AppContants.INIT_MONEY); |
| | | memberWalletCoinDao.insert(walletCoin); |
| | | } |
| | | |
| | | // 初始化代理佣金钱包 |
| | | MemberWalletAgentEntity walletAgent = new MemberWalletAgentEntity(); |
| | | walletAgent.setMemberId(member.getId()); |
| | | walletAgent.setWalletCode(CoinTypeEnum.USDT.name()); |
| | | memberWalletAgentDao.insert(walletAgent); |
| | | |
| | | // 初始化杠杆 |
| | | for (SymbolEnum symbolEnum : SymbolEnum.values()) { |
| | | MemberLevelRateEntity levelRate = new MemberLevelRateEntity(); |
| | | levelRate.setMemberId(member.getId()); |
| | | levelRate.setSymbol(symbolEnum.getValue()); |
| | | memberLevelRateDao.insert(levelRate); |
| | | } |
| | | |
| | | //加密地址为key,member为value |
| | | redisUtils.set(strToMD5, JSONObject.toJSONString(member)); |
| | | }else { |
| | | redisUtils.set(strToMD5, JSONObject.toJSONString(memberEntity)); |
| | | } |
| | | |
| | | 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(""); |
| | | } |
| | | } |
| | | |