From 58bfbdd031c7c21e0767bbe4cead8b676d9a2e26 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 07 Dec 2020 10:34:20 +0800
Subject: [PATCH] modify
---
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