Cara menggunakan bahasa Go untuk membangunkan fungsi tempahan restoran bagi sistem pesanan, contoh kod khusus diperlukan
Fungsi tempahan restoran ialah komponen utama sistem pesanan moden Bahagian yang sangat penting ialah ia membolehkan pelanggan menempah masa makan di restoran lebih awal, dengan berkesan mengelakkan menunggu meja dan meningkatkan pengalaman makan pelanggan. Dalam artikel ini, kami akan menggunakan bahasa Go untuk membangunkan fungsi tempahan restoran yang ringkas.
Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat restoran dan data pesanan tempahan. Kita boleh menggunakan MySQL sebagai sistem pengurusan pangkalan data, mencipta pangkalan data bernama "restoran", dan mencipta dua jadual di dalamnya dipanggil "restoran" dan "tempahan".
Struktur meja restoran adalah seperti berikut:
CREATE TABLE restaurants ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, address VARCHAR(255) NOT NULL, capacity INT NOT NULL, available_time_start TIME NOT NULL, available_time_end TIME NOT NULL );
Struktur jadual tempahan adalah seperti berikut:
CREATE TABLE reservations ( id INT PRIMARY KEY AUTO_INCREMENT, restaurant_id INT NOT NULL, guest_name VARCHAR(255) NOT NULL, reservation_time DATETIME NOT NULL, FOREIGN KEY (restaurant_id) REFERENCES restaurants(id) );
Seterusnya, kami akan gunakan bahasa Go untuk membangunkan pesanan Fungsi tempahan restoran sistem. Pertama, kita perlu mencipta struktur restoran untuk mewakili maklumat restoran, termasuk nama restoran, alamat, kapasiti dan tempoh masa yang tersedia.
type Restaurant struct { ID int Name string Address string Capacity int AvailableTimeStart time.Time AvailableTimeEnd time.Time }
Kami juga perlu membuat struktur tempahan untuk mewakili maklumat pesanan tempahan, termasuk ID restoran yang ditempah, nama pelanggan, masa tempahan, dsb.
type Reservation struct { ID int RestaurantID int GuestName string ReservationTime time.Time }
Seterusnya, kita perlu melaksanakan beberapa fungsi operasi pangkalan data, termasuk menanyakan semua restoran, menanyakan restoran yang tersedia, menanyakan pesanan tempahan, menambah pesanan tempahan, dsb.
Pertama, kami mencipta pembolehubah db untuk menyimpan sambungan pangkalan data.
var db *sql.DB
Dalam fungsi utama, kita perlu membuka sambungan pangkalan data.
func main() { var err error db, err = sql.Open("mysql", "root:password@tcp(localhost:3306)/restaurant") if err != nil { log.Fatal(err) } defer db.Close() // 运行HTTP服务器 http.HandleFunc("/restaurants", getRestaurantsHandler) http.HandleFunc("/available-restaurants", getAvailableRestaurantsHandler) http.HandleFunc("/reservations", getReservationsHandler) http.HandleFunc("/reserve", addReservationHandler) log.Fatal(http.ListenAndServe(":8080", nil)) }
Sekarang, mari kita laksanakan beberapa fungsi operasi pangkalan data.
Pertama, fungsi untuk menanyakan semua restoran adalah seperti berikut:
func getRestaurantsHandler(w http.ResponseWriter, r *http.Request) { rows, err := db.Query("SELECT * FROM restaurants") if err != nil { log.Fatal(err) } defer rows.Close() var restaurants []Restaurant for rows.Next() { var restaurant Restaurant err := rows.Scan(&restaurant.ID, &restaurant.Name, &restaurant.Address, &restaurant.Capacity, &restaurant.AvailableTimeStart, &restaurant.AvailableTimeEnd) if err != nil { log.Fatal(err) } restaurants = append(restaurants, restaurant) } json.NewEncoder(w).Encode(restaurants) }
Seterusnya, fungsi untuk menanyakan restoran yang tersedia adalah seperti berikut:
rreee#🎜🎜 Kemudian, tanya pesanan tempahan Fungsinya adalah seperti berikut:func getAvailableRestaurantsHandler(w http.ResponseWriter, r *http.Request) { currentTime := time.Now() rows, err := db.Query("SELECT * FROM restaurants WHERE available_time_start <= ? AND available_time_end >= ?", currentTime, currentTime) if err != nil { log.Fatal(err) } defer rows.Close() var restaurants []Restaurant for rows.Next() { var restaurant Restaurant err := rows.Scan(&restaurant.ID, &restaurant.Name, &restaurant.Address, &restaurant.Capacity, &restaurant.AvailableTimeStart, &restaurant.AvailableTimeEnd) if err != nil { log.Fatal(err) } restaurants = append(restaurants, restaurant) } json.NewEncoder(w).Encode(restaurants) }
func getReservationsHandler(w http.ResponseWriter, r *http.Request) { rows, err := db.Query("SELECT * FROM reservations") if err != nil { log.Fatal(err) } defer rows.Close() var reservations []Reservation for rows.Next() { var reservation Reservation err := rows.Scan(&reservation.ID, &reservation.RestaurantID, &reservation.GuestName, &reservation.ReservationTime) if err != nil { log.Fatal(err) } reservations = append(reservations, reservation) } json.NewEncoder(w).Encode(reservations) }
Atas ialah kandungan terperinci Cara menggunakan bahasa Go untuk membangunkan fungsi tempahan restoran bagi sistem pesanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!