Helius
2020-08-28 17b12b82967c65d170b7bda3c79e3aa76ecfa746
Merge branch 'whole' of https://gitee.com/chonggaoxiao/new_excoin into whole
6 files added
4 files modified
328 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java 46 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/dao/MemberCoinAddressInDao.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressInEntity.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberAddCoinAddressInDto.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/parameter/vo/MemberCoinAddressInListVo.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 137 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/member/MemberCoinAddressInDao.xml 7 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/member/MemberDao.xml 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -11,6 +11,7 @@
import com.xcong.excoin.common.response.Result;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressInDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberAuthenticationDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberBindEmailDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberBindPhoneDto;
@@ -19,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.MemberSubmitCoinApplyInDto;
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;
@@ -26,6 +28,7 @@
import com.xcong.excoin.modules.member.parameter.vo.MemberAuthenticationInfoVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberAvivableCoinInfoVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressCountListVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressInListVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberCoinAddressListVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberCoinInfoListVo;
import com.xcong.excoin.modules.member.parameter.vo.MemberInfoVo;
@@ -282,6 +285,17 @@
    }
    
    /**
     * 获取内转提币地址
     * @return
     */
    @ApiOperation(value = "获取内转提币地址列表", notes = "获取内转提币地址列表")
    @ApiResponses({@ApiResponse( code = 200, message = "success", response = MemberCoinAddressInListVo.class)})
    @GetMapping(value = "/memberCoinAddressInList")
    public Result memberCoinAddressInList() {
        return memberService.memberCoinAddressInList();
    }
    /**
     * 添加提币地址
     * @return
     */
@@ -289,6 +303,16 @@
    @PostMapping(value = "/memberAddCoinAddress")
    public Result memberAddCoinAddress(@RequestBody @Valid MemberAddCoinAddressDto memberAddCoinAddressDto) {
        return memberService.memberAddCoinAddress(memberAddCoinAddressDto);
    }
    /**
     * 添加内转提币地址
     * @return
     */
    @ApiOperation(value = "添加内转提币地址", notes = "添加内转提币地址")
    @PostMapping(value = "/memberAddCoinAddressIn")
    public Result memberAddCoinAddressIn(@RequestBody @Valid MemberAddCoinAddressInDto memberAddCoinAddressDto) {
        return memberService.memberAddCoinAddressIn(memberAddCoinAddressDto);
    }
    
    /**
@@ -300,6 +324,16 @@
    public Result  memberDelCoinAddress(@RequestBody @Valid MemberDelCoinAddressDto memberDelCoinAddressDto) {
        return memberService.memberDelCoinAddress(memberDelCoinAddressDto);
    }
    /**
     * 删除内转提币地址
     * @return
     */
    @ApiOperation(value="删除内转提币地址", notes="删除内转提币地址")
    @PostMapping(value="/memberDelCoinAddressIn")
    public Result  memberDelCoinAddressIn(@RequestBody @Valid MemberDelCoinAddressDto memberDelCoinAddressDto) {
        return memberService.memberDelCoinAddressIn(memberDelCoinAddressDto);
    }
    
    /**
     * 获取发送验证码途径
@@ -362,4 +396,16 @@
        return memberService.memberSubmitCoinApply(memberSubmitCoinApplyDto);
    }
    
    /**
     *     提币申请--内转
     * @param token
     * @param coinVo
     * @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/dao/MemberCoinAddressInDao.java
New file
@@ -0,0 +1,8 @@
package com.xcong.excoin.modules.member.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xcong.excoin.modules.member.entity.MemberCoinAddressInEntity;
public interface MemberCoinAddressInDao extends BaseMapper<MemberCoinAddressInEntity> {
}
src/main/java/com/xcong/excoin/modules/member/entity/MemberCoinAddressInEntity.java
New file
@@ -0,0 +1,29 @@
package com.xcong.excoin.modules.member.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xcong.excoin.common.system.base.BaseEntity;
import lombok.Data;
@Data
@TableName("member_coin_address_in")
public class MemberCoinAddressInEntity extends BaseEntity {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    /**
     * 会员ID
     */
    private Long memberId;
    /**
     * 备注
     */
    private String content;
    /**
     * 账号
     */
    private String account;
}
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberAddCoinAddressInDto.java
New file
@@ -0,0 +1,26 @@
package com.xcong.excoin.modules.member.parameter.dto;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "MemberAddCoinAddressInDto", description = "参数接收类")
public class MemberAddCoinAddressInDto {
    /**
     * 地址
     */
    @NotNull(message = "账号不能为空")
    @ApiModelProperty(value = "账号")
    private String address;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
}
src/main/java/com/xcong/excoin/modules/member/parameter/dto/MemberSubmitCoinApplyInDto.java
New file
@@ -0,0 +1,38 @@
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;
}
src/main/java/com/xcong/excoin/modules/member/parameter/vo/MemberCoinAddressInListVo.java
New file
@@ -0,0 +1,25 @@
package com.xcong.excoin.modules.member.parameter.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "MemberCoinAddressInListVo", description = "返回")
public class MemberCoinAddressInListVo {
    @ApiModelProperty(value = "ID")
    private Long id;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String content;
    /**
     * 账号
     */
    @ApiModelProperty(value = "账号")
    private String account;
}
src/main/java/com/xcong/excoin/modules/member/service/MemberService.java
@@ -7,6 +7,7 @@
import com.xcong.excoin.common.system.dto.RegisterDto;
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressInDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberAuthenticationDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberBindEmailDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberBindPhoneDto;
@@ -15,6 +16,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.MemberSubmitCoinApplyInDto;
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;
@@ -90,5 +92,13 @@
    public Result getPcVersionInfo();
    public Result memberSubmitCoinApplyIn(@Valid MemberSubmitCoinApplyInDto memberSubmitCoinApplyInDto);
    public Result memberAddCoinAddressIn(@Valid MemberAddCoinAddressInDto memberAddCoinAddressDto);
    public Result memberDelCoinAddressIn(@Valid MemberDelCoinAddressDto memberDelCoinAddressDto);
    public Result memberCoinAddressInList();
}
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -18,6 +18,7 @@
import com.xcong.excoin.modules.member.dao.*;
import com.xcong.excoin.modules.member.entity.*;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressInDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberAuthenticationDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberBindEmailDto;
import com.xcong.excoin.modules.member.parameter.dto.MemberBindPhoneDto;
@@ -26,6 +27,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.MemberSubmitCoinApplyInDto;
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;
@@ -97,6 +99,9 @@
    @Resource
    MemberCoinAddressDao memberCoinAddressDao;
    @Resource
    MemberCoinAddressInDao memberCoinAddressInDao;
    @Resource
    private CommonService commonservice;
