xiaoyong931011
2022-02-24 13ba1829996923725a1881aab88ce402abf579fd
20222223
3 files modified
3 files added
146 ■■■■ changed files
src/main/java/com/xcong/excoin/common/enumerates/CoinTypeEnum.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/coin/dao/ZhiYaDao.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/coin/entity/ZhiYaEntity.java 34 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java 77 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/walletCoinOrder/ZhiYaDao.xml 9 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/common/enumerates/CoinTypeEnum.java
@@ -7,5 +7,6 @@
 */
public enum CoinTypeEnum {
//    USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC,BEA,GUSD,GOLDRICE,
    USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC,GUSD,GOLDRICE,
    USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC,GOLDRICE,
//    USDT, BTC, ETH, LTC, EOS, XRP, BCH, ETC,GUSD,GOLDRICE,
}
src/main/java/com/xcong/excoin/modules/coin/dao/ZhiYaDao.java
New file
@@ -0,0 +1,10 @@
package com.xcong.excoin.modules.coin.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
public interface ZhiYaDao extends BaseMapper<ZhiYaEntity> {
    ZhiYaEntity selectByMemberId(Long memberId);
}
src/main/java/com/xcong/excoin/modules/coin/entity/ZhiYaEntity.java
New file
@@ -0,0 +1,34 @@
package com.xcong.excoin.modules.coin.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xcong.excoin.common.system.base.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
@Data
@TableName("zhi_ya")
public class ZhiYaEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * 用户Id
     */
    private Long memberId;
    /**
     * 可用余额
     */
    private BigDecimal availableBalance;
    /**
     * 总金额
     */
    private BigDecimal totalBalance;
    /**
     * 冻结金额
     */
    private BigDecimal frozenBalance;
}
src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -7,7 +7,9 @@
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.date.DateUtil;
import com.xcong.excoin.modules.coin.dao.ZhiYaDao;
import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao;
import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity;
import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
import org.springframework.stereotype.Service;
@@ -58,6 +60,8 @@
    @Resource
    MemberWalletCoinDao memberWalletCoinDao;
    @Resource
    ZhiYaDao zhiYaDao;
    @Resource
    MemberWalletContractDao memberWalletContractDao;
    @Resource
    MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
@@ -102,13 +106,15 @@
                        totalUsdts = totalUsdts.add(totalUsdt);
                        BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
                        walletCoin.setTotalBalance(totalCny);
                    }else if (MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue().equals(walletCoin.getWalletCode())) {
                        BigDecimal totalUsdt = BigDecimal.ZERO;
                        totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
                        totalUsdts = totalUsdts.add(totalUsdt);
                        BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
                        walletCoin.setTotalBalance(totalCny);
                    } else {
                    }
//                    else if (MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue().equals(walletCoin.getWalletCode())) {
//                        BigDecimal totalUsdt = BigDecimal.ZERO;
//                        totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
//                        totalUsdts = totalUsdts.add(totalUsdt);
//                        BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
//                        walletCoin.setTotalBalance(totalCny);
//                    }
                    else {
                        BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
                        // 获取最新价
                        BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(walletCoin.getWalletCode()+"/USDT")));
@@ -147,8 +153,8 @@
            memberWalletCoinlist.add(coin);
            coin.setWalletCode(CoinTypeEnum.ETC.toString());
            memberWalletCoinlist.add(coin);
            coin.setWalletCode(CoinTypeEnum.GUSD.toString());
            memberWalletCoinlist.add(coin);
//            coin.setWalletCode(CoinTypeEnum.GUSD.toString());
//            memberWalletCoinlist.add(coin);
            coin.setWalletCode(CoinTypeEnum.GOLDRICE.toString());
            memberWalletCoinlist.add(coin);
@@ -638,21 +644,23 @@
        memberWalletCoinEntity.setTotalBalance(total);
        int i = memberWalletCoinDao.updateById(memberWalletCoinEntity);
        if (i < 1) {
            return Result.fail(MessageSourceUtils.getString("member_service_0095"));
            return Result.fail(MessageSourceUtils.getString("member_service_0096"));
        }
        //添加资金划转历史记录
        MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
        //获取usdt兑换gusd的兑换比例
        String gusdName = CoinTypeEnum.GUSD.name();
        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
        BigDecimal gusdAvailableBalance = gusdMemberWalletCoinEntity.getAvailableBalance();
        BigDecimal gusdTotalBalance = gusdMemberWalletCoinEntity.getTotalBalance();
        gusdMemberWalletCoinEntity.setAvailableBalance(gusdAvailableBalance.add(balance));
        gusdMemberWalletCoinEntity.setTotalBalance(gusdTotalBalance.add(balance));
        ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
        int updateById = memberWalletCoinDao.updateById(gusdMemberWalletCoinEntity);
//        String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
//        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
        BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
        BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
        zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
        zhiya.setTotalBalance(gusdTotalBalance.add(balance));
        int updateById = zhiYaDao.updateById(zhiya);
        if (updateById < 1) {
            return Result.fail(MessageSourceUtils.getString("member_service_0095"));
            return Result.fail(MessageSourceUtils.getString("member_service_0096"));
        }
        //添加资金划转历史记录
