xiaoyong931011
2020-11-24 f50a44247369c38e404ad962d341b2d66852a53c
20201124
6 files modified
1 files added
168 ■■■■ changed files
src/main/java/com/xcong/excoin/common/system/dto/OutCenterRegisterDto.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java 22 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyDto.java 12 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberTradersPwdOutcenterDto.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java 7 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 92 ●●●●● patch | view | raw | blame | history
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);
    }
}