Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan pesanan sistem pesanan

Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan pesanan sistem pesanan

王林
王林asal
2023-11-01 12:48:261110semak imbas

Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan pesanan sistem pesanan

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.

  1. Tambah pesanan baharu: Pengguna menyerahkan maklumat pesanan melalui halaman pesanan, dan maklumat pesanan perlu ditambahkan pada senarai pesanan.
  2. Lihat maklumat pesanan: Pengguna boleh melihat maklumat pesanan yang dibuat melalui senarai pesanan, termasuk id pesanan, masa pesanan, status pesanan (belum selesai, sedang berjalan, selesai), jumlah pesanan, dsb.
  3. Ubah suai maklumat pesanan: Memandangkan maklumat pesanan mungkin terus berubah, contohnya, pengguna perlu mengemas kini hidangan dalam pesanan, atau alamat penghantaran, dsb., adalah perlu untuk menyediakan fungsi mengubah suai pesanan.
  4. Padam pesanan: Jika pesanan telah tamat tempoh atau pengguna membatalkan pesanan, anda perlu menyediakan fungsi memadam pesanan.
  5. Kemas kini status pesanan: Perlu menyediakan kemas kini masa nyata kepada status pesanan Contohnya, apabila pesanan dihantar, status perlu dikemas kini dalam masa nyata kepada "Menghantar".

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)
}
    Dalam kod di atas, kami terlebih dahulu menghuraikan parameter permintaan dan mengira jumlah harga pesanan. Kemudian, tambahkan maklumat pesanan dan maklumat butiran pesanan ke pangkalan data masing-masing.
Lihat maklumat pesanan

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)
}
    Dalam kod di atas, kami menanyakan senarai pesanan daripada pangkalan data dan mengembalikannya ke halaman hadapan. Apabila menanyakan senarai pesanan, anda perlu menanyakan butiran pesanan dan memaparkannya.
Ubah suai maklumat pesanan

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)
}
    Dalam kod di atas, kami terlebih dahulu menghuraikan parameter permintaan, mengemas kini maklumat pesanan yang diubah suai (seperti alamat penghantaran) ke pangkalan data, dan kemudian mengembalikan maklumat pengubahsuaian yang berjaya .
Delete order

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)
}
    Dalam kod di atas, kami mendapat id pesanan daripada parameter permintaan dan memadam pesanan daripada pangkalan data. Kemudian kembalikan maklumat pemadaman yang berjaya.
Kemas kini status pesanan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn