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; 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); 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); } /** 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") src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberTradersPwdOutcenterDto.java
New file @@ -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; } 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); } 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); } }