From 62d1ad8e77c9039b104a9f01c678d3c3252fe7f6 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 30 May 2022 15:24:00 +0800
Subject: [PATCH] fix calprice
---
src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java | 14 --------------
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 19 +++++++++++++++++--
src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java | 3 +++
3 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
index 2588ec4..a191941 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ApiCommonController.java
+++ b/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);
-// }
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java
index 5b1b227..9f86833 100644
--- a/src/main/java/cc/mrbird/febs/dapp/dto/TransferDto.java
+++ b/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;
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 7a17fcb..ca0245c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/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));
--
Gitblit v1.9.1