package com.hzs.bonus.detail.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberAssessDetail;
import com.hzs.common.domain.member.ext.CuMemberSettleExt;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 考核业绩变化明细表 服务类
 * </p>
 *
 * @author hzs
 * @since 2022-10-28
 */
public interface ICuMemberAssessDetailService extends IService<CuMemberAssessDetail> {

    /*
     * @description: 根据期间删除会员考核记录
     * @author: sui q
     * @date: 2023/5/25 10:52
     * @param: null null
     **/
    void deleteCuMemberAssessDetailByPeriod(String tableName, Integer period);

    /*
     * @description: 每月考试将订单插入会员考核明细
     * @author: sui q
     * @date: 2023/5/25 11:36
     * @param: null null
     **/
    void insertCuMemberAssesDetailByOrder(String tableName, Integer period, Date startDate, Date endDate);

    /**
     * 插入考核记录
     * @param tableName 表名
     * @param period 期间
     * @param newCuMemberSettleExtList 会员列表
     * @return: void
     * @Author: sui q
     * @Date: 2022/11/9 15:56
     */
    void insertCuMemberAssessDetailByPeriod(String tableName, Integer period, List<CuMemberSettleExt> newCuMemberSettleExtList);

    /**
     * 新增或修改会员考核明细表，根据期间，重算就是修改
     * @param tableName 来源表
     * @param period 期间
     * @Author: sui q
     * @Date: 2022/11/8 11:21
     */
    void updateCuMemberAssessDetailByPeriod(String tableName, Integer period);

    /**
    * 删除可能会发生变动的会员的考核明细
     * @param revokeDetailList 变动的记录
    * @Author: sui q
    * @Date: 2022/11/9 15:31
    */
    void deleteCuMemberAssessDetailByList(List<CuMemberAssessDetail> revokeDetailList);
}
