From b5003e2590cd2621061c6fd0ac731b5ddee6b715 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 21 May 2021 20:28:02 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java b/src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java index 10b8b37..59dcf6a 100644 --- a/src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java +++ b/src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao; +import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.otc.dao.OtcEntrustOrderDao; import com.xcong.excoin.modules.otc.dao.OtcMarketBussinessDao; import com.xcong.excoin.modules.otc.dao.OtcOrderDao; @@ -32,6 +34,8 @@ private OtcEntrustOrderDao otcEntrustOrderDao; @Autowired private OtcMarketBussinessDao otcMarketBussinessDao; + @Autowired + private MemberWalletCoinDao memberWalletCoinDao; @Scheduled(cron = "0/1 * * * * ? ") @@ -42,6 +46,12 @@ long between = DateUtil.between(new Date(), DateUtil.offsetMinute(otcOrder.getCreateTime(), 30), DateUnit.SECOND, false); if (between <= 0) { + OtcOrder saleOrder = otcOrderDao.selectOrderByOrderNoAndType(otcOrder.getOrderNo(), OtcEntrustOrder.ORDER_TYPE_S); + if (!saleOrder.getMemberId().equals(saleOrder.getEntrustMemberId())) { + MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(saleOrder.getMemberId(), "USDT"); + memberWalletCoinDao.subFrozenBalance(saleOrder.getMemberId(), wallet.getId(), saleOrder.getCoinAmount()); + } + otcEntrustOrderDao.updateRemainAmount(otcOrder.getEntrustOrderId(), otcOrder.getCoinAmount()); otcOrderDao.updateOrderStatusByOrderNo(OtcOrder.STATUS_CANCEL, null, otcOrder.getOrderNo()); } @@ -60,7 +70,10 @@ Integer totalCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), null); // 完成率 Integer finishCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), OtcOrder.STATUS_FINISH); - BigDecimal finishRatio = BigDecimal.valueOf(finishCnt).divide(BigDecimal.valueOf(totalCnt), 4, BigDecimal.ROUND_DOWN); + if (totalCnt != null) { + BigDecimal finishRatio = BigDecimal.valueOf(finishCnt).divide(BigDecimal.valueOf(totalCnt), 4, BigDecimal.ROUND_DOWN); + mb.setFinishRatio(finishRatio); + } // 平均付款时间 BigDecimal avgPayTime = otcOrderDao.selectMemberAvgPayTime(mb.getMemberId()); // 平均放币时间 @@ -68,7 +81,6 @@ mb.setBuyCnt(buyCnt); mb.setTotalOrderCnt(totalCnt); - mb.setFinishRatio(finishRatio); mb.setAvgPayTime(avgPayTime.intValue()); mb.setAvgCoinTime(avgCoinTime.intValue()); -- Gitblit v1.9.1