Cara menggunakan bahasa Go untuk membangunkan fungsi maklum balas pelanggan sistem pesanan
Pengenalan:
Dengan perkembangan teknologi, semakin banyak restoran mula menggunakan sistem pesanan untuk menyediakan perkhidmatan yang lebih mudah. Sistem pesanan yang baik bukan sahaja harus mempunyai fungsi pesanan dan pembayaran yang cekap, tetapi juga mempertimbangkan maklum balas pelanggan. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk membangunkan fungsi maklum balas pelanggan sistem pesanan dan menyediakan contoh kod khusus.
Contoh kod:
pakej utama
import (
"database/sql" "encoding/json" "log" "net/http" "github.com/gorilla/mux" _ "github.com/go-sql-driver/mysql"
)
// Struktur maklum balas
taip struct Maklum balas {
ID int `json:"id,omitempty"` CustomerID int `json:"customer_id,omitempty"` Content string `json:"content,omitempty"` Type string `json:"type,omitempty"` Rating int `json:"rating,omitempty"` CreatedAt string `json:"created_at,omitempty"`
}
maklum balas baharu
func CreateFeedback(w http.ResponseWriter, r *http.Request) {w.Header().Set("Content-Type", "application/json") var feedback Feedback _ = json.NewDecoder(r.Body).Decode(&feedback) insert, err := db.Query("INSERT INTO feedback (customer_id, content, type, rating) VALUES (?,?,?,?)", feedback.CustomerID, feedback.Content, feedback.Type, feedback.Rating) if err != nil { log.Fatal(err) } defer insert.Close() json.NewEncoder(w).Encode(feedback)
// GetFeedbackByID - dapatkan maklum balas melalui ID
w.Header().Set("Content-Type", "application/json") params := mux.Vars(r) id := params["id"] row := db.QueryRow("SELECT * FROM feedback WHERE id = ?", id) var feedback Feedback err := row.Scan(&feedback.ID, &feedback.CustomerID, &feedback.Content, &feedback.Type, &feedback.Rating, &feedback.CreatedAt) if err != nil { log.Fatal(err) } json.NewEncoder(w).Encode(feedback)
w.Header().Set("Content-Type", "application/json") var feedbacks []Feedback rows, err := db.Query("SELECT * FROM feedback") if err != nil { log.Fatal(err) } defer rows.Close() for rows.Next() { var feedback Feedback err := rows.Scan(&feedback.ID, &feedback.CustomerID, &feedback.Content, &feedback.Type, &feedback.Rating, &feedback.CreatedAt) if err != nil { log.Fatal(err) } feedbacks = append(feedbacks, feedback) } json.NewEncoder(w).Encode(feedbacks)
router := mux.NewRouter().StrictSlash(true) // Define routes router.HandleFunc("/feedback", CreateFeedback).Methods("POST") router.HandleFunc("/feedback/{id}", GetFeedbackByID).Methods("GET") router.HandleFunc("/feedbacks", GetFeedbacks).Methods("GET") // Open database connection var err error db, err = sql.Open("mysql", "username:password@tcp(localhost:3306)/database_name") if err != nil { log.Fatal(err) } defer db.Close() // Start server log.Fatal(http.ListenAndServe(":8080", router))
Atas ialah kandungan terperinci Cara menggunakan bahasa Go untuk membangunkan fungsi maklum balas pelanggan sistem pesanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!