Helius
2021-05-21 d2847c8e9ee9296ee1f318abd2113275dd50f020
modify
3 files modified
30 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java 11 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/otc/OtcOrderDao.xml 14 ●●●●● patch | view | raw | blame | history
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);
}
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);
            }
        }
    }
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>