package com.diagbot.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.diagbot.dto.AuthDetailDTO;
import com.diagbot.dto.ProductOrderDTO;
import com.diagbot.entity.ProductOrder;
import com.diagbot.entity.ProductOrderIndex;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 订单表 Mapper 接口
 * </p>
 *
 * @author gaodm
 * @since 2018-09-18
 */
public interface ProductOrderMapper extends BaseMapper<ProductOrder> {
    /**
     * @Description: 根据用户id查询订单信息
     * @Author: wangyu
     * @Date: 19:39 2018/9/20
     */
    List<ProductOrder> getUserProductOrder(Long userId);
    
    /**
     * 根据用户id查询订单信息数量
     * @param userId
     * @return
     */
    int getUserProductOrderCount(Long userId);
    
    /**
     * 根据订单号查询详情
     *
     * @param orderNum
     * @return
     */
    List<AuthDetailDTO> getOrderDetails(String orderNum);

    /**
     * 根据订单号集合查询详情
     *
     * @param nums
     * @return
     */
    List<AuthDetailDTO> getOrderDetailsByNums(List<String> nums);
    
    /**
     * 根据用户id查询详情集合
     * @param userId
     * @return
     */
    List<AuthDetailDTO> getOrderDetailsByUserId(Long userId);
    
    /**
     * 根据用户id查询审核不通过订单信息数量
     * @param userId
     * @return
     */
    int getOrderAuthFailCount(Long userId);

    /**
     * @Description: 根据订单号查询订单信息
     * @Author: wangyu
     * @Date: 19:39 2018/9/20
     */
    ProductOrder selctOrderTimeByOrderNum(ProductOrder productOrder);

    /**
     * 待审核订单个数
     *
     * @return
     */
    int waitExamOrderCou(List<Long> list);

    /**
     * @Description: 产品申请查询所有订单信息接口
     * @Author: wangyu
     * @Date: 19:39 2018/9/20
     */
    IPage<ProductOrderDTO> selectAllProductOrder(Page page, @Param("product") ProductOrderIndex productOrderIndex);

}
