fix
Helius
2022-08-26 179867dab4554547ecc1def684989c2d6f0ef850
fix
9 files modified
212 ■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java 10 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java 16 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/dto/SystemDto.java 24 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 75 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 50 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java 28 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
@@ -51,9 +51,9 @@
        return new FebsResponse().success();
    }
    @ApiOperation(value = "头部数据", notes = "头部数据")
    @GetMapping(value = "/totalIncome")
    public FebsResponse totalIncome() {
        return new FebsResponse().success().data(dappSystemService.findTotalInComeAndList());
    }
//    @ApiOperation(value = "头部数据", notes = "头部数据")
//    @GetMapping(value = "/totalIncome")
//    public FebsResponse totalIncome() {
//        return new FebsResponse().success().data(dappSystemService.findTotalInComeAndList());
//    }
}
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappMemberController.java
@@ -64,14 +64,14 @@
        return new FebsResponse().success().data(dappWalletService.recordInPage(recordInPageDto));
    }
    @ApiOperation(value = "系统参数", notes = "系统参数")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = SystemDto.class)
    })
    @GetMapping(value = "/system")
    public FebsResponse system() {
        return new FebsResponse().success().data(dappSystemService.system());
    }
//    @ApiOperation(value = "系统参数", notes = "系统参数")
//    @ApiResponses({
//            @ApiResponse(code = 200, message = "success", response = SystemDto.class)
//    })
//    @GetMapping(value = "/system")
//    public FebsResponse system() {
//        return new FebsResponse().success().data(dappSystemService.system());
//    }
    @ApiOperation(value = "我的团队", notes = "我的团队")
    @ApiResponses({
src/main/java/cc/mrbird/febs/dapp/dto/SystemDto.java
@@ -14,27 +14,9 @@
@ApiModel(value = "SystemDto", description = "系统参数接口返回参数类")
public class SystemDto {
    @ApiModelProperty(value = "今天可卖总数")
    private BigDecimal saleTotal;
    @ApiModelProperty(value = "今日可卖剩余")
    private BigDecimal saleRemain;
    @ApiModelProperty(value = "今天可买总数")
    private BigDecimal buyTotal;
    @ApiModelProperty(value = "今天可买剩余")
    private BigDecimal buyRemain;
    @ApiModelProperty(value = "出USDT总数")
    private BigDecimal usdtTotal;
    @ApiModelProperty(value = "出USDT剩余")
    private BigDecimal usdtRemain;
    @ApiModelProperty(value = "滑点(%)")
    @ApiModelProperty(value = "提现滑点(%)")
    private BigDecimal feeRatio;
    @ApiModelProperty(value = "买入滑点(%)")
    private BigDecimal buyFeeRatio;
    @ApiModelProperty(value = "购买金额")
    private BigDecimal buyAmount;
}
src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java
@@ -34,4 +34,7 @@
    @ApiModelProperty(value = "success/fail", example = "success")
    private String flag;
    @ApiModelProperty(value = "1-余额 2-钱包")
    private Integer buyType;
}
src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
@@ -47,7 +47,7 @@
    private BigDecimal amount;
    /**
     * 类型 1-买入 2-卖出 3-采矿 4-返利 5-获取盲盒 6-开盲盒获取卡牌 7-推荐奖励 8-激活盲盒
     * 类型 1-买入 2-矩阵收益 3-直推收益
     */
    private Integer type;
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -280,7 +280,7 @@
        member.setAddress(address);
        member.setChainType(chainType);
        member.setAccountType(accountType);
        member.setActiveStatus(1);
        member.setActiveStatus(2);
        member.setBalance(ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address));
        member.setUsdtBalance(ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address));
