fix
Helius
2022-09-08 0a8a1ed58585bbd2a55ea6b41732b13af03920ff
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -20,6 +20,7 @@
import cc.mrbird.febs.dapp.vo.WalletInfoVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -235,6 +236,9 @@
        // 铸池中的币的剩余量
        BigDecimal makeCoinRemain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_MAKE_POOL_CNT);
        DateTime tomorrow = DateUtil.beginOfDay(DateUtil.tomorrow());
        long time = DateUtil.between(new Date(), tomorrow, DateUnit.SECOND, true);
        String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
        if (transferDto.getId() == null) {
            if (DappFundFlowEntity.TYPE_SALE == transferDto.getType()) {
@@ -242,21 +246,21 @@
                    throw new FebsException(MessageSourceUtils.getString("transfer_msg_001"));
                }
                if (transferDto.getAmount().multiply(transferDto.getPrice()).compareTo(usdtRemain) > 0) {
                    throw new FebsException(MessageSourceUtils.getString("transfer_msg_002"));
                }
                if (transferDto.getAmount().compareTo(saleCoinRemain) > 0) {
                    throw new FebsException(MessageSourceUtils.getString("transfer_msg_003"));
                }
                usdtRemain = usdtRemain.subtract(transferDto.getAmount().multiply(transferDto.getPrice()));
                saleCoinRemain = saleCoinRemain.subtract(transferDto.getAmount());
                // 修改当日U剩余量
                redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, usdtRemain);
                // 修改用户24小时可售量
                redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), saleCoinRemain);
//                if (transferDto.getAmount().multiply(transferDto.getPrice()).compareTo(usdtRemain) > 0) {
//                    throw new FebsException(MessageSourceUtils.getString("transfer_msg_002"));
//                }
//
//                if (transferDto.getAmount().compareTo(saleCoinRemain) > 0) {
//                    throw new FebsException(MessageSourceUtils.getString("transfer_msg_003"));
//                }
//
//                usdtRemain = usdtRemain.subtract(transferDto.getAmount().multiply(transferDto.getPrice()));
//                saleCoinRemain = saleCoinRemain.subtract(transferDto.getAmount());
//
//                // 修改当日U剩余量
//                redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, usdtRemain);
//                // 修改用户24小时可售量
//                redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), saleCoinRemain, time);
            } else if (DappFundFlowEntity.TYPE_BUY == transferDto.getType()) {
                // 购买时,前端传来的amount是USDT,卖出amount是TFC
                BigDecimal usdtAmount = transferDto.getAmount();
@@ -289,8 +293,9 @@
                    makeCoinRemain = makeCoinRemain.subtract(transferDto.getAmount());
                    buyUsdtMax = buyUsdtMax.subtract(usdtAmount);
                    // 修改每日最大购买USDT量
                    redisUtils.set(AppContants.REDIS_KEY_IDO_USDT_MAX_BUY_DAILY + member.getAddress(), buyUsdtMax);
                    redisUtils.set(AppContants.REDIS_KEY_IDO_USDT_MAX_BUY_DAILY + member.getAddress(), buyUsdtMax, time);
                    // 修改铸池量
                    redisUtils.set(AppContants.REDIS_KEY_MAKE_POOL_CNT, makeCoinRemain);
@@ -328,7 +333,7 @@
                        // 修改铸池量
                        redisUtils.set(AppContants.REDIS_KEY_MAKE_POOL_CNT, makeCoinRemain);
                        redisUtils.set(AppContants.REDIS_KEY_IDO_USDT_MAX_BUY_DAILY + member.getAddress(), buyUsdtMax);
                        redisUtils.set(AppContants.REDIS_KEY_IDO_USDT_MAX_BUY_DAILY + member.getAddress(), buyUsdtMax, time);
                    }
                } else {
                    usdtRemain = usdtRemain.add(transferDto.getAmount().multiply(transferDto.getPrice()));
@@ -337,7 +342,7 @@
                    // 修改当日U剩余量
                    redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, usdtRemain);
                    // 修改用户24小时可售量
                    redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), saleCoinRemain);
                    redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), saleCoinRemain, time);
                }
                dappFundFlowDao.deleteById(transferDto.getId());
            }
@@ -366,7 +371,7 @@
        BigDecimal x = sourceU.divide(sourceCoin, tfcInstance.decimals(), RoundingMode.HALF_UP);
        BigDecimal y = sourceU.divide(sourceCoin.add(coin), tfcInstance.decimals(), RoundingMode.HALF_UP);
        log.info("购买价格:{}, 出卖价格:{}", x, y);
//        log.info("购买价格:{}, 出卖价格:{}", x, y);
        HashMap<String, BigDecimal> map = new HashMap<>();
        map.put("x", x);
        map.put("y", y);