src/main/java/com/xcong/excoin/modules/otc/dao/OtcOrderDao.java
@@ -26,7 +26,7 @@ Integer selectMemberCntForEntrust(@Param("entrustMemberId") Long entrustMemberId); Integer selectTotalOrderCount(@Param("entrustMemberId") Long entrustMemberId, @Param("status") Integer status); Integer selectTotalOrderCount(@Param("entrustMemberId") Long entrustMemberId, @Param("status") Integer status, @Param("type") String type); BigDecimal selectMemberAvgPayTime(@Param("memberId") Long memberId); src/main/java/com/xcong/excoin/modules/otc/entity/OtcMarketBussiness.java
@@ -43,4 +43,8 @@ * 已回款 */ private BigDecimal hasBackMoney; private Integer saleOrderCnt; private BigDecimal saleFinishRatio; } src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcMarketBussinessServiceImpl.java
@@ -109,7 +109,8 @@ } MarketBussinessInfoVo mbVo = OtcMarketBussinessMapper.INSTANCE.entityToVo(mb); mbVo.setTotalOrderCnt(mb.getTotalOrderCnt() + mb.getSaleOrderCnt()); mbVo.setFinishRatio(mb.getFinishRatio().add(mb.getSaleFinishRatio()).divide(BigDecimal.valueOf(2), 4, BigDecimal.ROUND_DOWN)); MemberEntity member = memberDao.selectById(mb.getMemberId()); OtcEntrustOrder query = new OtcEntrustOrder(); query.setMemberId(mb.getMemberId()); src/main/java/com/xcong/excoin/quartz/job/OtcOrderJob.java
@@ -95,13 +95,22 @@ for (OtcMarketBussiness mb : list) { // 服务人数 Integer buyCnt = otcOrderDao.selectMemberCntForEntrust(mb.getMemberId()); // 总单数 Integer totalCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), null); // 完成率 Integer finishCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), OtcOrder.STATUS_FINISH); if (totalCnt != null && totalCnt != 0) { BigDecimal finishRatio = BigDecimal.valueOf(finishCnt).divide(BigDecimal.valueOf(totalCnt), 4, BigDecimal.ROUND_DOWN); // 买单数 Integer buyTotalCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), null, OtcEntrustOrder.ORDER_TYPE_B); // 买单完成率 Integer buyFinishCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), OtcOrder.STATUS_FINISH, OtcEntrustOrder.ORDER_TYPE_B); if (buyTotalCnt != null && buyTotalCnt != 0) { BigDecimal finishRatio = BigDecimal.valueOf(buyFinishCnt).divide(BigDecimal.valueOf(buyTotalCnt), 4, BigDecimal.ROUND_DOWN); mb.setFinishRatio(finishRatio); } // 买单数 Integer saleTotalCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), null, OtcEntrustOrder.ORDER_TYPE_S); // 买单完成率 Integer saleFinishCnt = otcOrderDao.selectTotalOrderCount(mb.getMemberId(), OtcOrder.STATUS_FINISH, OtcEntrustOrder.ORDER_TYPE_S); if (saleTotalCnt != null && saleTotalCnt != 0) { BigDecimal finishRatio = BigDecimal.valueOf(saleFinishCnt).divide(BigDecimal.valueOf(saleTotalCnt), 4, BigDecimal.ROUND_DOWN); mb.setSaleFinishRatio(finishRatio); } // 平均付款时间 BigDecimal avgPayTime = otcOrderDao.selectMemberAvgPayTime(mb.getMemberId()); @@ -109,7 +118,8 @@ BigDecimal avgCoinTime = otcOrderDao.selectMemberAvgCoinTime(mb.getMemberId()); mb.setBuyCnt(buyCnt); mb.setTotalOrderCnt(totalCnt); mb.setTotalOrderCnt(buyTotalCnt); mb.setSaleOrderCnt(saleTotalCnt); mb.setAvgPayTime(avgPayTime.intValue()); mb.setAvgCoinTime(avgCoinTime.intValue()); src/main/resources/mapper/otc/OtcEntrustOrderDao.xml
@@ -11,8 +11,10 @@ ,a.remain_coin_amount amount ,a.limit_min_amount min ,a.limit_max_amount max ,b.total_order_cnt orderCnt ,b.finish_ratio finishRatio ,case when a.order_type = 'B' then b.total_order_cnt when a.order_type = 'S' then b.sale_order_cnt end orderCnt ,case when a.order_type = 'B' then b.finish_ratio when a.order_type = 'S' then b.sale_finish_ratio end finishRatio ,d.payment_type payType from otc_entrust_order a left join otc_market_bussiness b on a.member_id=b.member_id src/main/resources/mapper/otc/OtcOrderDao.xml
@@ -70,6 +70,9 @@ <if test="status != null"> and status = #{status} </if> <if test="type != null and type!=''"> and order_type = #{type} </if> </select> <select id="selectMemberAvgPayTime" resultType="java.math.BigDecimal">