package com.hzs.member.base.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.detail.CuMemberAchieveLog;
import com.hzs.member.base.vo.CuMemberAchieveLogVO;
import org.apache.ibatis.annotations.Param;

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

/**
 * 注水业绩记录表 Mapper 接口
 */
public interface CuMemberAchieveLogMapper extends BaseMapper<CuMemberAchieveLog> {

    /**
     * 特殊业务-注水业绩记录查询
     **/
    List<CuMemberAchieveLogVO> queryMemberAchieveLogList(@Param("memberCode") String memberCode,
                                                         @Param("memberName") String memberName,
                                                         @Param("pkCountry") Integer pkCountry,
                                                         @Param("pkAwards") Integer pkAwards,
                                                         @Param("pkTeamCode") Integer pkTeamCode,
                                                         @Param("pkVertex") Integer pkVertex,
                                                         @Param("startDate") Date startDate,
                                                         @Param("endDate") Date endDate,
                                                         @Param("staDueDate") Date staDueDate,
                                                         @Param("endDueDate") Date endDueDate,
                                                         @Param("waterStatus") Integer waterStatus,
                                                         @Param("infusingWaterType") Integer infusingWaterType
    );

    /**
     * 根据历史期数查询历史业绩
     **/
    List<CuMemberAchieveLogVO> queryMemberAchieveHistoryList(@Param("calList") List<CuMemberAchieveLogVO> calList);

    /**
     * 特殊业务-注水业绩-审核列表
     **/
    List<CuMemberAchieveLogVO> queryTryAchieveLogList(@Param("approveStatus") Integer approveStatus,
                                                      @Param("businessNo") String businessNo);

    /**
     * 查询最大审核次数
     **/
    Integer selectByMaxApproveNumber(@Param("pkMember") Long pkMember, @Param("approveStatus") int approveStatus);

    /**
     * 校验是否存在未审核数据
     **/
    List<CuMemberAchieveLogVO> checkAchieveList(CuMemberAchieveLogVO memberAchieveLogVO);

}
