Helius
2021-05-31 018f6f9b1ab486697d624f493a7ed5c02d29dd10
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -32,12 +33,15 @@
import com.xcong.excoin.modules.otc.vo.EntrustListVo;
import com.xcong.excoin.modules.otc.vo.EntrustOrderDetailVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import netscape.javascript.JSObject;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class OtcEntrustOrderServiceImpl extends ServiceImpl<OtcEntrustOrderDao, OtcEntrustOrder> implements OtcEntrustOrderService {
@@ -70,20 +74,21 @@
        BigDecimal totalAmount = addDto.getUnitPrice().multiply(addDto.getAmount());
        otcEntrustOrder.setTotalAmount(totalAmount);
        if (addDto.getMax().compareTo(totalAmount) < 0) {
        if (totalAmount.compareTo(addDto.getMax()) < 0) {
            throw new GlobalException("最大限额应小于总金额");
        }
        if (OtcEntrustOrder.ORDER_TYPE_S.equals(addDto.getType())) {
            MemberWalletCoinEntity coinWallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), "USDT");
            if(coinWallet.getAvailableBalance().compareTo(totalAmount) < 0) {
//            BigDecimal multiply = addDto.getUnitPrice().multiply(coinWallet.getAvailableBalance());
            if(coinWallet.getAvailableBalance().compareTo(addDto.getAmount()) < 0) {
                throw new GlobalException("可用金额不足");
            }
            memberWalletCoinDao.updateFrozenBalance(member.getId(), coinWallet.getId(), addDto.getAmount());
        }
        if (MemberEntity.IS_TRADER_Y.equals(member.getIsTrader())) {
        if (!MemberEntity.IS_TRADER_Y.equals(member.getIsTrader())) {
            throw new GlobalException("不是市商");
        }
@@ -191,7 +196,7 @@
        if (OtcEntrustOrder.ORDER_TYPE_S.equals(otcEntrustOrder.getOrderType())) {
            MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), "USDT");
            memberWalletCoinDao.subFrozenBalance(member.getId(), wallet.getId(), wallet.getFrozenBalance());
            memberWalletCoinDao.subFrozenBalance(member.getId(), wallet.getId(), otcEntrustOrder.getRemainCoinAmount());
        }
        otcEntrustOrder = new OtcEntrustOrder();
@@ -212,8 +217,13 @@
        OtcMarketBussiness mb = otcMarketBussinessDao.selectMarketBussinessByMemberId(member.getId());
        EntrustOrderDetailVo detail = OtcEntrustOrderMapper.INSTANCE.entityToOrderDetail(otcEntrustOrder);
        detail.setName(member.getName());
        detail.setOrderCnt(mb.getBuyCnt());
        detail.setFinishRatio(mb.getFinishRatio());
        if (OtcEntrustOrder.ORDER_TYPE_S.equals(otcEntrustOrder.getOrderType())) {
            detail.setOrderCnt(mb.getSaleOrderCnt());
            detail.setFinishRatio(mb.getSaleFinishRatio());
        } else {
            detail.setOrderCnt(mb.getTotalOrderCnt());
            detail.setFinishRatio(mb.getFinishRatio());
        }
        detail.setPayType(defualtMethod.getPaymentType());
        return Result.ok(detail);
    }