package com.red.circle.order.infra.database.rds.service.count;

import com.red.circle.framework.dto.PageQuery;
import com.red.circle.framework.dto.PageResult;
import com.red.circle.framework.mybatis.service.BaseService;
import com.red.circle.order.infra.database.rds.entity.count.MonthlyRechargeUser;
import com.red.circle.order.inner.model.cmd.UserRechargeMonthQryCmd;
import com.red.circle.order.inner.model.dto.MonthlyRechargeUserDTO;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 每月充值用户 服务类.
 * </p>
 *
 * @author pengshigang
 * @since 2022-05-27
 */
public interface MonthlyRechargeUserService extends BaseService<MonthlyRechargeUser> {

  /**
   * 查询用户本月充值记录
   */
  List<MonthlyRechargeUserDTO> listMonthlyRecharge(UserRechargeMonthQryCmd query);


  /**
   * 分页查询(后台管理).
   */
  PageResult<MonthlyRechargeUser> opsPageQuery(PageQuery pageQuery, String sysOrigin, Long userId,
      Integer rechargeDate);

  /**
   * 分页查询(后台管理).
   */
  PageResult<MonthlyRechargeUser> opsPageQuery(PageQuery pageQuery, Long userId);

  /**
   * 添加总额.
   */
  void incAmount(Long userId, BigDecimal amount);

  /**
   * 扣除.
   */
  void decr(Long userId, BigDecimal amount);

}
