Helius
2021-05-25 c6f226f7f9f9aa46c27db28d6796cd15d101cfe9
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcEntrustOrderServiceImpl.java
@@ -40,9 +40,9 @@
@RequiredArgsConstructor
public class OtcEntrustOrderServiceImpl extends ServiceImpl<OtcEntrustOrderDao, OtcEntrustOrder> implements OtcEntrustOrderService {
    private final OtcMarketBussinessDao otcMarketBussinessDao;
    private final MemberDao memberDao;
    private final MemberPaymentMethodDao memberPaymentMethodDao;
    private final OtcMarketBussinessDao otcMarketBussinessDao;
    private final MemberWalletCoinDao memberWalletCoinDao;
    private final OtcOrderDao otcOrderDao;
    private final CommonService commonService;
@@ -66,20 +66,36 @@
        BigDecimal totalAmount = addDto.getUnitPrice().multiply(addDto.getAmount());
        otcEntrustOrder.setTotalAmount(totalAmount);
        if (addDto.getMax().compareTo(totalAmount) < 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) {
                throw new GlobalException("可用金额不足");
            }
            memberWalletCoinDao.updateFrozenBalance(member.getId(), coinWallet.getId(), totalAmount);
            memberWalletCoinDao.updateFrozenBalance(member.getId(), coinWallet.getId(), addDto.getAmount());
        }
        OtcMarketBussiness mb = otcMarketBussinessDao.selectMarketBussinessByMemberId(member.getId());
        if (mb == null) {
            OtcMarketBussiness otcMb = new OtcMarketBussiness();
            otcMb.setMemberId(member.getId());
            otcMb.setAvgCoinTime(0);
            otcMb.setAvgPayTime(0);
            otcMb.setTotalOrderCnt(0);
            otcMb.setBuyCnt(0);
            otcMb.setFinishRatio(BigDecimal.ZERO);
            otcMb.setStatus(OtcMarketBussiness.CHECK_PASS);
            otcMarketBussinessDao.insert(otcMb);
        }
        if (member.getIsTrader() == 2) {
            otcEntrustOrder.setIsMb(OtcEntrustOrder.IS_MB_N);
        } else {
            otcEntrustOrder.setMbId(mb.getId());
            otcEntrustOrder.setIsMb(OtcEntrustOrder.IS_MB_Y);
        }
@@ -114,11 +130,9 @@
            throw new GlobalException("类型错误");
        }
        OtcMarketBussiness mb = otcMarketBussinessDao.selectMarketBussinessByMemberId(member.getId());
        if (mb == null) {
        if (member.getIsTrader() == 2) {
            otcEntrustOrder.setIsMb(OtcEntrustOrder.IS_MB_N);
        } else {
            otcEntrustOrder.setMbId(mb.getId());
            otcEntrustOrder.setIsMb(OtcEntrustOrder.IS_MB_Y);
        }
@@ -141,19 +155,23 @@
    @Override
    public IPage<EntrustListVo> findEntrustListInPage(EntrustOrderListDto dto) {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
        Page<EntrustListVo> page = new Page<>(dto.getPageNum(), dto.getPageSize());
        dto.setMemberId(member.getId());
        return this.baseMapper.selectEntrustListInPage(dto, page);
    }
    @Override
    public List<EntrustListInfoVo> findOwnEntrustOrder() {
    public List<EntrustListInfoVo> findOwnEntrustOrder(EntrustOrderListDto orderListDto) {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
        OtcEntrustOrder query = new OtcEntrustOrder();
        query.setStatus(3);
        query.setMemberId(member.getId());
        List<OtcEntrustOrder> otcEntrustOrders = this.baseMapper.selectEntrustOrderByOrderType(query);
        return OtcEntrustOrderMapper.INSTANCE.entrustToListInfoVoList(otcEntrustOrders);
        Page<OtcEntrustOrder> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize());
        IPage<OtcEntrustOrder> result = this.baseMapper.selectOwnEntrustListInPage(query, page);
        return OtcEntrustOrderMapper.INSTANCE.entrustToListInfoVoList(result.getRecords());
    }
    @Override
@@ -187,18 +205,19 @@
    @Override
    public Result findEntrustOrderDetail(Long id) {
        MemberEntity member = LoginUserUtils.getAppLoginUser();
        OtcEntrustOrder otcEntrustOrder = this.baseMapper.selectById(id);
        if (otcEntrustOrder == null) {
            return Result.fail("参数错误");
        }
        if (!member.getId().equals(otcEntrustOrder.getMemberId())) {
            return Result.fail("请求有误");
        }
        MemberPaymentMethodEntity defualtMethod = memberPaymentMethodDao.selectDefualtMethod(otcEntrustOrder.getMemberId(), null, "1");
        MemberEntity member = memberDao.selectById(otcEntrustOrder.getMemberId());
        OtcMarketBussiness mb = otcMarketBussinessDao.selectMarketBussinessByMemberId(member.getId());
        EntrustOrderDetailVo detail = OtcEntrustOrderMapper.INSTANCE.entityToOrderDetail(otcEntrustOrder);
        detail.setName(member.getName());
        detail.setOrderCnt(mb.getBuyCnt());
        detail.setFinishRatio(mb.getFinishRatio());
        detail.setPayType(defualtMethod.getPaymentType());
        return Result.ok(detail);
    }
}