package com.hzs.member.detail.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.sale.ext.SaOrderExt;

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

/**
 * 会员信息-等级升级记录 服务类
 *
 * @author hzs
 * @since 2022-10-11
 */
public interface ICuMemberLevelService extends IService<CuMemberLevel> {

    /**
     * 查询当天最大的等级
     *
     * @param saOrderExtList 订单
     * @param currentDate    日期，当天
     * @return: CuMemberLevel
     * @Author: sui q
     * @Date: 2023/2/13 10:36
     */
    List<CuMemberLevel> queryMaxLevelCurrentDate(List<SaOrderExt> saOrderExtList, Date currentDate);

    /**
     * 根据订单主键查询升级记录
     *
     * @param pkOrder 订单主键
     * @return: CuMemberLevel
     * @Author: sui q
     * @Date: 2023/3/29 11:41
     */
    CuMemberLevel queryCuMemberLevelRecord(Long pkOrder);

    /*
     * @description: 验证是否存在抗衰能量仓生效后的升级记录
     * @author: sui q
     * @date: 2023/6/13 14:16
     * @param: null null
     **/
    List<CuMemberLevel> queryCuMemberLevelByDate(Long pkMember, Date enableDate);

    /**
     * 删除会员等级升级记录
     *
     * @param pkOrder         订单
     * @param pkApprove       审核人
     * @param currentDateTime 当前时间
     * @return: void
     * @Author: sui q
     * @Date: 2023/3/30 9:15
     */
    void deleteCuMemberLevelRecord(Long pkOrder, Long pkApprove, Date currentDateTime);

    /**
     * 查询手动升级的最新一条
     *
     * @param pkMember  会员ID
     * @param pkCountry 所属国家
     * @return
     */
    CuMemberLevel queryLastManualUpgrade(Long pkMember, Integer pkCountry);

}