@@ -293,7 +293,7 @@
        if (StrUtil.isEmpty(refererId)) {
            refererId = "0";
            // 若没有推荐人,则直接激活
            member.setActiveStatus(1);
            member.setActiveStatus(2);
        }
        member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -103,80 +103,7 @@
        DappMemberEntity member = LoginUserUtil.getAppUser();
        SystemDto system = new SystemDto();
        String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
        // 启动未启动
        if (!"start".equals(hasStart)) {
            system.setFeeRatio(new BigDecimal("7"));
            system.setBuyFeeRatio(new BigDecimal("3"));
            system.setUsdtRemain(BigDecimal.ZERO);
            system.setUsdtTotal(BigDecimal.ZERO);
            system.setSaleRemain(BigDecimal.ZERO);
            system.setSaleTotal(BigDecimal.ZERO);
            Object makePoolObj = redisUtils.get(AppContants.REDIS_KEY_MAKE_POOL_CNT);
            BigDecimal balance;
            if (makePoolObj == null) {
                balance = ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(ChainEnum.BSC_TFC.getAddress());
                redisUtils.set(AppContants.REDIS_KEY_MAKE_POOL_CNT, balance);
            } else {
                balance = (BigDecimal) makePoolObj;
            }
            system.setBuyRemain(balance);
            system.setBuyTotal(balance);
            Object maxDailyBuy = redisUtils.get(AppContants.REDIS_KEY_IDO_USDT_MAX_BUY_DAILY + member.getAddress());
            if (maxDailyBuy == null) {
                DateTime tomorrow = DateUtil.beginOfDay(DateUtil.tomorrow());
                long time = DateUtil.between(new Date(), tomorrow, DateUnit.SECOND, true);
                redisUtils.set(AppContants.REDIS_KEY_IDO_USDT_MAX_BUY_DAILY + member.getAddress(), new BigDecimal("1000"), time);
            }
            return system;
        }
        RedisTransferPoolVo transferPool = (RedisTransferPoolVo) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL);
        BigDecimal poolRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN);
        // 买币数量
        system.setBuyTotal(transferPool.getTodayVol());
        system.setBuyRemain(poolRemain);
        ContractChainService instance = ChainService.getInstance(ChainEnum.BSC_TFC.name());
        BigDecimal balance = instance.balanceOf(member.getAddress());
        Object o = redisUtils.get(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress());
        BigDecimal minLimit = new BigDecimal(50);
        BigDecimal coinTotal;
        if (balance.compareTo(minLimit) > 0) {
            coinTotal = balance.multiply(BigDecimal.valueOf(0.3)).setScale(instance.decimals(), RoundingMode.HALF_DOWN);
        } else {
            coinTotal = new BigDecimal(50);
        }
        BigDecimal remain;
        if (o == null) {
            DateTime tomorrow = DateUtil.beginOfDay(DateUtil.tomorrow());
            long time = DateUtil.between(new Date(), tomorrow, DateUnit.SECOND, true);
            remain = coinTotal;
            redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), remain, time);
        } else {
            remain = (BigDecimal) o;
        }
        // 卖币数量
        system.setSaleTotal(coinTotal);
        system.setSaleRemain(remain);
        BigDecimal usdtRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN);
        BigDecimal usdtTotal = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_USDT_OUT_LIMIT);
        // usdt数量
        system.setUsdtTotal(usdtTotal);
        system.setUsdtRemain(usdtRemain);
        system.setFeeRatio(new BigDecimal("7"));
        system.setBuyFeeRatio(new BigDecimal("3"));
        system.setBuyAmount(new BigDecimal("100"));
        return system;
    }
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -59,21 +59,15 @@
    public WalletInfoVo walletInfo() {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        Map<String, BigDecimal> map = dappFundFlowDao.selectAmountTotalByType(member.getId());
        DappMemberEntity memberInfo = dappMemberDao.selectById(member.getId());
        WalletInfoVo walletInfo = new WalletInfoVo();
        List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1);
        List<DappMemberEntity> notDirect = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 2);
        BigDecimal childHoldAmount = dappMemberDao.selectChildHoldAmount(member.getInviteId());
        DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(member.getId());
        walletInfo.setTotalChild(notDirect.size());
        walletInfo.setDirectCnt(direct.size());
        walletInfo.setTotalChildCoin(childHoldAmount);
        walletInfo.setTeamReward(map.get("teamReward"));
        walletInfo.setMiningAmount(map.get("mine"));
        walletInfo.setInviteId(member.getInviteId());
        walletInfo.setBoxCnt(walletCoin.getBoxCnt());
        walletInfo.setBalance(walletCoin.getAvailableAmount());
        walletInfo.setHasBuy(memberInfo.getActiveStatus());
        return walletInfo;
    }
@@ -219,20 +213,36 @@
    public Long transfer(TransferDto transferDto) {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        if (transferDto.getId() == null) {
            DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
            dappFundFlowDao.insert(fundFlow);
            return fundFlow.getId();
        member = dappMemberDao.selectById(member.getId());
        if (member.getActiveStatus() == 1) {
            throw new FebsException("Do not repeat purchase");
        }
        if ("success".equals(transferDto.getFlag())) {
            DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
            flow.setFromHash(transferDto.getTxHash());
            dappFundFlowDao.updateById(flow);
        if (transferDto.getBuyType() == 1) {
            DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(member.getId());
            if (transferDto.getAmount().compareTo(walletCoin.getAvailableAmount()) > 0) {
                throw new FebsException("Balance Not Enough");
            }
            walletCoin.setTotalAmount(walletCoin.getTotalAmount().subtract(transferDto.getAmount()));
            walletCoin.setAvailableAmount(walletCoin.getAvailableAmount().subtract(transferDto.getAmount()));
            dappWalletCoinDao.updateById(walletCoin);
        } else {
            DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
            if (flow.getStatus() == 1) {
                dappFundFlowDao.deleteById(transferDto.getId());
            if (transferDto.getId() == null) {
                DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
                dappFundFlowDao.insert(fundFlow);
                return fundFlow.getId();
            }
            if ("success".equals(transferDto.getFlag())) {
                DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
                flow.setFromHash(transferDto.getTxHash());
                dappFundFlowDao.updateById(flow);
            } else {
                DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
                if (flow.getStatus() == 1) {
                    dappFundFlowDao.deleteById(transferDto.getId());
                }
            }
        }
        return null;
src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java
@@ -14,33 +14,15 @@
@ApiModel(value = "WalletInfoVo", description = "钱包信息返回参数类")
public class WalletInfoVo {
//    @ApiModelProperty(value = "总产量")
//    private BigDecimal totalMine;
//
//    @ApiModelProperty(value = "可兑换")
//    private BigDecimal availableMine;
//
//    @ApiModelProperty(value = "收入余额")
//    private BigDecimal availableWallet;
//
    @ApiModelProperty(value = "邀请码")
    private String inviteId;
    @ApiModelProperty(value = "总关联数")
    private Integer totalChild;
    @ApiModelProperty(value = "关联持币")
    private BigDecimal totalChildCoin;
    @ApiModelProperty(value = "直推关联数")
    @ApiModelProperty(value = "直推数量")
    private Integer directCnt;
    @ApiModelProperty(value = "挖矿数量")
    private BigDecimal miningAmount;
    @ApiModelProperty(value = "余额")
    private BigDecimal balance;
    @ApiModelProperty(value = "团队奖励数量")
    private BigDecimal teamReward;
    @ApiModelProperty(value = "盲盒数量")
    private Integer boxCnt;
    @ApiModelProperty(value = "是否购买")
    private Integer hasBuy;
}