diff --git a/sky-server/src/main/java/com/sky/controller/admin/OrderController.java b/sky-server/src/main/java/com/sky/controller/admin/OrderController.java index d1c52c8..1ce46fd 100644 --- a/sky-server/src/main/java/com/sky/controller/admin/OrderController.java +++ b/sky-server/src/main/java/com/sky/controller/admin/OrderController.java @@ -4,15 +4,15 @@ import com.sky.dto.OrdersPageQueryDTO; import com.sky.result.PageResult; import com.sky.result.Result; import com.sky.service.OrderService; +import com.sky.vo.OrderOverViewVO; +import com.sky.vo.OrderStatisticsVO; +import com.sky.vo.OrderVO; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; -@RestController +@RestController("adminOrderController") @RequestMapping("/admin/order") @Api(tags = "Order-Controller") @Slf4j @@ -25,4 +25,18 @@ public class OrderController { PageResult pageResult = orderService.pageQuery(ordersPageQueryDTO); return Result.success(pageResult); } + + @GetMapping("/statistics") + public Result statistics() { + log.info("order overview"); + OrderStatisticsVO orderStatisticsVO = orderService.statistics(); + return Result.success(orderStatisticsVO); + } + + @GetMapping("/details/{id}") + public Result details(@PathVariable Long id) { + log.info("check order details: {}",id); + OrderVO orderVO = orderService.details(id); + return Result.success(orderVO); + } } diff --git a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java index 29ed05f..7678848 100644 --- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java @@ -37,4 +37,7 @@ public interface OrderMapper { @Select("select * from orders where id = #{id}") Orders getById(Long id); + + @Select("select count(*) from orders where status = #{status}") + int countStatus(Integer status); } diff --git a/sky-server/src/main/java/com/sky/service/OrderService.java b/sky-server/src/main/java/com/sky/service/OrderService.java index 81b93b8..479f4d4 100644 --- a/sky-server/src/main/java/com/sky/service/OrderService.java +++ b/sky-server/src/main/java/com/sky/service/OrderService.java @@ -1,13 +1,10 @@ package com.sky.service; -import com.sky.dto.OrdersDTO; import com.sky.dto.OrdersPageQueryDTO; import com.sky.dto.OrdersPaymentDTO; import com.sky.dto.OrdersSubmitDTO; import com.sky.result.PageResult; -import com.sky.vo.OrderPaymentVO; -import com.sky.vo.OrderSubmitVO; -import com.sky.vo.OrderVO; +import com.sky.vo.*; import org.springframework.stereotype.Service; @Service @@ -68,4 +65,18 @@ public interface OrderService { * @return */ PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO); + + /** + * order overview + * + * @return + */ + OrderStatisticsVO statistics(); + + /** + * check order details + * @param id + * @return + */ + OrderVO details(Long id); } diff --git a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java index 175c9f8..baa43ec 100644 --- a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java @@ -15,9 +15,7 @@ import com.sky.mapper.*; import com.sky.result.PageResult; import com.sky.service.OrderService; import com.sky.utils.WeChatPayUtil; -import com.sky.vo.OrderPaymentVO; -import com.sky.vo.OrderSubmitVO; -import com.sky.vo.OrderVO; +import com.sky.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -172,7 +170,7 @@ public class OrderServiceImpl implements OrderService { @Override public PageResult getHistoryOrders(Integer page, Integer pageSize, Integer status) { Long userId = BaseContext.getCurrentId(); - PageHelper.startPage(page,pageSize); + PageHelper.startPage(page, pageSize); OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO(); ordersPageQueryDTO.setUserId(userId); ordersPageQueryDTO.setStatus(status); @@ -188,7 +186,7 @@ public class OrderServiceImpl implements OrderService { list.add(orderVO); } } - return new PageResult(list.size(),list); + return new PageResult(list.size(), list); } @Override @@ -233,19 +231,48 @@ public class OrderServiceImpl implements OrderService { @Override public PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO) { - PageHelper.startPage(ordersPageQueryDTO.getPage(),ordersPageQueryDTO.getPageSize()); + PageHelper.startPage(ordersPageQueryDTO.getPage(), ordersPageQueryDTO.getPageSize()); Page ordersPage = orderMapper.pageQuery(ordersPageQueryDTO); List list = new ArrayList<>(); for (Orders orders : ordersPage) { OrderVO orderVO = new OrderVO(); BeanUtils.copyProperties(orders, orderVO); List orderDetailList = orderDetailMapper.getByOrderId(orders.getId()); - String orderDishes = Arrays.toString(orderDetailList.toArray()); - orderDishes = orderDishes.substring(1, orderDishes.length() - 1); - orderVO.setOrderDishes(orderDishes); + StringBuilder orderDishes = new StringBuilder(); + for (OrderDetail orderDetail : orderDetailList) { + orderDishes.append(orderDetail.getName()).append(","); + } + orderVO.setOrderDishes(orderDishes.substring(0, orderDishes.length() - 1)); list.add(orderVO); } - return new PageResult(list.size(),list); + return new PageResult(list.size(), list); + } + + @Override + public OrderStatisticsVO statistics() { + int confirmed = orderMapper.countStatus(Orders.CONFIRMED); + int deliveryInProgress = orderMapper.countStatus(Orders.DELIVERY_IN_PROGRESS); + int toBeConfirmed = orderMapper.countStatus(Orders.TO_BE_CONFIRMED); + OrderStatisticsVO orderStatisticsVO = new OrderStatisticsVO(); + orderStatisticsVO.setConfirmed(confirmed); + orderStatisticsVO.setDeliveryInProgress(deliveryInProgress); + orderStatisticsVO.setToBeConfirmed(toBeConfirmed); + return orderStatisticsVO; + } + + @Override + public OrderVO details(Long id) { + Orders orders = orderMapper.getById(id); + List orderDetailList = orderDetailMapper.getByOrderId(orders.getId()); + StringBuilder orderDishes = new StringBuilder(); + for (OrderDetail orderDetail : orderDetailList) { + orderDishes.append(orderDetail.getName()).append(","); + } + OrderVO orderVO = new OrderVO(); + BeanUtils.copyProperties(orders, orderVO); + orderVO.setOrderDetailList(orderDetailList); + orderVO.setOrderDishes(orderDishes.substring(0, orderDishes.length() - 1)); + return orderVO; } }