package com.hzs.bonus.detail.mapper;

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

import java.util.List;

/**
 * 会员信息-奖衔升级记录 Mapper 接口
 */
public interface CuMemberAwardsMapper extends BaseMapper<CuMemberAwards> {

    /**
     * 批量更新会员奖衔记录，此方法用于奖金结算，批量更新为删除状态，留存奖衔降级记录
     *
     * @param cuMemberAwardsList 更新的人
     * @param period             期间
     */
    Integer updateBatchCuMemberAwards(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList, @Param("period") Integer period);

    /**
     * 查询会员最后一条奖衔升级记录
     *
     * @param cuMemberAwardsList 奖衔升级记录
     */
    List<CuMemberAwards> queryLastCuMemberAwards(@Param("cuMemberAwardsList") List<?> cuMemberAwardsList);

    /**
     * 删除自动升级的奖衔升级记录
     *
     * @param period
     * @return
     */
    Integer deleteCuMemberAwards(@Param("period") Integer period);

    /**
     * 批量插入奖衔记录
     *
     * @param cuMemberAwardsList 需要插入的奖衔列表
     */
    Integer saveBatchCuMemberAwards(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList);

    /**
     * 根据结算表更新奖衔
     */
    void updateCuMemberAwardsExamine(@Param("assessTableName") String assessTableName, @Param("awardPeriod") Integer awardPeriod,
                                     @Param("assessPeriod") Integer assessPeriod);
}
