Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- err := db.Select(&orders,
- "SELECT * FROM orders WHERE status = 'active'")
- if err != nil {
- return nil, err
- }
- for _, order := range orders {
- err = db.Select(&order.Items, fmt.Sprintf(
- `
- SELECT name,price,items.id,order_items.id as order_item_id
- FROM items JOIN order_items ON items.id = order_items.item_id
- WHERE order_id = %d`, order.GetId()))
- if err != nil {
- return nil, err
- }
- for _, item := range order.GetItems() {
- err = db.Select(&item.Options, fmt.Sprintf(
- `
- SELECT options.name,options.price
- FROM order_item_option AS oio CROSS JOIN order_items
- CROSS JOIN options WHERE order_item_id = order_items.id
- AND oio.option_id = options.id
- AND order_id = %d
- AND item_id = %d
- AND order_item_id = %d`, order.GetId(), item.GetId(), item.GetOrderItemID()))
- if err != nil {
- return nil, err
- }
- for _, option := range item.GetOptions() {
- option.Selected = true
- }
- }
- }
- return orders, nil
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement