package com.red.circle.other.infra.database.mongo.service.activity;

import com.red.circle.other.infra.database.mongo.entity.activity.RankQueenCount;
import com.red.circle.other.infra.database.mongo.entity.activity.RankQueenType;
import java.util.List;

/**
 * 榜单统计.
 *
 * @author pengshigang on 2022/02/14
 */
public interface RankCountService {

  /**
   * 累计统计.
   */
  void incrRankQuantity(String sysOrigin, Long businessId, RankQueenType type, Long quantity);

  /**
   * 减少统计.
   */
  void decrRankQuantity(String sysOrigin, Long businessId, RankQueenType type, Long quantity);

  /**
   * 获取榜单统计记录top.
   */
  List<RankQueenCount> listRank(String sysOrigin, RankQueenType type, Integer size);

  /**
   * 矫正数据.
   */
  void correctionData(Long businessId, RankQueenType type, Long quantity);

  void removeByBusinessId(Long businessId);
}
