content: package com.sky.service;
  
  import com.sky.dto.*;
  import com.sky.result.PageResult;
  import com.sky.vo.OrderPaymentVO;
  import com.sky.vo.OrderStatisticsVO;
  import com.sky.vo.OrderSubmitVO;
  import com.sky.vo.OrderVO;
  
  /**
   * @version 1.0
   * @Author Imak
   * @Date 2024/8/12 15:07
   * @注释
   */
  public interface OrderService {
      /**
       * 用户下单
       * @param ordersSubmitDTO
       * @return
       */
      OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO);
      /**
       * 订单支付
       * @param ordersPaymentDTO
       * @return
       */
      OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception;
  
      /**
       * 支付成功，修改订单状态
       * @param outTradeNo
       */
      void paySuccess(String outTradeNo);
  
      /**
       * 订单分页查询
       * @param ordersPageQueryDTO
       * @return
       */
      PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);
  
      /**
       * 根据订单id查询订单详细信息
       * @param id
       * @return
       */
      OrderVO detail(Long id);
  
      /**
       * 再来一单
       * @param id
       */
      void repetition(Long id);
  
      /**
       * 取消订单
       * @param id
       */
      void cancelOrder(Long id);
  
      /**
       * 管理端条件查询
       * @param ordersPageQueryDTO
       * @return
       */
      PageResult conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO);
  
      /**
       * 各个状态订单统计
       * @return
       */
      OrderStatisticsVO statistics();
  
      /**
       * 接单
       * @param ordersConfirmDTO
       */
      void confirm(OrdersConfirmDTO ordersConfirmDTO);
  
      /**
       * 拒单
       * @param ordersRejectionDTO
       */
      void reject(OrdersRejectionDTO ordersRejectionDTO);
  
      /**
       * 商家取消订单
       * @param ordersCancelDTO
       */
      void cancel(OrdersCancelDTO ordersCancelDTO) throws Exception;
  
      /**
       * 派送
       * @param id
       */
      void delivery(Long id);
  
      /**
       * 完成订单
       * @param id
       */
      void complete(Long id);
  
      /**
       * 催单
       * @param id
       */
      void reminder(Long id);
  }
  