package com.hzs.member.detail.mapper;

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

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

/**
 * 会员信息-会员考核记录 Mapper 接口
 */
public interface CuMemberAssessMapper extends BaseMapper<CuMemberAssess> {

    /**
     * 会员-考核明细列表
     *
     * @param: [cuMemberAssessVO] 查询条件
     * @return: java.util.List<com.hzs.member.detail.vo.CuMemberAssessVO>
     **/
    List<CuMemberAssessVO> selectAssessList(@Param("tableName") String tableName,
                                            @Param("pkMember") Long pkMember,
                                            @Param("pkCountry") Integer pkCountry,
                                            @Param("assessStatus") Integer assessStatus,
                                            @Param("assessType") Integer assessType,
                                            @Param("changeType") Integer changeType,
                                            @Param("startDate") Date startDate,
                                            @Param("endDate") Date endDate,
                                            @Param("orderTypeList") List<Integer> orderTypeList,
                                            @Param("startTradeTime") Date startTradeTime,
                                            @Param("endDateTradeTime") Date endDateTradeTime
    );

    /**
     * @description: 查询会员月度考核
     * @param: [tableName, cuMemberAssessVO]
     * @return: java.util.List<com.hzs.member.detail.vo.CuMemberAssessVO>
     **/
    List<CuMemberAssessVO> getMemberAssessMonthList(@Param("tableName") String tableName,
                                                    @Param("pkMember") Long pkMember,
                                                    @Param("assessType") Integer assessType,
                                                    @Param("pkCountry") Integer pkCountry,
                                                    @Param("period") Integer period
    );


    /**
     * @description: 查询会员订单考核积分
     * @param: [cuMemberAssessVO]
     * @return: java.util.List<com.hzs.member.detail.vo.CuMemberAssessVO>
     **/
    CuMemberAssessVO getOrderAssessList(CuMemberAssessVO cuMemberAssessVO);

}
