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

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoniu.common.core.resdata.RowsData;
import com.xiaoniu.system.order.storeorder.domain.TbOrderInfo;
import com.xiaoniu.system.order.storeorder.dto.*;
import com.xiaoniu.system.order.storeorder.vo.*;

/**
 * <p>
 * 订单信息表 服务类
 * </p>
 *
 * @author haoxuyang
 * @since 2024-10-16 09:11:47
 */
public interface ITbOrderInfoService extends IService<TbOrderInfo> {

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

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

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

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

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

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

    /**
     * 订单详情
     *
     * @param orderId 订单id
     * @return OrderDetailsVO
     */
    OrderDetailsVO orderDetails(Long orderId);

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

    void reviewComplaintOrders(ReviewComplaintOrdersDTO dto);
}
