Helius
2022-05-30 62d1ad8e77c9039b104a9f01c678d3c3252fe7f6
fix calprice
3 files modified
36 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java 14 ●●●●● 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/service/impl/DappWalletServiceImpl.java 19 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
@@ -58,7 +58,6 @@
        return new FebsResponse().success().data(dappSystemService.findTotalInComeAndList());
    }
    @ApiOperation(value = "系统参数", notes = "系统参数")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = SystemDto.class)
@@ -67,17 +66,4 @@
    public FebsResponse system() {
        return new FebsResponse().success().data(dappSystemService.system());
    }
//    @ApiOperation(value = "全局设置", notes = "全局设置")
//    @GetMapping(value = "/globalSetting")
//    public FebsResponse globalSetting() {
//        return new FebsResponse().success().data(dappSystemService.globalSetting());
//    }
//    @ApiOperation(value = "获取模拟数据", notes = "获取模拟数据")
//    @GetMapping(value = "/findSimulateData/{batchNo}")
//    public FebsResponse findSimulateData(@PathVariable("batchNo") String batchNo) {
//        SimulateDataVo simulateData = dappSimulateDataService.findSimulateData(batchNo);
//        return new FebsResponse().success().data(simulateData);
//    }
}
src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java
@@ -25,4 +25,7 @@
    @ApiModelProperty(value = "手续费", example = "1")
    private BigDecimal fee;
    @ApiModelProperty(value = "价格", example = "1.0")
    private BigDecimal price;
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -8,6 +8,7 @@
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.RecordInPageDto;
import cc.mrbird.febs.dapp.dto.TransferDto;
import cc.mrbird.febs.dapp.dto.WalletOperateDto;
@@ -24,6 +25,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -199,15 +201,28 @@
    public void transfer(TransferDto transferDto) {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(member.getAddress());
        ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name()).balanceOf(member.getAddress());
//        ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(member.getAddress());
//        ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name()).balanceOf(member.getAddress());
        DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
        fundFlow.setNewestPrice(transferDto.getPrice());
        dappFundFlowDao.insert(fundFlow);
    }
    @Override
    public Map<String, BigDecimal> calPrice() {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        ContractChainService tfcInstance = ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name());
        // u剩余数量
        BigDecimal sourceU = ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
        // 源池代币剩余数量
        BigDecimal sourceCoin = tfcInstance.balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
        // 用户代币剩余数量
        BigDecimal coin = tfcInstance.balanceOf(member.getAddress());
        BigDecimal x = sourceU.divide(sourceCoin, tfcInstance.decimals(), RoundingMode.HALF_DOWN);
        BigDecimal y = sourceU.divide(sourceCoin.add(coin), tfcInstance.decimals(), RoundingMode.HALF_DOWN);
        HashMap<String, BigDecimal> map = new HashMap<>();
        map.put("x", BigDecimal.ONE);
        map.put("y", BigDecimal.valueOf(0.8D));