From 1da6dad3fd2ac6d51125aa1f2d459ae1f146f8ff Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 26 Apr 2024 12:43:44 +0800
Subject: [PATCH] 质押流水记录
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 320 ++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 255 insertions(+), 65 deletions(-)
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 8279bf7..e577032 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
@@ -1,22 +1,23 @@
package cc.mrbird.febs.dapp.service.impl;
import cc.mrbird.febs.common.contants.AppContants;
+import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.DataDicEnum;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.exception.FebsException;
-import cc.mrbird.febs.common.utils.FebsUtil;
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.RecordInPageDto;
-import cc.mrbird.febs.dapp.dto.TransferDto;
-import cc.mrbird.febs.dapp.dto.WalletOperateDto;
+import cc.mrbird.febs.dapp.dto.*;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.mapper.*;
+import cc.mrbird.febs.dapp.service.AsyncCjService;
import cc.mrbird.febs.dapp.service.DappWalletService;
import cc.mrbird.febs.dapp.vo.WalletInfoVo;
+import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
@@ -25,13 +26,10 @@
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;
+import java.util.*;
/**
- * @author
+ * @author
* @date 2022-03-18
**/
@Slf4j
@@ -45,21 +43,52 @@
private final DappFundFlowDao dappFundFlowDao;
private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
private final RedisUtils redisUtils;
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final DappAchieveMapper dappAchieveMapper;
+ private final DappAchieveItemMapper dappAchieveItemMapper;
+ private final ChainProducer chainProducer;
+ private final AsyncCjService asyncCjService;
@Override
public WalletInfoVo walletInfo() {
-// DappMemberEntity member = LoginUserUtil.getAppUser();
-// DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(member.getId());
-// DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
-
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ DappMemberEntity member = dappMemberDao.selectById(memberId);
WalletInfoVo walletInfo = new WalletInfoVo();
-// walletInfo.setInviteId(member.getInviteId());
-// walletInfo.setTotalMine(walletMine.getTotalAmount());
-// walletInfo.setAvailableMine(walletMine.getAvailableAmount());
-// walletInfo.setAvailableWallet(walletCoin.getAvailableAmount());
+ walletInfo.setInviteId(member.getInviteId());
+ walletInfo.setBalance(member.getBalance());
+ walletInfo.setUsdtBalance(member.getUsdtBalance());
+ String zyOpen = redisUtils.getString(DataDicEnum.SYSTEM_START_FLAG.getValue());
+ walletInfo.setZyOpen(zyOpen.equals("start") ? 1 : 0);
- walletInfo.setTotalChild(10000);
- walletInfo.setTotalChild(41451);
+ BigDecimal minAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MIN_AMOUNT.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
+ walletInfo.setZyMin(minAmount);
+
+ BigDecimal maxAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MAX_AMOUNT.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
+ walletInfo.setZyMax(maxAmount);
+
+ BigDecimal tzCoin = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.TUAN_DUI.getValue(),null);
+ walletInfo.setTzCoin(tzCoin);
+
+ BigDecimal hdCoinGeren = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.HUA_DIAN_GEREN.getValue(),null);
+ BigDecimal hdCoinTuandui = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.HUA_DIAN_TUANDUI_DAIBI.getValue(),null);
+ BigDecimal hdCoinTuanduiUSDT = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.HUA_DIAN_TUANDUI_USDT.getValue(),null);
+ walletInfo.setHdCoin(hdCoinGeren.add(hdCoinTuandui).add(hdCoinTuanduiUSDT));
+
+ BigDecimal zyTotal = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHI_YA.getValue(),null).negate();
+ walletInfo.setZyTotal(zyTotal);
+
+ BigDecimal zyToday = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHI_YA.getValue(), new Date()).negate();
+ walletInfo.setZyToday(zyToday);
+
+ BigDecimal ccTotal = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHIYA_CHA_CHU.getValue(),null).negate();
+ walletInfo.setCcTotal(ccTotal);
+
+ BigDecimal ccToday = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDate(member.getId(), FlowTypeEnum.ZHIYA_CHA_CHU.getValue(), new Date()).negate();
+ walletInfo.setCcToday(ccToday);
+
+ BigDecimal gfaDays = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_DAYS.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
+ walletInfo.setGfaDays(gfaDays);
+
return walletInfo;
}
@@ -75,7 +104,7 @@
throw new FebsException("可用金额不足");
}
- DappFundFlowEntity fund = new DappFundFlowEntity(member.getId(), walletOperateDto.getAmount(), AppContants.MONEY_TYPE_CHANGE, null, null);
+ DappFundFlowEntity fund = new DappFundFlowEntity(member.getId(), walletOperateDto.getAmount(), AppContants.MONEY_TYPE_CHANGE, 2, (String) null);
dappFundFlowDao.insert(fund);
BigDecimal preEthAmount = walletMine.getAvailableAmount();
@@ -132,13 +161,30 @@
@Override
public List<DappFundFlowEntity> recordInPage(RecordInPageDto recordInPageDto) {
- Page<DappFundFlowEntity> page = new Page<>(recordInPageDto.getPageNum(), recordInPageDto.getPageSize());
-
DappMemberEntity member = LoginUserUtil.getAppUser();
+ Page<DappFundFlowEntity> page = new Page<>(recordInPageDto.getPageNum(), recordInPageDto.getPageSize());
DappFundFlowEntity dappFundFlowEntity = new DappFundFlowEntity();
- dappFundFlowEntity.setType(recordInPageDto.getType());
+ if (recordInPageDto.getType() != null && recordInPageDto.getType() != 0) {
+ dappFundFlowEntity.setStatus(recordInPageDto.getType());
+ }
+ if (recordInPageDto.getState() != null && recordInPageDto.getState() != 0) {
+ dappFundFlowEntity.setType(recordInPageDto.getState());
+ }
dappFundFlowEntity.setMemberId(member.getId());
- IPage<DappFundFlowEntity> records = dappFundFlowDao.selectInPage(page, dappFundFlowEntity);
+ IPage<DappFundFlowEntity> records = dappFundFlowDao.selectInPages(page, dappFundFlowEntity);
+ return records.getRecords();
+ }
+
+ @Override
+ public List<DappAchieve> zyInPage(RecordInPageDto recordInPageDto) {
+ DappMemberEntity member = LoginUserUtil.getAppUser();
+ Page<DappAchieve> page = new Page<>(recordInPageDto.getPageNum(), recordInPageDto.getPageSize());
+ DappAchieve dappAchieve = new DappAchieve();
+ if (recordInPageDto.getType() != null && recordInPageDto.getType() != 0) {
+ dappAchieve.setState(recordInPageDto.getType());
+ }
+ dappAchieve.setMemberId(member.getId());
+ IPage<DappAchieve> records = dappFundFlowDao.selectZyInPage(page, dappAchieve);
return records.getRecords();
}
@@ -155,28 +201,20 @@
if (fundFlow == null) {
throw new FebsException("数据不存在");
}
-
- DappWalletCoinEntity walletCoin = dappWalletCoinDao.selectByMemberId(fundFlow.getMemberId());
if (type == 1) {
- walletCoin.setFrozenAmount(walletCoin.getFrozenAmount().subtract(fundFlow.getAmount()));
- walletCoin.setTotalAmount(walletCoin.getTotalAmount().subtract(fundFlow.getAmount()));
fundFlow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
+ dappFundFlowDao.updateById(fundFlow);
} else if (type == 2) {
- BigDecimal preAmount = walletCoin.getAvailableAmount();
-
- walletCoin.setFrozenAmount(walletCoin.getFrozenAmount().subtract(fundFlow.getAmount()));
- walletCoin.setAvailableAmount(walletCoin.getAvailableAmount().add(fundFlow.getAmount()));
-
- DappAccountMoneyChangeEntity accountMoneyChange = new DappAccountMoneyChangeEntity(walletCoin.getMemberId(), preAmount, fundFlow.getAmount(), walletCoin.getAvailableAmount(), "提现申请被驳回", 2);
fundFlow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_DISAGREE);
+ dappFundFlowDao.updateById(fundFlow);
- dappAccountMoneyChangeDao.insert(accountMoneyChange);
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(fundFlow.getMemberId());
+ //流水记录的金额是一个负数
+ dappMemberEntity.setUsdtBalance(dappMemberEntity.getUsdtBalance().subtract(fundFlow.getAmount()));
+ dappMemberDao.updateUsdtBalanceWithVersion(dappMemberEntity);
} else {
throw new FebsException("参数错误");
}
-
- dappWalletCoinDao.updateById(walletCoin);
- dappFundFlowDao.updateById(fundFlow);
}
@Override
@@ -198,41 +236,193 @@
}
@Override
- public void transfer(TransferDto transferDto) {
+ @Transactional(rollbackFor = Exception.class)
+ public Long transfer(TransferDto transferDto) {
DappMemberEntity member = LoginUserUtil.getAppUser();
+// QueryWrapper<DappFundFlowEntity> objectQueryWrapper = new QueryWrapper<>();
+// objectQueryWrapper.eq("type" ,FlowTypeEnum.ZHI_YA.getValue());
+// objectQueryWrapper.eq("status" ,DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
+// objectQueryWrapper.eq("member_id" ,member.getId());
+// List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectList(objectQueryWrapper);
-// ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(member.getAddress());
-// ChainService.getInstance(ChainEnum.BSC_TFC_SOURCE.name()).balanceOf(member.getAddress());
+ List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectAmountTotalByTypeAndMemberIdAndDateAndState(
+ member.getId(),
+ FlowTypeEnum.ZHI_YA.getValue(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ new Date());
+ BigDecimal zhiyaAmount = new BigDecimal(redisUtils.getString(DataDicEnum.MEMBER_ZHIYA_AMOUNT.getValue()));
- if (DappFundFlowEntity.TYPE_SALE == transferDto.getType()) {
- String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
- if (!"start".equals(hasStart)) {
- throw new FebsException("系统还未启动");
+ Integer zhiyaTime = Integer.parseInt(redisUtils.getString(DataDicEnum.MEMBER_ZHIYA_TIME.getValue()));
+ if(CollUtil.isNotEmpty(dappFundFlowEntities)){
+ if(dappFundFlowEntities.size() >= zhiyaTime){
+ throw new FebsException("今日暂停质押");
+ }
+ BigDecimal teamAchieveMemberSum = dappFundFlowEntities.stream().map(DappFundFlowEntity::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).negate();
+ if(zhiyaAmount.compareTo(teamAchieveMemberSum.add(transferDto.getAmount())) < 0){
+ throw new FebsException("今日最多质押"+zhiyaAmount.subtract(teamAchieveMemberSum).setScale(4,BigDecimal.ROUND_DOWN));
}
}
- DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
- fundFlow.setNewestPrice(transferDto.getPrice());
- dappFundFlowDao.insert(fundFlow);
+
+ String hasStart = redisUtils.getString(DataDicEnum.SYSTEM_START_FLAG.getValue());
+ BigDecimal minAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MIN_AMOUNT.getValue()));
+ BigDecimal maxAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MAX_AMOUNT.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
+ BigDecimal gfaDays = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_DAYS.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
+
+ minAmount = minAmount.divide(transferDto.getPrice(),2,BigDecimal.ROUND_DOWN);
+ maxAmount = maxAmount.divide(transferDto.getPrice(),2,BigDecimal.ROUND_DOWN);;
+ if (transferDto.getId() == null) {
+ if (DappFundFlowEntity.TYPE_BUY == transferDto.getType()) {
+ //系统开始标识
+ if ("start".equals(hasStart)) {
+ if (transferDto.getAmount().compareTo(maxAmount) > 0) {
+ throw new FebsException("超过购买限制");
+ }
+ if (transferDto.getAmount().compareTo(minAmount) < 0) {
+ throw new FebsException("超过购买限制");
+ }
+// if (BigDecimal.ZERO.compareTo(gfaDays) >= 0) {
+// throw new FebsException("今日暂停质押");
+// }
+ if (transferDto.getAmount().compareTo(zhiyaAmount) > 0) {
+ throw new FebsException("今日最多质押"+zhiyaAmount);
+ }
+ } else {
+ throw new FebsException("暂停质押");
+ }
+ }
+
+ DappFundFlowEntity fundFlow = new DappFundFlowEntity(
+ member.getId(),
+ transferDto.getAmount().setScale(2,BigDecimal.ROUND_DOWN).negate(),
+ FlowTypeEnum.ZHI_YA.getValue(),
+ DappFundFlowEntity.WITHDRAW_STATUS_ING,
+ BigDecimal.ZERO,
+ transferDto.getTxHash());
+ fundFlow.setNewestPrice(transferDto.getPrice());
+ dappFundFlowDao.insert(fundFlow);
+ //发送一个延时队列消息。10分钟流水还没有更新,则删除流水
+ chainProducer.sendZhiYaDelayFlowMsg(fundFlow.getId(), 10 * 60 * 1000L);
+ return fundFlow.getId();
+ }
+
+ if ("success".equals(transferDto.getFlag())) {
+ if (transferDto.getId() == null) {
+ throw new FebsException("网络异常");
+ }
+ //更新第一次请求的资金划转记录
+ DappFundFlowEntity flow = dappFundFlowDao.selectById(transferDto.getId());
+ if(ObjectUtil.isEmpty(flow)){
+ throw new FebsException("网络异常");
+ }
+ flow.setFromHash(transferDto.getTxHash());
+ flow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
+ flow.setContent(FlowTypeEnum.ZHI_YA.getDescrition());
+ dappFundFlowDao.updateById(flow);
+
+ //用户质押代币数量
+ BigDecimal amount = flow.getAmount().negate();
+ Long memberId = flow.getMemberId();
+ //新增一条用户质押记录
+ DappAchieve dappAchieve = new DappAchieve();
+ dappAchieve.setMemberId(memberId);
+ dappAchieve.setPrice(transferDto.getPrice());
+ dappAchieve.setAmount(amount);
+ BigDecimal achieveReleasePercent = new BigDecimal("0.01").multiply(
+ new BigDecimal(redisUtils.getString(DataDicEnum.GFA_ACHIEVE_RELEASE.getValue())).setScale(2,BigDecimal.ROUND_DOWN)
+ );
+ dappAchieve.setAmountDay(achieveReleasePercent.multiply(amount).setScale(2,BigDecimal.ROUND_DOWN));
+ BigDecimal achieveOut = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_ACHIEVE_OUT.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
+ dappAchieve.setAmountMax(achieveOut.multiply(amount).setScale(2,BigDecimal.ROUND_DOWN));
+ dappAchieve.setState(DappAchieve.STATUS_ING);
+ dappAchieve.setAmountDone(BigDecimal.ZERO);
+ dappAchieveMapper.insert(dappAchieve);
+
+ asyncCjService.insertTeamPerk(flow.getId(), dappAchieve.getId());
+
+ //发送一个延时队列消息。24小时之后产生第一次的质押产出
+// chainProducer.sendZhiYaDelayMsg(dappAchieve.getId(), 24 * 60 * 60 * 1000L);
+ } else {
+ dappFundFlowDao.deleteById(transferDto.getId());
+ }
+ return null;
}
@Override
- public Map<String, BigDecimal> calPrice() {
+ public String calPrice() {
DappMemberEntity member = LoginUserUtil.getAppUser();
+ return redisUtils.getString(DataDicEnum.GFA_PRICE.getValue());
+ }
- ContractChainService tfcInstance = ChainService.getInstance(ChainEnum.BSC_TFC.name());
- // u剩余数量
- BigDecimal sourceU = ChainService.getInstance(ChainEnum.BSC_USDT.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);
+ @Override
+ public IPage<DappAchieve> dappAchieveInPage(DappAchieve dappAchieve, QueryRequest request) {
+ Page<DappAchieve> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<DappAchieve> dappAchieveIPage = dappAchieveMapper.selectInPage(page, dappAchieve);
+ List<DappAchieve> records = dappAchieveIPage.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(DappAchieve dappAchieve1 : records){
+ dappAchieve1.setUsdtAmount(dappAchieve1.getAmount().multiply(dappAchieve1.getPrice()).setScale(2,BigDecimal.ROUND_DOWN));
+ }
+ }
+ return dappAchieveIPage;
+ }
- HashMap<String, BigDecimal> map = new HashMap<>();
- map.put("x", BigDecimal.ONE);
- map.put("y", BigDecimal.valueOf(0.8D));
- return map;
+ @Override
+ public IPage<DappAchieveItem> dappAchieveItemInPage(DappAchieve dappAchieve, QueryRequest request) {
+ Page<DappAchieveItem> page = new Page<>(request.getPageNum(), request.getPageSize());
+ return dappAchieveMapper.dappAchieveItemInPage(page, dappAchieve);
+ }
+
+ @Override
+ public FebsResponse transferOut(TransferOutDto transferOutDto) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ BigDecimal usdtBalance = dappMemberEntity.getUsdtBalance();
+ BigDecimal balance = dappMemberEntity.getBalance();
+ Integer type = transferOutDto.getType();
+ Integer flowType;
+ String flowDes;
+ BigDecimal amount = transferOutDto.getAmount();
+ if(1 == type){//代币提现
+ if(new BigDecimal("10").compareTo(amount) > 0){
+ throw new FebsException("最小数量为10");
+ }
+ if(balance.compareTo(amount) < 0){
+ throw new FebsException("余额不足");
+ }
+ flowType = FlowTypeEnum.DAI_BI_OUT.getValue();
+ flowDes = FlowTypeEnum.DAI_BI_OUT.getDescrition();
+
+ dappMemberEntity.setBalance(balance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
+ dappMemberDao.updateBalanceWithVersion(dappMemberEntity);
+ }else{
+ if(new BigDecimal("1").compareTo(amount) > 0){
+ throw new FebsException("最小数量为100");
+ }
+ if(usdtBalance.compareTo(amount) < 0){
+ throw new FebsException("余额不足");
+ }
+ flowType = FlowTypeEnum.USDT_OUT.getValue();
+ flowDes = FlowTypeEnum.USDT_OUT.getDescrition();
+
+ dappMemberEntity.setUsdtBalance(usdtBalance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
+ dappMemberDao.updateUsdtBalanceWithVersion(dappMemberEntity);
+ }
+
+ DappFundFlowEntity fundFlowTuiJian = new DappFundFlowEntity(
+ memberId,
+ amount.negate(),
+ flowType,
+ DappFundFlowEntity.WITHDRAW_STATUS_ING,
+ flowDes,
+ null,
+ dappMemberEntity.getAddress());
+ dappFundFlowDao.insert(fundFlowTuiJian);
+
+// dappMemberEntity.setBalance(balance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
+// dappMemberEntity.setUsdtBalance(usdtBalance.subtract(amount).setScale(2,BigDecimal.ROUND_DOWN));
+// dappMemberDao.updateBalanceAndUsdtBalanceWithVersion(dappMemberEntity);
+
+ return new FebsResponse().success();
}
}
--
Gitblit v1.9.1