From f50a44247369c38e404ad962d341b2d66852a53c Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 24 Nov 2020 11:52:39 +0800 Subject: [PATCH] 20201124 --- src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyDto.java | 12 ++-- src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 92 ++++++++++++++++++++---------- src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java | 4 src/main/java/com/xcong/excoin/common/system/dto/OutCenterRegisterDto.java | 7 ++ src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 22 ++++++- src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberTradersPwdOutcenterDto.java | 24 ++++++++ src/main/java/com/xcong/excoin/modules/member/service/MemberService.java | 7 + 7 files changed, 124 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/xcong/excoin/common/system/dto/OutCenterRegisterDto.java b/src/main/java/com/xcong/excoin/common/system/dto/OutCenterRegisterDto.java index a768ea2..4b51ea3 100644 --- a/src/main/java/com/xcong/excoin/common/system/dto/OutCenterRegisterDto.java +++ b/src/main/java/com/xcong/excoin/common/system/dto/OutCenterRegisterDto.java @@ -1,5 +1,7 @@ package com.xcong.excoin.common.system.dto; +import javax.validation.constraints.NotNull; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,10 +12,15 @@ @ApiModelProperty(value = "推荐人Uid", example = "rxadr3") private String refererId; + + @NotNull(message = "资金交易密码不能为空") @ApiModelProperty(value = "资金交易密码", example = "1qazwsx") private String password; + + @ApiModelProperty(value = "钱包名称", example = "qwer") private String walletName; + @ApiModelProperty(value = "终端ID", example = "21220sdsf") private String terminalId; diff --git a/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java b/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java index 5ed6bcb..832e456 100644 --- a/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java +++ b/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java @@ -55,9 +55,9 @@ String redisKey = ""; // 根据user-agent判断pc端还是app端 if (LoginUserUtils.isBrowser(request)) { - redisKey = token; + redisKey = AppContants.APP_LOGIN_PREFIX + token;; } else { - redisKey = token; + redisKey = AppContants.APP_LOGIN_PREFIX + token;; } String loginStr = (String) redisUtils.get(redisKey); diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java index d5b3381..c39e248 100644 --- a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java +++ b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java @@ -20,6 +20,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; @@ -117,6 +118,19 @@ } /** + * 获取对应的助记词 + * @return + */ + @ApiOperation(value="获取对应的助记词", notes="获取对应的助记词") + @ApiImplicitParams({ + @ApiImplicitParam(name = "address", value = "地址", required = true, dataType = "String", paramType="query"), + }) + @GetMapping(value = "/getMnemonicWordList") + public Result getMnemonicWordList(String address) { + return memberService.getMnemonicWordList(address); + } + + /** * 修改密码 * @return */ @@ -165,8 +179,8 @@ */ @ApiOperation(value="修改资金密码", notes="修改资金密码") @PostMapping(value="/memberUpdateTradePwd") - public Result memberUpdateTradePwd(@RequestBody @Valid MemberUpdateTradePwdDto memberUpdateTradePwdDto) { - return memberService.memberUpdateTradePwd(memberUpdateTradePwdDto); + public Result memberUpdateTradePwd(@RequestBody @Valid MemberTradersPwdOutcenterDto memberTradersPwdOutcenterDto) { + return memberService.memberUpdateTradePwd(memberTradersPwdOutcenterDto); } /** @@ -188,8 +202,8 @@ */ @ApiOperation(value="设置交易密码", notes="设置交易密码") @PostMapping(value="/memberTradersPwd") - public Result memberTradersPwd(@RequestBody @Valid MemberForgetPwdDto memberForgetPwdDto) { - return memberService.memberTradersPwd(memberForgetPwdDto); + public Result memberTradersPwd(@RequestBody @Valid MemberTradersPwdOutcenterDto memberTradersPwdOutcenterDto) { + return memberService.memberTradersPwd(memberTradersPwdOutcenterDto); } /** diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyDto.java index 5d4fa7b..b5ec250 100644 --- a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyDto.java +++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyDto.java @@ -28,13 +28,13 @@ @ApiModelProperty(value = "交易密码", example = "123456") private String tradePassword; - @NotNull(message = "验证码不能为空") - @ApiModelProperty(value = "验证码", example = "123456") - private String code; +// @NotNull(message = "验证码不能为空") +// @ApiModelProperty(value = "验证码", example = "123456") +// private String code; - @NotNull(message = "验证方式不能为空") - @ApiModelProperty(value = "验证方式", example = "13412341234") - private String account; +// @NotNull(message = "验证方式不能为空") +// @ApiModelProperty(value = "验证方式", example = "13412341234") +// private String account; @NotNull(message = "币种不能为空") @ApiModelProperty(value = "币种", example = "BTC") diff --git a/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberTradersPwdOutcenterDto.java b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberTradersPwdOutcenterDto.java new file mode 100644 index 0000000..503bf6d --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberTradersPwdOutcenterDto.java @@ -0,0 +1,24 @@ +package com.xcong.excoin.modules.member.parameter.dto; + +import java.util.List; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "MemberTradersPwdOutcenterDto", description = "忘记密码参数接收类") +public class MemberTradersPwdOutcenterDto { + + @NotNull(message = "新密码不能为空") + @ApiModelProperty(value = "新密码", example = "qq123456") + private String password; + + @ApiModelProperty(value = "助记词 ", example = "13412341234") + @NotBlank(message = "助记词不能为空") + private List<String> mnemonicWordList; + +} diff --git a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java index 2b01e95..4f62d6a 100644 --- a/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java +++ b/src/main/java/com/xcong/excoin/modules/member/service/MemberService.java @@ -17,6 +17,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; @@ -40,11 +41,11 @@ public Result memberUpdatePwd(@Valid MemberUpdatePwdDto memberUpdatePwdDto); - public Result memberUpdateTradePwd(@Valid MemberUpdateTradePwdDto memberUpdateTradePwdDto); + public Result memberUpdateTradePwd(@Valid MemberTradersPwdOutcenterDto memberTradersPwdOutcenterDto); public Result memberLogout(); - public Result memberTradersPwd(@Valid MemberForgetPwdDto memberForgetPwdDto); + public Result memberTradersPwd(@Valid MemberTradersPwdOutcenterDto memberTradersPwdOutcenterDto); public Result memberAddPaymethod(@Valid MemberPaymethodDto memberPaymethodDto); @@ -96,6 +97,8 @@ public Result recovery(WtWalletDto wtWalletDto); + public Result getMnemonicWordList(String address); + } 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 39564d2..4bd0f33 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 @@ -40,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; @@ -451,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); @@ -499,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); @@ -928,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")); } @@ -948,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(); @@ -1376,6 +1391,23 @@ return Result.ok(loginVo); } + + @Override + public Result getMnemonicWordList(String address) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + MemberEntity memberEntity = memberDao.selectById(memberId); + + 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); + } } -- Gitblit v1.9.1