From d2847c8e9ee9296ee1f318abd2113275dd50f020 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 21 May 2021 11:55:19 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java |    5 +++++
 src/main/resources/mapper/otc/OtcOrderDao.xml                   |   14 ++++++++++++++
 src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java      |   11 ++++++++++-
 3 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
index 61087ef..04413c9 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
@@ -7,6 +7,7 @@
 import com.xcong.excoin.modules.otc.vo.OrderListVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 public interface OtcOrderDao extends BaseMapper<OtcOrder> {
@@ -24,4 +25,8 @@
     Integer selectMemberCntForEntrust(@Param("entrustMemberId") Long entrustMemberId);
 
     Integer selectTotalOrderCount(@Param("entrustMemberId") Long entrustMemberId, @Param("status") Integer status);
+
+    BigDecimal selectMemberAvgPayTime(@Param("memberId") Long memberId);
+
+    BigDecimal selectMemberAvgCoinTime(@Param("memberId") Long memberId);
 }
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 b989a49..10b8b37 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java
+++ b/src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java
@@ -62,8 +62,17 @@
                 Integer finishCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), OtcOrder.STATUS_FINISH);
                 BigDecimal finishRatio = BigDecimal.valueOf(finishCnt).divide(BigDecimal.valueOf(totalCnt), 4, BigDecimal.ROUND_DOWN);
                 // 平均付款时间
-
+                BigDecimal avgPayTime = otcOrderDao.selectMemberAvgPayTime(mb.getMemberId());
                 // 平均放币时间
+                BigDecimal avgCoinTime = otcOrderDao.selectMemberAvgCoinTime(mb.getMemberId());
+
+                mb.setBuyCnt(buyCnt);
+                mb.setTotalOrderCnt(totalCnt);
+                mb.setFinishRatio(finishRatio);
+                mb.setAvgPayTime(avgPayTime.intValue());
+                mb.setAvgCoinTime(avgCoinTime.intValue());
+
+                otcMarketBussinessDao.updateById(mb);
             }
         }
     }
diff --git a/src/main/resources/mapper/otc/OtcOrderDao.xml b/src/main/resources/mapper/otc/OtcOrderDao.xml
index fbdab7a..96671ec 100644
--- a/src/main/resources/mapper/otc/OtcOrderDao.xml
+++ b/src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -70,4 +70,18 @@
             and status #{status}
         </if>
     </select>
+
+    <select id="selectMemberAvgPayTime" resultType="java.math.BigDecimal">
+        select
+               IFNULL(sum(timestampdiff(SECOND, create_time, pay_time))/count(1), 0)
+        from otc_order
+        where status=3 and member_id=#{memberId} and order_type='B'
+    </select>
+
+    <select id="selectMemberAvgCoinTime" resultType="java.math.BigDecimal">
+        select
+            IFNULL(sum(timestampdiff(SECOND, pay_time, coin_time))/count(1), 0)
+        from otc_order
+        where status=3 and member_id=40 and order_type='S'
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1