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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.red.circle.framework.mybatis.dao.BaseDAO;
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.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 每月充值用户 Mapper 接口.
 * </p>
 *
 * @author pengshigang
 * @since 2022-05-27
 */
public interface MonthlyRechargeUserDAO extends BaseDAO<MonthlyRechargeUser> {

  /**
   * 获取充值记录.
   */
  List<MonthlyRechargeUserDTO> listMonthlyRecharge(@Param("query") UserRechargeMonthQryCmd query);

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

  /**
   * 不存在插入.
   */
  void saveIfAbsent(@Param("param") MonthlyRechargeUser param);
}
