diff --git a/src/main/java/com/example/takeawaysystemserver/controller/OrderController.java b/src/main/java/com/example/takeawaysystemserver/controller/OrderController.java index 0e675eb..29428de 100644 --- a/src/main/java/com/example/takeawaysystemserver/controller/OrderController.java +++ b/src/main/java/com/example/takeawaysystemserver/controller/OrderController.java @@ -1,6 +1,8 @@ package com.example.takeawaysystemserver.controller; +import com.example.takeawaysystemserver.entity.OrderItem; import com.example.takeawaysystemserver.entity.OrderList; +import com.example.takeawaysystemserver.model.vo.OrderVO; import com.example.takeawaysystemserver.service.OrderService; import com.example.takeawaysystemserver.util.R; import io.swagger.annotations.Api; @@ -8,6 +10,8 @@ import io.swagger.annotations.ApiOperation; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @author Ethereal * @date 2024/7/12 @@ -27,4 +31,9 @@ public class OrderController { return orderService.addOrders(token, order); } + @GetMapping("get") + @ApiOperation(value = "获取订单信息") + public R> getOrders(@RequestHeader String token){ + return orderService.getOrders(token); + } } diff --git a/src/main/java/com/example/takeawaysystemserver/model/vo/DishVO.java b/src/main/java/com/example/takeawaysystemserver/model/vo/DishVO.java new file mode 100644 index 0000000..9161b4f --- /dev/null +++ b/src/main/java/com/example/takeawaysystemserver/model/vo/DishVO.java @@ -0,0 +1,21 @@ +package com.example.takeawaysystemserver.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Ethereal + * @date 2024/7/13 + * @description + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DishVO { + private Integer dishId; + private String dishName; + private Integer price; + private Integer count; + private Integer amount; +} diff --git a/src/main/java/com/example/takeawaysystemserver/model/vo/OrderVO.java b/src/main/java/com/example/takeawaysystemserver/model/vo/OrderVO.java new file mode 100644 index 0000000..0276097 --- /dev/null +++ b/src/main/java/com/example/takeawaysystemserver/model/vo/OrderVO.java @@ -0,0 +1,44 @@ +package com.example.takeawaysystemserver.model.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author Ethereal + * @date 2024/7/13 + * @description + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OrderVO { + + /** + * 菜品id + */ + private Integer shopId; + + /** + * 菜品名 + */ + private String shopName; + + /** + * 订单id + */ + private Long orderId; + + /** + * 总价 + */ + private Integer price; + + /** + * 菜品VO + */ + private List dishes; + +} diff --git a/src/main/java/com/example/takeawaysystemserver/service/OrderService.java b/src/main/java/com/example/takeawaysystemserver/service/OrderService.java index 5352f6b..b262eee 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/OrderService.java +++ b/src/main/java/com/example/takeawaysystemserver/service/OrderService.java @@ -2,8 +2,11 @@ package com.example.takeawaysystemserver.service; import com.baomidou.mybatisplus.extension.service.IService; import com.example.takeawaysystemserver.entity.OrderList; +import com.example.takeawaysystemserver.model.vo.OrderVO; import com.example.takeawaysystemserver.util.R; +import java.util.List; + /** * @author qiushengyu * @description 针对表【order】的数据库操作Service @@ -13,7 +16,15 @@ public interface OrderService extends IService { /** * 添加订单 * @param order 订单类 + * @param token 用户token * @return 添加信息 */ R addOrders(String token, OrderList order); + + /** + * 获取订单 + * @param token 用户token + * @return 订单信息 + */ + R> getOrders(String token); } diff --git a/src/main/java/com/example/takeawaysystemserver/service/impl/OrderServiceImpl.java b/src/main/java/com/example/takeawaysystemserver/service/impl/OrderServiceImpl.java index 4ac43a7..000a400 100644 --- a/src/main/java/com/example/takeawaysystemserver/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/example/takeawaysystemserver/service/impl/OrderServiceImpl.java @@ -5,17 +5,17 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.takeawaysystemserver.constant.CommonStatusConstant; import com.example.takeawaysystemserver.entity.*; -import com.example.takeawaysystemserver.mapper.OrderItemMapper; -import com.example.takeawaysystemserver.service.*; import com.example.takeawaysystemserver.mapper.OrderMapper; +import com.example.takeawaysystemserver.model.vo.DishVO; +import com.example.takeawaysystemserver.model.vo.OrderVO; +import com.example.takeawaysystemserver.service.*; import com.example.takeawaysystemserver.util.R; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; /** * @author qiushengyu @@ -40,6 +40,12 @@ public class OrderServiceImpl extends ServiceImpl @Resource private OrderItemService orderItemService; + @Resource + private DishService dishService; + + @Resource + private ShopService shopService; + @Override public R addOrders(String token, OrderList order) { Integer id = Integer.parseInt(userServiceImpl.getUserId(token)); @@ -94,6 +100,41 @@ public class OrderServiceImpl extends ServiceImpl return R.ok("添加成功"); } + + @Override + public R> getOrders(String token) { + Integer id = Integer.parseInt(userServiceImpl.getUserId(token)); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(OrderList::getUserId,id); + List orderLists = list(wrapper); + + List orders = orderLists.stream().map((item) -> { + OrderVO orderVO = new OrderVO(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(OrderItem::getOrderId, item.getId()); + List orderItems = orderItemService.list(wrapper1); + List dishVos = new ArrayList<>(); + int amount = 0; + for (OrderItem orderItem : orderItems) { + LambdaQueryWrapper dishes = new LambdaQueryWrapper<>(); + dishes.eq(Dish::getId, orderItem.getDishId()); + String name = dishService.getOne(dishes).getName(); + int i = orderItem.getPrice() * orderItem.getCount(); + DishVO dishVO = new DishVO(orderItem.getDishId(),name,orderItem.getPrice(),orderItem.getCount(),i); + dishVos.add(dishVO); + amount += i; + } + String shopName = shopService.getById(item.getShopId()).getName(); + orderVO.setShopName(shopName); + orderVO.setShopId(item.getShopId()); + orderVO.setOrderId(item.getId()); + orderVO.setDishes(dishVos); + orderVO.setPrice(amount); + return orderVO; + }).toList(); + + return R.ok(orders); + } }