package com.hzs.bonus.base.mapper;

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

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 会员 Mapper 接口
 */
public interface CuMemberMapper extends BaseMapper<CuMember> {

    CuMember getByPkId(@Param("pkId") Serializable id);

    /**
     * 更新会员奖衔根据临时表
     */
    int updateCuMemberRetailAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);

    /**
     * 更新会员最高奖衔
     *
     * @param period
     * @param awardType
     * @return
     */
    int updateCuMemberMaxAwardsByPeriod(@Param("period") Integer period, @Param("awardType") Integer awardType);

    /**
     * 更新会员奖衔根据临时表
     *
     * @param cuMemberAwardsList 修改奖衔的会员
     */
    int updateCuMemberRetailRangeByList(@Param("cuMemberAwardsList") List<CuMemberAwards> cuMemberAwardsList,
                                        @Param("period") Integer period,
                                        @Param("awardType") Integer awardType);

    /**
     * 更新会员奖衔根据临时表
     */
    void updateBackCuMemberRetailRangeAward(@Param("period") Integer period, @Param("awardType") Integer awardType);

    /**
     * 更新会员奖衔根据临时表
     */
    void updateCuMemberRetailRangeAwardByDate(@Param("settleDate") Date settleDate, @Param("awardType") Integer awardType);

    /**
     * 初始化会员奖衔
     */
    void updateCuMemberRetailRangeInitAward();

    /**
     * 初始化会员V5奖衔
     */
    void updateCuMemberRetailRangeInitV5Award();

}
