package com.xiaoniu.system.order.storeorder.mapper;

import com.xiaoniu.common.core.vo.LabelAndValueVO;
import com.xiaoniu.common.mybatis.mapper.BaseMapperPlus;
import com.xiaoniu.system.datastatistics.dto.DataStatisticsQueryDTO;
import com.xiaoniu.system.datastatistics.vo.OrderStatisticsVO;
import com.xiaoniu.system.datastatistics.vo.PlatformOrderVO;
import com.xiaoniu.system.datastatistics.vo.RealTimeDataVO;
import com.xiaoniu.system.datastatistics.vo.StoreOrderVO;
import com.xiaoniu.system.order.storeorder.domain.TbOrderInfo;
import com.xiaoniu.system.order.storeorder.dto.*;
import com.xiaoniu.system.order.storeorder.vo.*;
import com.xiaoniu.system.platformusers.user.dto.UserOrderListQueryDTO;
import com.xiaoniu.system.platformusers.user.vo.UserOrderListVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 * 订单信息表 Mapper 接口
 * </p>
 *
 * @author haoxuyang
 * @since 2024-10-16 09:11:47
 */
@Mapper
public interface TbOrderInfoMapper extends BaseMapperPlus<TbOrderInfoMapper, TbOrderInfo, TbOrderInfo> {

    /**
     * 订单列表
     *
     * @param dto dto
     * @return List<OrderListVO>
     */
    List<StoreOrderListVO> storeOrderList(StoreOrderQueryDTO dto);

    /**
     * 获取用户订单列表
     *
     * @param dto dto
     * @return List<UserOrderListVO>
     */
    List<UserOrderListVO> getUserOrderList(UserOrderListQueryDTO dto);

    /**
     * 团购订单列表
     *
     * @param dto dto
     * @return List<GroupOrderListVO>
     */
    List<GroupOrderListVO> groupOrderList(GroupOrderQueryDTO dto);

    /**
     * 投诉订单列表
     *
     * @param dto dto
     * @return List<ComplaintOrderListVO>
     */
    List<ComplaintOrderListVO> complaintOrderList(ComplaintOrderQueryDTO dto);

    /**
     * 积分商品订单列表
     *
     * @param dto dto
     * @return List<PointsOrderListVO>
     */
    List<PointsOrderListVO> pointsOrderList(PointsOrderQueryDTO dto);

    /**
     * 会员开通订单列表
     *
     * @param dto dto
     * @return List<MemberOrderListVO>
     */
    List<MemberOrderListVO> memberOrderList(MemberOrderQueryDTO dto);

    /**
     * 优惠券订单列表
     *
     * @param dto dto
     * @return List<CouponOrderListVO>
     */
    List<CouponOrderListVO> couponOrderList(CouponOrderQueryDTO dto);

    /**
     * 平台订单/积分订单信息
     *
     * @param dto dto
     * @return PlatformOrderVO
     */
    PlatformOrderVO platformOrder(DataStatisticsQueryDTO dto);

    /**
     * 门店订单
     *
     * @param dto dto
     * @return StoreOrderVO
     */
    StoreOrderVO storeOrder(DataStatisticsQueryDTO dto);

    /**
     * 实时数据
     *
     * @param dto dto
     * @return RealTimeDataVO
     */
    RealTimeDataVO realTimeData(DataStatisticsQueryDTO dto);

    /**
     * 订单统计
     *
     * @param dto dto
     * @return List<OrderStatisticsVO>
     */
    List<OrderStatisticsVO> orderStatistics(DataStatisticsQueryDTO dto);

    /**
     * 平台财务统计列表
     *
     * @param dto dto
     * @return List<FinancialOrderListVO>
     */
    List<FinancialOrderListVO> financialOrderList(FinancialOrderQueryDTO dto);

    /**
     * 营业数据汇总
     *
     * @param dto dto
     * @return List<LabelAndValueVO>
     */
    List<LabelAndValueVO> businessDataSummary(DataStatisticsQueryDTO dto);
}
