// 3. 创建订单 Order order = new Order(); order.setUserId(userId); order.setAddress(address); order.setItems(items); order.setStatus(OrderStatus.PENDING_PAYMENT); order.setTotalAmount(calculateTotal(items)); order.setCreateTime(LocalDateTime.now());
// 4. 保存订单 orderRepository.save(order);
// 5. 扣减库存 inventoryService.deductStock(items);
return order; } } ```
3. 数据库设计
```sql -- 订单表 CREATE TABLE `orders` ( `id` bigint NOT NULL AUTO_INCREMENT, `user_id` bigint NOT NULL, `address_id` bigint NOT NULL, `total_amount` decimal(10,2) NOT NULL, `status` varchar(20) NOT NULL DEFAULT PENDING_PAYMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) );
-- 订单项表 CREATE TABLE `order_items` ( `id` bigint NOT NULL AUTO_INCREMENT, `order_id` bigint NOT NULL, `product_id` bigint NOT NULL, `quantity` int NOT NULL, `price` decimal(10,2) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ); ```