package com.qunzhixinxi.hnqz.daemon.quartz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qunzhixinxi.hnqz.daemon.quartz.entity.SingleMemberSettleSameAmountInSeveralMonths;
import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmScorePackageSettleNote;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * {@code WmScorePackageSettleNoteService} 接口
 *
 * @author Hengchen.Sun
 * @version 1.0.0
 * @date 2021-06-08
 * @since ver.1.0.0
 */
public interface WmScorePackageSettleNoteService extends IService<WmScorePackageSettleNote> {

	/**
	 * 查询指定部门对应的结算数据
	 *
	 * @param deptId
	 * @param subType
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<WmScorePackageSettleNote> listSettleAmountByDeptId(Integer deptId, String subType, LocalDateTime startTime, LocalDateTime endTime);

	/**
	 * 同一用户，连续多月结算金额相同
	 *
	 * @param startTime 开始时间
	 * @param endTime   结束时间
	 * @return 风控对象集合
	 */
	List<SingleMemberSettleSameAmountInSeveralMonths> singleMemberSettleSameAmountInSeveralMonths(LocalDateTime startTime, LocalDateTime endTime);


	/**
	 * 同一用户，连续多月结算金额超过限额
	 *
	 * @param startTime 开始时间
	 * @param endTime   结束时间
	 * @param limit     限额
	 * @return 运行结果
	 */
	List<SingleMemberSettleSameAmountInSeveralMonths> singleMemberSettleAmountOverrunInSeveralMonths(LocalDateTime startTime, LocalDateTime endTime, BigDecimal limit);

	/**
	 * 同一企业，当前月给多个用户支付相同金额
	 *
	 * @param startTime   开始时间
	 * @param endTime     结束时间
	 * @param memberCount 统计个数
	 * @return 风控对象
	 */
	List<SingleMemberSettleSameAmountInSeveralMonths> singleEnterpriseSettleSameAmountForSeveralMembersInCurrentMonth(LocalDateTime startTime, LocalDateTime endTime, int memberCount);
}
