Kini semakin banyak restoran mula menggunakan sistem pesanan untuk meningkatkan kecekapan, antaranya pengurusan pesanan adalah fungsi yang sangat penting. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan pesanan sistem pesanan dan menyediakan contoh kod khusus.
1. Analisis permintaan fungsi pengurusan pesanan
Sebelum membangunkan fungsi pengurusan pesanan, kita perlu menjelaskan keperluannya terlebih dahulu untuk memudahkan kerja pembangunan seterusnya.
2. Reka bentuk pangkalan data
Sebelum mula melaksanakan fungsi pengurusan pesanan, perlu mereka bentuk struktur jadual pangkalan data yang berkaitan dengan pengurusan pesanan.
Kami boleh mereka bentuk dua jadual untuk menguruskan maklumat pesanan iaitu jadual pesanan (order) dan jadual butiran pesanan (order_item).
Antaranya, jadual pesanan digunakan terutamanya untuk menyimpan maklumat keseluruhan pesanan, seperti id pesanan, status pesanan, masa pesanan, jumlah harga pesanan, dll.
Jadual butiran pesanan digunakan untuk menyimpan maklumat terperinci setiap pesanan, seperti ID hidangan yang dibeli, kuantiti, harga unit, dll.
Dengan reka bentuk ini, maklumat pesanan dapat diurus dan diselenggara dengan lebih mudah.
Berikut adalah reka bentuk pangkalan data pesanan dan jadual butiran pesanan:
Jadual pesanan (pesanan):
CREATE TABLE `orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:待处理,1:正在配送,2:已完成', `create_time` datetime NOT NULL, `total_price` int(11) NOT NULL, `delivery_address` varchar(255) DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Jadual butiran pesanan (order_item):
CREATE TABLE `order_items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `product_name` varchar(255) NOT NULL, `product_price` int(11) NOT NULL, `product_count` int(11) NOT NULL, `create_time` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
3. Bangunkan fungsi pengurusan pesanan
Mula-mula, anda perlu memasukkan maklumat pesanan baharu dalam jadual pesanan, dan kemudian masukkan maklumat setiap produk dalam jadual butiran pesanan.
Berikut ialah contoh kod untuk menambah pesanan baharu:
func AddOrder(w http.ResponseWriter, r *http.Request) { // 解析请求参数 r.ParseForm() userId, _ := strconv.Atoi(r.Form.Get("user_id")) products := r.Form.Get("products") deliveryAddress := r.Form.Get("delivery_address") // 计算订单总价 totalPrice := 0 productIds := strings.Split(products, ",") for _, productId := range productIds { product, _ := GetProductById(productId) totalPrice += product.Price } // 添加订单到数据库 now := time.Now().Format("2006-01-02 15:04:05") orderId, _ := AddOrderToDB(userId, totalPrice, deliveryAddress, now) // 添加订单详情到数据库 for _, productId := range productIds { product, _ := GetProductById(productId) orderItem := OrderItem{ OrderId: orderId, ProductId: productId, ProductName:product.Name, ProductPrice:product.Price, ProductCount:1, CreateTime:now, } AddOrderItemToDB(orderItem) } // 返回成功信息 resp := Resp{Code: 200, Msg: "add order success"} WriteJSON(w, resp) }
Pengguna boleh melihat maklumat pesanan yang dibuat melalui senarai pesanan Kami perlu menanyakan senarai pesanan daripada pangkalan data dan memaparkannya.
Berikut ialah contoh kod untuk melihat senarai pesanan:
func GetOrderList(w http.ResponseWriter, r *http.Request) { // 查询数据库获取订单列表 orders, _ := GetOrderListFromDB() // 构造响应数据 resp := Resp{Code: 200, Data: orders} // 返回订单列表数据 WriteJSON(w, resp) }
Memandangkan maklumat pesanan mungkin terus berubah, contohnya, pengguna perlu mengemas kini hidangan dalam pesanan, atau alamat penghantaran, dll., jadi perlu menyediakan fungsi mengubah suai perintah itu.
Berikut ialah contoh kod untuk mengubah suai maklumat pesanan:
func UpdateOrder(w http.ResponseWriter, r *http.Request) { // 解析请求参数 r.ParseForm() orderId, _ := strconv.Atoi(r.Form.Get("order_id")) deliveryAddress := r.Form.Get("delivery_address") // 更新订单信息到数据库中 UpdateOrderToDB(orderId, deliveryAddress) // 返回成功信息 resp := Resp{Code: 200, Msg: "update order success"} WriteJSON(w, resp) }
Jika tempahan telah tamat tempoh atau pengguna membatalkan tempahan, anda perlu menyediakan fungsi memadam pesanan.
Berikut ialah contoh kod untuk memadam pesanan:
func DeleteOrder(w http.ResponseWriter, r *http.Request) { // 解析请求参数 r.ParseForm() orderId, _ := strconv.Atoi(r.Form.Get("order_id")) // 从数据库中删除订单信息 DeleteOrderFromDB(orderId) // 返回成功信息 resp := Resp{Code: 200, Msg: "delete order success"} WriteJSON(w, resp) }
Semasa menghantar pesanan, kami perlu mengemas kini status pesanan dalam masa nyata.
Berikut ialah contoh kod untuk mengemas kini status pesanan:
func UpdateOrderStatus(w http.ResponseWriter, r *http.Request) { // 解析请求参数 r.ParseForm() orderId, _ := strconv.Atoi(r.Form.Get("order_id")) status, _ := strconv.Atoi(r.Form.Get("status")) // 更新订单状态到数据库中 UpdateOrderStatusToDB(orderId, status) // 返回成功信息 resp := Resp{Code: 200, Msg: "update order status success"} WriteJSON(w, resp) }
Dalam kod di atas, kami mendapat id pesanan dan nilai status baharu daripada parameter permintaan, dan mengemas kini status pesanan ke dalam pangkalan data. Kemudian kembalikan maklumat bahawa kemas kini telah berjaya.
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan pesanan sistem pesanan, dan memberikan contoh kod khusus. Fungsi pengurusan pesanan adalah fungsi yang sangat penting dalam sistem pesanan Dengan melaksanakan fungsi ini, kecekapan restoran dan pengalaman pengguna dapat dipertingkatkan.
🎜Apabila melaksanakan fungsi pengurusan pesanan, anda perlu mengikut peraturan reka bentuk pangkalan data, dan pengesahan parameter yang ketat diperlukan untuk penambahan, pemadaman, pengubahsuaian dan semakan pesanan untuk memastikan keselamatan dan ketepatan sistem. 🎜Atas ialah kandungan terperinci Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan pesanan sistem pesanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!