package com.bonus.zlpt.order.mapper;

import java.util.List;
import com.bonus.zlpt.common.core.domain.order.OrderInfo;
import com.bonus.zlpt.common.core.domain.order.vo.OrderInfoVo;

/**
 * 订单信息Mapper接口
 * 
 * @author xsheng
 * @date 2023-12-01
 */
public interface OrderInfoMapper 
{
    /**
     * 查询订单信息
     * 
     * @param orderId 订单信息主键
     * @return 订单信息
     */
    public OrderInfoVo selectOrderInfoByOrderId(Long orderId);

    /**
     * 查询订单信息列表
     * 
     * @param orderInfo 订单信息
     * @return 订单信息集合
     */
    public List<OrderInfoVo> selectOrderInfoList(OrderInfoVo orderInfo);

    /**
     * 新增订单信息
     * 
     * @param orderInfo 订单信息
     * @return 结果
     */
    public int insertOrderInfo(OrderInfoVo orderInfo);

    public int insertOrderDetails(OrderInfoVo orderInfo);

    /**
     * 修改订单信息
     * 
     * @param orderInfo 订单信息
     * @return 结果
     */
    public int updateOrderInfo(OrderInfoVo orderInfo);

    public int updateOrderDetails(OrderInfoVo orderInfo);

    /**
     * 删除订单信息
     * 
     * @param orderId 订单信息主键
     * @return 结果
     */
    public int deleteOrderInfoByOrderId(Long orderId);

    /**
     * 批量删除订单信息
     * 
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOrderInfoByOrderIds(Long[] orderIds);

    public Long selectLastInsertId();

    public long count(Long userId);
}
