package cc.mrbird.febs.dapp.service.impl;
|
|
import cc.mrbird.febs.common.contants.AppContants;
|
import cc.mrbird.febs.common.utils.LoginUserUtil;
|
import cc.mrbird.febs.common.utils.RedisUtils;
|
import cc.mrbird.febs.dapp.chain.ChainEnum;
|
import cc.mrbird.febs.dapp.chain.ChainService;
|
import cc.mrbird.febs.dapp.chain.ContractChainService;
|
import cc.mrbird.febs.dapp.dto.SystemDto;
|
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
|
import cc.mrbird.febs.dapp.entity.DappMineDataEntity;
|
import cc.mrbird.febs.dapp.entity.DappReturnRatioEntity;
|
import cc.mrbird.febs.dapp.mapper.DappReturnRatioDao;
|
import cc.mrbird.febs.dapp.mapper.DappSystemDao;
|
import cc.mrbird.febs.dapp.service.DappSystemService;
|
import cc.mrbird.febs.dapp.vo.RedisTransferPoolVo;
|
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.StrUtil;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author
|
* @date 2022-03-24
|
**/
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class DappSystemServiceImpl implements DappSystemService {
|
|
private final DappSystemDao dappSystemDao;
|
private final DappReturnRatioDao dappReturnRatioDao;
|
private final RedisUtils redisUtils;
|
|
private final String[] ADDRESS_PREFIX = {"T", "0x"};
|
@Override
|
public Map<String, Object> findTotalInComeAndList() {
|
DappMineDataEntity dataMine = dappSystemDao.selectMineDataForOne();
|
|
|
Map<String, Object> result = new HashMap<>();
|
result.put("total", 6000);
|
result.put("addreessCnt", 1234);
|
result.put("coinCnt", 4000);
|
return result;
|
}
|
|
@Override
|
public Map<String, Object> globalSetting() {
|
BigDecimal newPrice = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_ETH_NEW_PRICE);
|
Integer changeFee = (Integer) redisUtils.get(AppContants.REDIS_KEY_CHANGE_FEE);
|
|
List<DappReturnRatioEntity> ratios = dappReturnRatioDao.selectList(null);
|
Map<String, Object> result = new HashMap<>();
|
result.put("newPrice", newPrice);
|
result.put("changeFee", changeFee);
|
result.put("ratio", ratios);
|
return result;
|
}
|
|
@Override
|
public SystemDto system() {
|
DappMemberEntity member = LoginUserUtil.getAppUser();
|
|
SystemDto system = new SystemDto();
|
|
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);
|
|
BigDecimal coinTotal = balance.multiply(BigDecimal.valueOf(0.3)).setScale(instance.decimals(), RoundingMode.HALF_DOWN);
|
BigDecimal remain;
|
if (o == null) {
|
remain = coinTotal;
|
redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN, remain);
|
} 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(BigDecimal.TEN);
|
return system;
|
}
|
}
|