@@ -1001,6 +1006,138 @@
        }
        return Result.ok(arrayList);
    }
    @Override
    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();
            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"));
            }
            MemberCoinAddressEntity memberCoinAddressEntity = selectByMap2.get(0);
            String 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);
                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"));
        }
    }
    @Override
    public Result memberAddCoinAddressIn(@Valid MemberAddCoinAddressInDto memberAddCoinAddressDto) {
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        String address = memberAddCoinAddressDto.getAddress();
        String remark = memberAddCoinAddressDto.getRemark();
        MemberCoinAddressInEntity memberCoinAddressInEntity = new MemberCoinAddressInEntity();
        memberCoinAddressInEntity.setAccount(address);
        memberCoinAddressInEntity.setMemberId(memberId);
        memberCoinAddressInEntity.setContent(remark);
        memberCoinAddressInDao.insert(memberCoinAddressInEntity);
        return Result.ok(MessageSourceUtils.getString("member_service_0024"));
    }
    @Override
    public Result memberDelCoinAddressIn(@Valid MemberDelCoinAddressDto memberDelCoinAddressDto) {
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        MemberEntity member = memberDao.selectById(memberId);
        if (ObjectUtil.isNotEmpty(member)) {
            Long id = memberDelCoinAddressDto.getId();
            memberCoinAddressInDao.deleteById(id);
        }
        return Result.ok("success");
    }
    @Override
    public Result memberCoinAddressInList() {
        //获取用户ID
        Long memberId = LoginUserUtils.getAppLoginUser().getId();
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("member_id", memberId);
        List<MemberCoinAddressInEntity> selectByMap = memberCoinAddressInDao.selectByMap(columnMap );
        List<MemberCoinAddressInListVo> arrayList = new ArrayList<>();
        if (CollUtil.isNotEmpty(selectByMap)) {
            for (MemberCoinAddressInEntity memberCoinAddressInEntity : selectByMap) {
                MemberCoinAddressInListVo memberCoinAddressInListVo = new MemberCoinAddressInListVo();
                memberCoinAddressInListVo.setId(memberCoinAddressInEntity.getId());
                memberCoinAddressInListVo.setAccount(memberCoinAddressInEntity.getAccount());
                memberCoinAddressInListVo.setContent(memberCoinAddressInEntity.getContent());
                arrayList.add(memberCoinAddressInListVo);
            }
        }
        return Result.ok(arrayList);
    }
}
src/main/resources/mapper/member/MemberCoinAddressInDao.xml
New file
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.member.dao.MemberCoinAddressInDao">
</mapper>
src/main/resources/mapper/member/MemberDao.xml
@@ -3,7 +3,7 @@
<mapper namespace="com.xcong.excoin.modules.member.dao.MemberDao">
    <select id="selectMemberInfoByAccount" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">
        select * from member where phone=#{account} or email=#{account}
        select * from member where phone=#{account} or email=#{account} or invite_id=#{account}
    </select>
    <select id="selectMemberInfoByInviteId" resultType="com.xcong.excoin.modules.member.entity.MemberEntity">