package com.hzs.member.account.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.account.CuMemberTradeRecoil;
import com.hzs.member.account.vo.CuMemberTradeDetailVO;
import com.hzs.member.account.vo.CuMemberTradeVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 会员活动发放复消币明细 服务类
 *
 * @author hzs
 * @since 2024-07-19
 */
public interface ICuMemberTradeRecoilService extends IService<CuMemberTradeRecoil> {

    /**
     * 撤销订单处理
     *
     * @param pkMember 会员编号
     * @param pkGrade  会员等级（当前）
     * @return
     */
    int cancelOrderHandle(Long pkMember, Integer pkGrade);

    /**
     * 根据会员查询未发放的复消币
     *
     * @param pkMember  会员ID
     * @param pkCountry 国家
     * @return BigDecimal
     */
    BigDecimal selectUnissuedAmount(Long pkMember, Integer pkCountry);


    /**
     * 查询复消币明细(会员端)
     *
     * @param cuMemberTradeVO 入参
     * @return List<CuMemberTradeVO>
     */
    List<CuMemberTradeVO> selectRecoilDetail(CuMemberTradeVO cuMemberTradeVO);


    /**
     * 查询复消详情信息（后台管理端）
     *
     * @param memberTradeDetailVO 入参
     * @return List<CuMemberTradeDetailVO>
     */
    Object[] selectMemberRecoilDetailList(CuMemberTradeDetailVO memberTradeDetailVO);

    /*
     * @description: 查询带发放的复销积分
     * @author: sui q
     * @date: 2024/7/24 16:13
     * @param: null null
     **/
    List<CuMemberTradeRecoil> queryCuMemberTradeRecoil(Date settleDate);

    Boolean updateCuMemberTradeRecoil(Date settleDate);
}
