Advertisement
Guest User

Untitled

a guest
May 21st, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.98 KB | None | 0 0
  1.     err := db.Select(&orders,
  2.         "SELECT * FROM orders WHERE status = 'active'")
  3.     if err != nil {
  4.         return nil, err
  5.     }
  6.     for _, order := range orders {
  7.         err = db.Select(&order.Items, fmt.Sprintf(
  8.             `
  9.             SELECT name,price,items.id,order_items.id as order_item_id
  10.             FROM items JOIN order_items ON items.id = order_items.item_id
  11.             WHERE order_id = %d`, order.GetId()))
  12.         if err != nil {
  13.             return nil, err
  14.         }
  15.         for _, item := range order.GetItems() {
  16.             err = db.Select(&item.Options, fmt.Sprintf(
  17.                 `
  18.                 SELECT options.name,options.price
  19.                 FROM order_item_option AS oio CROSS JOIN order_items
  20.                 CROSS JOIN options WHERE order_item_id = order_items.id
  21.                 AND oio.option_id = options.id
  22.                 AND order_id = %d
  23.                 AND item_id = %d
  24.                 AND order_item_id = %d`, order.GetId(), item.GetId(), item.GetOrderItemID()))
  25.             if err != nil {
  26.                 return nil, err
  27.             }
  28.             for _, option := range item.GetOptions() {
  29.                 option.Selected = true
  30.             }
  31.         }
  32.     }
  33.     return orders, nil
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement