
package com.tmerclub.cloud.payment.mapper;

import com.tmerclub.cloud.payment.model.RefundInfo;
import com.tmerclub.cloud.payment.vo.RefundInfoVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 退款信息
 *
 * @author tmerclub
 * @date 2021-03-15 15:26:03
 */
public interface RefundInfoMapper {

    /**
     * 获取退款信息列表
     * @return 退款信息列表
     */
    List<RefundInfo> list();

    /**
     * 根据退款信息id获取退款信息
     *
     * @param refundId 退款信息id
     * @return 退款信息
     */
    List<RefundInfo> listByRefundIdAndWxPay(@Param("refundId") Long refundId);

    /**
     * 根据退款信息id获取退款信息
     *
     * @param refundId 退款信息id
     * @return 退款信息
     */
    List<RefundInfo> listByRefundId(@Param("refundId") Long refundId);

    /**
     * 保存退款信息
     * @param refundInfo 退款信息
     * @return
     */
    int save(@Param("refundInfo") RefundInfo refundInfo);

    /**
     * 更新退款信息
     * @param refundInfo 退款信息
     */
    void update(@Param("refundInfo") RefundInfo refundInfo);

    /**
     * 根据退款信息id删除退款信息
     * @param refundId 退款单号
     */
    void deleteById(@Param("refundId") Long refundId);

    /**
     * 计算执行退款单的数量
     *
     * @param refundId 退款单号
     * @return 执行退款单的数量
     */
    int countByRefundId(@Param("refundId") Long refundId);

    /**
     * 获取退款信息
     *
     * @param payIds
     * @return
     */
    List<RefundInfoVO> listByPayIds(@Param("payIds") List<Long> payIds);

    /**
     * 通过payId更新退款信息
     *
     * @param refundInfo 退款信息
     */
    void updateByIdAndPayId(@Param("refundInfo") RefundInfo refundInfo);

    /**
     * 获取退款详细信息
     * @param refundId
     * @return
     */
    RefundInfoVO getByRefundId(@Param("refundId") Long refundId);
}
