admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderCountService.java
@@ -1,66 +1,225 @@
package com.yeshi.fanli.service.inter.order;
import java.util.List;
import java.util.Map;
public interface CommonOrderCountService {
   /**
    * 当前各个状态订单数
    * @param state 状态
    * @return
    */
   public Long countByState(Integer state);
   /**
    *  统计所有订单
    * @param channel
    * @return
    */
   public List<Map<String, Object>> getTrackAccuracyRate(Integer dateType, String year, String startTime,
         String endTime) throws Exception;
   /**
    * 统计总金额
    * @param dateType
    * @param year
    * @param startTime
    * @param endTime
    * @return
    * @throws Exception
    */
   public List<Map<String, Object>> countWeiQaunOrderMoney(Integer dateType, String year, String startTime,
         String endTime)   throws Exception;
   /**
    * 统计总个数
    * @param dateType
    * @param year
    * @param startTime
    * @param endTime
    * @return
    * @throws Exception
    */
   public List<Map<String, Object>> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime)
         throws Exception;
   /**
    * 根据结算时间统计
    * @param uid
    * @param state
    * @param day
    * @return
    * @throws Exception
    */
   public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day);
   /**
    * 根据结算时间筛选 上个月已结算的订订单数量
    * @param uid
    * @return
    */
   public Map<String, Object> lastMonthSettleOrderNumber(Long uid);
}
package com.yeshi.fanli.service.inter.order;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.yeshi.fanli.dto.ChartTDO;
import com.yeshi.fanli.dto.order.CountOrderDTO;
import com.yeshi.fanli.entity.admin.count.CountOrderTrackRate;
public interface CommonOrderCountService {
   /**
    * 当前各个状态订单数
    *
    * @param state
    *            状态
    * @return
    */
   public Long countByState(Integer state);
   /**
    * 统计总金额
    *
    * @param dateType
    * @param year
    * @param startTime
    * @param endTime
    * @return
    * @throws Exception
    */
   public List<ChartTDO> countWeiQaunOrderMoney(Integer dateType, String year, String startTime, String endTime)
         throws Exception;
   /**
    * 统计总个数
    *
    * @param dateType
    * @param year
    * @param startTime
    * @param endTime
    * @return
    * @throws Exception
    */
   public List<ChartTDO> countWeiQaunOrderNumber(Integer dateType, String year, String startTime, String endTime)
         throws Exception;
   /**
    * 根据结算时间统计
    *
    * @param uid
    * @param state
    * @param day
    * @return
    * @throws Exception
    */
   public Map<String, Object> countOrderNumberBySettleTime(Long uid, Integer state, Integer day);
   /**
    * 根据结算时间筛选 上个月已结算的订订单数量
    *
    * @param uid
    * @return
    */
   public Map<String, Object> lastMonthSettleOrderNumber(Long uid);
   /**
    * 根据订单号 统计奖励券加成金额
    *
    * @param orderNo
    * @return
    */
   BigDecimal getMoneyByOrderNo(String orderNo);
   /**
    * 统计已到账返利订单
    *
    * @param uid
    * @param dateTime
    * @return
    */
   public long countValidOrderByDate(Long uid, String dateTime);
   /**
    * 查询用户在同一店铺购买超过一定数量商品的店铺数量
    *
    * @param typeList
    *            -红包类型
    * @param uid
    *            -用户ID
    * @param minSameShopGoodsCount
    *            -同一店铺买的最小订单数
    * @return
    */
   long countSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
   /**
    * 查询用户购买相同商品超过一定的订单数量的商品数量
    *
    * @param typeList
    * @param uid
    * @param minSameGoodsOrderCount
    * @return
    */
   long countSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
   /**
    * 查询用户在同一店铺购买超过一定数量商品的店铺id
    *
    * @param typeList
    *            -红包类型
    * @param uid
    *            -用户ID
    * @param minSameShopGoodsCount
    *            -同一店铺买的最小订单数
    * @return
    */
   List<Long> getSameShopOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameShopGoodsCount);
   /**
    * 查询用户购买相同商品超过一定的订单数量的商品id
    *
    * @param typeList
    * @param uid
    * @param minSameGoodsOrderCount
    * @return
    */
   List<Long> getSameGoodsOrderByUidAndHongBaoType(List<Integer> typeList, Long uid, int minSameGoodsOrderCount);
   /**
    * 统计日期内产生有效订单数量(返利 + 分享)
    * @param preDay
    * @param uid
    * @return
    */
   public Integer countOderByUidAndDate(Date preDay, Long uid);
   /**
    * 统计日期内产生有效订单数量(返利 + 分享) 多个uid
    * @param preDay
    * @param uid
    * @return
    */
   //public Integer countOrderByUidsAndDate(Date preDay, List<Long> list);
   /**
    * 统计再此时间内  产生订单的用户数量
    * @param preDay
    * @param list
    * @return
    */
   public Integer countDownOrderUserByUidAndDate(Date preDay, List<Long> list);
   /**
    * 统计订单佣金
    * @param preDay
    * @param list
    * @return
    */
   List<CountOrderDTO> countCommissionByDay(String preDay);
   /**
    * 总订单数 每-天
    * @param preDay
    * @return
    */
   public Integer countOderByDate(String preDay);
   /**
    * 统计订单佣金
    * @param preDay
    * @return
    */
   public BigDecimal countCommissionByDate(String preDay);
   /**
    * 当日每个用户下单数量
    * @param preDay
    * @return
    */
   public List<CountOrderDTO> countValidOrderByDay(String preDay);
   /**
    * 统计跟踪率
    * @param type
    * @param startTime
    * @param endTime
    * @return
    */
   public List<CountOrderTrackRate> getOrderTrackRate(int type, Date startTime, Date endTime);
   /**
    * 查询最近50小于10的订单数量
    * @param uid
    * @return
    */
   public Integer countOderByUidAndLess10(Long uid);
   public Long countOrderBySourceTypeAndDay(int source, String preDay);
   public List<Long> getDownOrderUserByListUidAndDate(Date preDay, List<Long> list);
   /**
    * 查询当日下单用户
    * @param preDay
    * @return
    */
   public List<Long> getUidByValidOrderByDay(String preDay);
   /**
    * 统计最近day天有效订单数量
    * @param uid
    * @param source
    * @param day
    * @return
    */
   public long countOrderBySourceAndNearDay(Long uid, int source, int day);
}