package com.red.circle.other.infra.database.cache.service.other;

/**
 * 累计充值.
 *
 * @author pengshigang on 2022/3/29
 */
public interface CumulativeRechargeCacheService {

  /**
   * 累计今天充值金额.
   *
   * @param userId        用户id
   * @param rechargeScore 充值积分
   */
  void incrTodayRechargeScore(Long userId, Double rechargeScore);

  /**
   * 扣除今天充值金额.
   *
   * @param userId        用户id
   * @param rechargeScore 充值积分
   */
  void decrTodayRechargeScore(Long userId, Double rechargeScore);

  /**
   * 累计今天充值金额.
   *
   * @param userId userId
   */
  Double getTodayRechargeScore(Long userId);

  /**
   * 校验今天用户是否已领奖.
   *
   * @param userId 用户id
   * @param level  等级
   * @return true 已领奖
   */
  Boolean checkTodayAwarded(Long userId, Long level);

  /**
   * 标记今天是否已领奖.
   *
   * @param userId 用户id
   * @param level  等级
   * @return true 已领奖
   */
  Boolean markTodayAwarded(Long userId, Long level);


}