@@ -675,11 +683,13 @@
            return Result.fail(MessageSourceUtils.getString("member_service_0005"));
        }
        //质押Gusd,质押数量进入冻结余额,
        String gusdName = CoinTypeEnum.GUSD.name();
        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
        BigDecimal gusdAvailableBalance = gusdMemberWalletCoinEntity.getAvailableBalance();
        BigDecimal gusdTotalBalance = gusdMemberWalletCoinEntity.getTotalBalance();
        BigDecimal gusdfrozenBalance = gusdMemberWalletCoinEntity.getFrozenBalance();
//        String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
//        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
        ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
        BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
        BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
        BigDecimal gusdfrozenBalance = zhiya.getFrozenBalance();
        BigDecimal available = gusdAvailableBalance.subtract(balance);
        if (available.compareTo(BigDecimal.ZERO) < 0) {
@@ -689,12 +699,12 @@
        if (total.compareTo(BigDecimal.ZERO) < 0) {
            return Result.fail(MessageSourceUtils.getString("member_service_0005"));
        }
        gusdMemberWalletCoinEntity.setFrozenBalance(gusdfrozenBalance.add(gusdfrozenBalance));
        gusdMemberWalletCoinEntity.setAvailableBalance(gusdAvailableBalance.subtract(balance));
        zhiya.setFrozenBalance(gusdfrozenBalance.add(gusdfrozenBalance));
        zhiya.setAvailableBalance(gusdAvailableBalance.subtract(balance));
        int updateById = memberWalletCoinDao.updateById(gusdMemberWalletCoinEntity);
        int updateById = zhiYaDao.updateById(zhiya);
        if (updateById < 1) {
            return Result.fail(MessageSourceUtils.getString("member_service_0095"));
            return Result.fail(MessageSourceUtils.getString("member_service_0096"));
        }
        //产生质押单,当前有的话,累加质押数量
        ZhiYaRecordEntity zhiYaRecord = zhiYaRecordDao.selectByMemberIdAndOrderStatus(memberId,1);
@@ -703,7 +713,7 @@
            ZhiYaRecordEntity zhiYaRecordEntity = new ZhiYaRecordEntity();
            zhiYaRecordEntity.setMemberId(memberId);
            zhiYaRecordEntity.setOrderNo(generateSimpleSerialno(memberId.toString()));
            zhiYaRecordEntity.setSymbol(gusdName);
            zhiYaRecordEntity.setSymbol(MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue());
            zhiYaRecordEntity.setZhiyaCnt(balance);
            zhiYaRecordEntity.setOrderStatus(1);
            Date date = new Date();
@@ -729,11 +739,12 @@
            return Result.fail(MessageSourceUtils.getString("order_service_0010"));
        }
        //质押Gusd,质押数量进入冻结余额,
        String gusdName = CoinTypeEnum.GUSD.name();
        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
        BigDecimal gusdAvailableBalance = gusdMemberWalletCoinEntity.getAvailableBalance();
        BigDecimal gusdTotalBalance = gusdMemberWalletCoinEntity.getTotalBalance();
        BigDecimal gusdfrozenBalance = gusdMemberWalletCoinEntity.getFrozenBalance();
//        String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
//        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
        ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
        BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
        BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
        BigDecimal gusdfrozenBalance = zhiya.getFrozenBalance();
        BigDecimal frozen = gusdfrozenBalance.subtract(balance);
        if (frozen.compareTo(BigDecimal.ZERO) < 0) {
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -14,7 +14,9 @@
import com.xcong.excoin.common.system.dto.RegisterDto;
import com.xcong.excoin.common.system.service.CommonService;
import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
import com.xcong.excoin.modules.coin.dao.ZhiYaDao;
import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
import com.xcong.excoin.modules.member.dao.*;
import com.xcong.excoin.modules.member.entity.*;
import com.xcong.excoin.modules.member.parameter.dto.MemberAddCoinAddressDto;
@@ -77,6 +79,9 @@
    @Resource
    private MemberWalletCoinDao memberWalletCoinDao;
    @Resource
    private ZhiYaDao zhiYaDao;
    @Resource
    private MemberLevelRateDao memberLevelRateDao;
@@ -219,6 +224,14 @@
            memberWalletCoinDao.insert(walletCoin);
        }
        //初始化质押
        ZhiYaEntity zhiYaEntity = new ZhiYaEntity();
        zhiYaEntity.setMemberId(member.getId());
        zhiYaEntity.setAvailableBalance(AppContants.INIT_MONEY);
        zhiYaEntity.setFrozenBalance(AppContants.INIT_MONEY);
        zhiYaEntity.setTotalBalance(AppContants.INIT_MONEY);
        zhiYaDao.insert(zhiYaEntity);
        // 初始化代理佣金钱包
        MemberWalletAgentEntity walletAgent = new MemberWalletAgentEntity();
        walletAgent.setMemberId(member.getId());
src/main/resources/mapper/walletCoinOrder/ZhiYaDao.xml
New file
@@ -0,0 +1,9 @@
<?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.coin.dao.ZhiYaDao">
    <select id="selectByMemberId" resultType="com.xcong.excoin.modules.coin.entity.ZhiYaEntity">
        SELECT *  FROM zhi_ya a where a.member_id= #{memberId}
    </select>
</mapper>