package com.younike.system.mapper;

import com.younike.system.domain.OrderRecord;
import com.younike.system.domain.vo.OrderGoodsVo;
import com.younike.system.domain.vo.OrderRecordVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单记录Mapper接口
 *
 * @author elev
 * @date 2022-01-08
 */
public interface OrderRecordMapper {
    /**
     * 查询订单记录
     *
     * @param id 订单记录主键
     * @return 订单记录
     */
    OrderRecord selectOrderRecordById(Long id);

    /**
     * 查询订单记录列表
     *
     * @param orderRecord 订单记录
     * @return 订单记录集合
     */
    List<OrderRecord> selectOrderRecordList(OrderRecord orderRecord);

    /**
     * 新增订单记录
     *
     * @param orderRecord 订单记录
     * @return 结果
     */
    int insertOrderRecord(OrderRecord orderRecord);

    /**
     * 修改订单记录
     *
     * @param orderRecord 订单记录
     * @return 结果
     */
    int updateOrderRecord(OrderRecord orderRecord);

    /**
     * 删除订单记录
     *
     * @param id 订单记录主键
     * @return 结果
     */
    int deleteOrderRecordById(Long id);

    /**
     * 批量删除订单记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteOrderRecordByIds(Long[] ids);

    /**
     * 获取订单记录列表
     * @param orderGoodsVo
     * @return
     */
    List<OrderRecord> getOrderRecordList(OrderGoodsVo orderGoodsVo);

    /**
     *  根据订单编号获取最近一条订单记录
     * @param orderId
     * @return
     */
    OrderRecord selectRefunfd(Long orderId);

    /**
     * 查询订单追踪记录列表
     *
     * @param orderId
     * @return
     */
    List<OrderRecordVo> getMemberOrderRecord(@Param("orderId")Long orderId);
}
