package com.zm.order.tool.server.history;

import com.zm.order.tool.server.model.OrderRefundDetails;
import com.zm.order.tool.server.query.OrderQuery;
import com.zm.order.tool.server.query.OrderRefundDetailsQuery;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 订单退款明细
 *
 * @author Gwl·Q
 */
@Repository
public interface HistoryDataRefundDetailsDao {

    /**
     * 新增一条记录
     *
     * @param record OrderRefundDetails
     * @return 影响行数
     */
    int insert(OrderRefundDetails record);

    /**
     * 新增列表
     *
     * @param list
     * @return 影响行数
     */
    int insertList(List<OrderRefundDetails> list);

    void replaceList(List<OrderRefundDetails> list);

    /**
     * 删除
     * @param id
     * @return: 影响行数
     */
    int delete(Long id);

    /**
     * 修改
     *
     * @param record OrderRefundDetails
     * @return 影响行数
     */
    int update(OrderRefundDetails record);

    OrderRefundDetails selectById(@Param("id") Long id);

    int updateBiz(@Param("bizType") Integer bizType, @Param("orderNoList") List<String> orderNoList);

    /**
     * 查询列表
     *
     * @param query
     * @return list
     */
    List<OrderRefundDetails> selectList(OrderRefundDetailsQuery query);

    /**
     * 查询列表
     *
     * @param query
     * @return list
     */
    List<OrderRefundDetails> selectListOrder(OrderQuery query);

    List<OrderRefundDetails> selectByRefundNo(String refundNo);

    List<OrderRefundDetails> selectByRefundNoList(@Param("refundNoList") List<String> refundNoList);


    int deleteTemp(@Param("orderNo") String orderNo,
                   @Param("userId") Long userId);

    int deleteByOrderNos(@Param("orderNoList") List<String> orderNoList);

}
