package com.hzs.bonus.detail.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.ext.CuMemberRetailRangeExt;
import com.hzs.common.domain.member.detail.CuMemberAwards;

import java.util.List;

/**
 * 会员信息-奖衔升级记录 服务类
 */
public interface ICuMemberAwardsService extends IService<CuMemberAwards> {

    /**
     * 回退极差奖衔，每日重新结算，先把奖衔回退到前一天
     *
     * @param period         结算期间
     * @param rangeTableName 结算表
     */
    void calculateCuMemberRetailRangeAwardsInit(String settleDate, Integer period, String rangeTableName);

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

    /**
     * 删除升级的奖衔
     */
    void deleteCuMemberAwards(List<CuMemberAwards> cuMemberAwards, Integer period);

    /**
     * 查询自动升级的等级
     */
    List<CuMemberAwards> queryCuMemberAwards(List<CuMemberRetailRangeExt> cuMemberRetailRangeExtList, Integer period);

    /**
     * 回退奖衔
     */
    void mergeCuMemberBackAwards(String rangeTableName, Long pkMember, Integer period, Integer isToday);

}
