package com.qs.mp.user.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.qs.mp.admin.domain.vo.TicketListVO;
import com.qs.mp.admin.domain.vo.UserTicketOrderItemVO;
import com.qs.mp.admin.domain.vo.UserTicketOrderTicketDetailVO;
import com.qs.mp.common.enums.TicketStatusEnum;
import com.qs.mp.user.domain.UserTicketOrderItem;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 用户盲票订单明细 服务类
 * </p>
 *
 * @author quanshu
 * @since 2022-03-07
 */
public interface IUserTicketOrderItemService extends IService<UserTicketOrderItem> {

  /**
   * 查询购票订单明细
   * @param userId
   * @param ticketId
   * @return
   */
  UserTicketOrderItem queryFinishedOrderItem(Long userId, String ticketId);

  /**
   * 查询我的票包
   * @param status
   * @return
   */
  List<TicketListVO> listMyTicketVO(Long userId, TicketStatusEnum status);

  /**
   * 查询盲票数
   * @param status
   * @return
   */
  int countMyTicket(Long userId, TicketStatusEnum status);

  /**
   * 查询盲票详情
   * @param orderId
   * @return
   */
  TicketListVO queryTicketVO(Long userId, String orderId);

  /**
   * 获取订单下盲票相关详情信息
   *
   * @param orderId
   * @return
   */
  List<UserTicketOrderTicketDetailVO> listTicketDetailByOrderId(String orderId);

  /**
   * 根据条件获取用户盲票订单明细相关信息
   * @param queryWrapper
   * @return
   */
  List<UserTicketOrderItemVO> listUserTicketOrderItem(QueryWrapper<UserTicketOrderItem> queryWrapper);

  /**
   * 统计用户盲票订单明细相关数量
   * @param queryWrapper
   * @return
   */
  int countUserTicketOrderItem(QueryWrapper<UserTicketOrderItem> queryWrapper);
}
