package com.hzs.bonus.detail.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.bonus.detail.vo.CuRegionAssessVO;
import com.hzs.bonus.param.CuRegionAssessParam;
import com.hzs.common.domain.member.detail.CuRegionAssess;
import com.hzs.common.domain.member.detail.ext.CuRegionAssessExt;
import org.apache.ibatis.annotations.Param;

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

/**
 * <p>
 * 新零售会员区域考核 服务类
 * </p>
 *
 * @author hzs
 * @since 2025-01-13
 */
public interface ICuRegionAssessService extends IService<CuRegionAssess> {

    /*
     * @description: 每月考核区域是否达标
     * @author: sui q
     * @date: 2025/1/13 16:46
     * @param: null null
     **/
    void assessRegionByEveryMonth(String settleDate, String rangeTableName);

    /**
     * @description: 定时处理会员收益区域（处理前三天）
     * @author: zhang jing
     * @date: 2025/3/7 10:08
     * @param: [startDate]
     * @return: void
     **/
    void validateHandAreaAssess(Date startDate,Date endDate);

    /*
     * @description: 考核开始日期
     * @author: sui q
     * @date: 2025/1/13 17:13
     * @param: null null
     **/
    void deleteAssessRegionByDate(Date assessStartDate, Integer assessPeriod);

    /*
     * @description: 查询考核结果
     * @author: sui q
     * @date: 2025/1/15 17:22
     * @param: null null
     **/
    List<CuRegionAssessExt> queryRegionAssessByCondition(CuRegionAssessParam regionAssessParam);

    List<CuRegionAssessVO> getCuRegionAssessVoS(List<CuRegionAssessExt> cuRegionAssessExtList);
}
