xiaoyong931011
2022-03-04 51143d89c943f7c837218e024aa6c5017913d8f8
20222223
3 files modified
1 files added
144 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java 41 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 91 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -365,5 +365,15 @@
    public Result memberAddCoinAddressIn(@RequestBody @Valid MemberAddCoinAddressInDto memberAddCoinAddressDto) {
        return memberService.memberAddCoinAddressIn(memberAddCoinAddressDto);
    }
    /**
     *     提币申请--内转
     * @return
     */
    @ApiOperation(value="提交提币申请--内转", notes="提交提币申请--内转")
    @PostMapping(value="/memberSubmitCoinApplyIn")
    public Result memberSubmitCoinApplyIn(@RequestBody @Valid MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto) {
        return memberService.memberSubmitCoinApplyIn(memberSubmitCoinApplyInDto);
    }
    
}
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java
New file
@@ -0,0 +1,41 @@
package com.xcong.excoin.modules.member.parameter.dto;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "MemberSubmitCoinApplyInDto", description = "参数接收类")
public class MemberSubmitCoinApplyInDto {
    @NotNull(message = "账户名")
    @ApiModelProperty(value = "账户名", example = "asfdsdafsdafdsaf1231232sdfsa")
    private String address;
    @NotNull(message = "币数量不能为空")
    @ApiModelProperty(value = "币数量", example = "10")
    private BigDecimal coinNumber;
    @NotNull(message = "交易密码不能为空")
    @ApiModelProperty(value = "交易密码", example = "123456")
    private String tradePassword;
    @NotNull(message = "验证码不能为空")
    @ApiModelProperty(value = "验证码", example = "123456")
    private String code;
    @NotNull(message = "验证方式不能为空")
    @ApiModelProperty(value = "验证方式", example = "13412341234")
    private String account;
    @NotNull(message = "币种不能为空")
    @ApiModelProperty(value = "币种", example = "BTC")
    private String symbol;
    @ApiModelProperty(value = "币种子类", example = "ERC20")
    private String lable;
}
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
@@ -84,4 +84,6 @@
    Result memberCoinAddressInList();
    Result memberAddCoinAddressIn(MemberAddCoinAddressInDto memberAddCoinAddressDto);
    Result memberSubmitCoinApplyIn(MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto);
}
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -1135,6 +1135,97 @@
        memberCoinAddressInDao.insert(memberCoinAddressInEntity);
        return Result.ok(MessageSourceUtils.getString("member_service_0024"));
    }
    @Override
    @Transactional
    public Result memberSubmitCoinApplyIn(@Valid MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto) {
        //获取用户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"));
        }
        if (StrUtil.isEmpty(member.getTradePassword())) {
            return Result.fail(MessageSourceUtils.getString("member_service_0081"));
        }
        if (member.getTradePassword() == null) {
            return Result.fail(MessageSourceUtils.getString("member_service_0082"));
        }
        if (!member.getTradePassword().equals(SecureUtil.md5(memberSubmitCoinApplyInDto.getTradePassword()))) {
            return Result.fail(MessageSourceUtils.getString("member_service_0082"));
        }
        boolean flag = commonservice.verifyCode(memberSubmitCoinApplyInDto.getAccount(), memberSubmitCoinApplyInDto.getCode());
        if (flag) {
            //获取到账地址
            String address = memberSubmitCoinApplyInDto.getAddress();
            //根据账号获取会员信息
            MemberEntity selectMemberInfoByAccount = memberDao.selectMemberInfoByAccount(address);
            if(ObjectUtil.isEmpty(selectMemberInfoByAccount)) {
                return Result.fail(MessageSourceUtils.getString("member_service_0087"));
            }
            Long memberInfoId = selectMemberInfoByAccount.getId();
            String symbol = memberSubmitCoinApplyInDto.getSymbol();
            String addressIn = "";
            Map<String, Object> columnMapAddress = new HashMap<>();
            columnMapAddress.put("member_id", memberInfoId);
            columnMapAddress.put("symbol", symbol);
            List<MemberCoinAddressEntity> selectByMap2 = memberCoinAddressDao.selectByMap(columnMapAddress);
            if(CollUtil.isEmpty(selectByMap2)) {
//                return Result.fail(MessageSourceUtils.getString("member_service_0087"));
                addressIn = address;
            } else {
                MemberCoinAddressEntity memberCoinAddressEntity = selectByMap2.get(0);
                if(StrUtil.isEmpty(memberCoinAddressEntity.getAddress())){
                    addressIn = selectMemberInfoByAccount.getInviteId();
                }else{
                    addressIn = memberCoinAddressEntity.getAddress();
                }
            }
            MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, memberSubmitCoinApplyInDto.getSymbol());
            BigDecimal availableBalance = walletCoin.getAvailableBalance();
            BigDecimal coinNumber = memberSubmitCoinApplyInDto.getCoinNumber();
            if (availableBalance.compareTo(BigDecimal.ZERO) > 0
                    && availableBalance.compareTo(coinNumber) >= 0) {
                //新增提币记录
                MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
                memberCoinWithdrawEntity.setAddress(addressIn);
                memberCoinWithdrawEntity.setAmount(coinNumber);
                memberCoinWithdrawEntity.setFeeAmount(BigDecimal.ZERO);
                memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyInDto.getSymbol());
                memberCoinWithdrawEntity.setMemberId(memberId);
                memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
                memberCoinWithdrawEntity.setIsInside(MemberCoinWithdrawEntity.ISINSIDE_YES);
                memberCoinWithdrawEntity.setLabel(memberSubmitCoinApplyInDto.getLable());
                memberCoinWithdrawDao.insert(memberCoinWithdrawEntity);
                BigDecimal subtract = walletCoin.getAvailableBalance().subtract(coinNumber);
                walletCoin.setAvailableBalance(subtract);
                BigDecimal add = walletCoin.getFrozenBalance().add(coinNumber);
                walletCoin.setFrozenBalance(add);
                memberWalletCoinDao.updateById(walletCoin);
                MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();
                accountRecord.setContent("提币");
                accountRecord.setMemberId(memberId);
                accountRecord.setAmount(coinNumber);
                accountRecord.setWithdrawId(memberCoinWithdrawEntity.getId());
                accountRecord.setStatus(MemberAccountMoneyChange.STATUS_WAIT_INTEGER);
                accountRecord.setSymbol(memberSubmitCoinApplyInDto.getSymbol());
                accountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
                memberAccountMoneyChangeDao.insert(accountRecord);
                ThreadPoolUtils.sendDingTalk(3);
                return Result.ok(MessageSourceUtils.getString("member_service_0086"));
            } else {
                return Result.fail(MessageSourceUtils.getString("member_service_0005"));
            }
        } else {
            return Result.fail(MessageSourceUtils.getString("member_service_0039"));
        }
    }
}