content: package com.sky.controller.admin;
  
  import com.sky.dto.OrdersCancelDTO;
  import com.sky.dto.OrdersConfirmDTO;
  import com.sky.dto.OrdersPageQueryDTO;
  import com.sky.dto.OrdersRejectionDTO;
  import com.sky.result.PageResult;
  import com.sky.result.Result;
  import com.sky.service.OrderService;
  import com.sky.vo.OrderStatisticsVO;
  import com.sky.vo.OrderVO;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.*;
  
  @RestController("adminOrderController")
  @RequestMapping("/admin/order")
  public class OrderController {
  
      @Autowired
      private OrderService orderService;
  
      /**
       * 订单搜索
       *
       * @param ordersPageQueryDTO
       * @return
       */
      @GetMapping("/conditionSearch")
      public Result<PageResult<OrderVO>> conditionSearch(OrdersPageQueryDTO ordersPageQueryDTO) {
          PageResult<OrderVO> pageResult = orderService.conditionSearch(ordersPageQueryDTO);
          return Result.success(pageResult);
      }
  
      /**
       * 各个状态的订单数量统计
       *
       * @return
       */
      @GetMapping("/statistics")
      public Result<OrderStatisticsVO> statistics() {
          OrderStatisticsVO orderStatisticsVO = orderService.statistics();
          return Result.success(orderStatisticsVO);
      }
  
      /**
       * 订单详情
       *
       * @param id
       * @return
       */
      @GetMapping("/details/{id}")
      public Result<OrderVO> details(@PathVariable("id") Long id) {
          OrderVO orderVO = orderService.details(id);
          return Result.success(orderVO);
      }
  
      /**
       * 接单
       *
       * @return
       */
      @PutMapping("/confirm")
      public Result<String> confirm(@RequestBody OrdersConfirmDTO ordersConfirmDTO) {
          orderService.confirm(ordersConfirmDTO);
          return Result.success();
      }
  
      /**
       * 拒单
       *
       * @return
       */
      @PutMapping("/rejection")
      public Result<String> rejection(@RequestBody OrdersRejectionDTO ordersRejectionDTO) throws Exception {
          orderService.rejection(ordersRejectionDTO);
          return Result.success();
      }
  
      /**
       * 取消订单
       *
       * @return
       */
      @PutMapping("/cancel")
      public Result<String> cancel(@RequestBody OrdersCancelDTO ordersCancelDTO) throws Exception {
          orderService.cancel(ordersCancelDTO);
          return Result.success();
      }
  
      /**
       * 派送订单
       *
       * @return
       */
      @PutMapping("/delivery/{id}")
      public Result<String> delivery(@PathVariable("id") Long id) {
          orderService.delivery(id);
          return Result.success();
      }
  
      /**
       * 完成订单
       *
       * @return
       */
      @PutMapping("/complete/{id}")
      public Result<String> complete(@PathVariable("id") Long id) {
          orderService.complete(id);
          return Result.success();
      }
  
  }
  