Rumah pembangunan bahagian belakang Golang Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi rakaman penggunaan pengguna?

Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi rakaman penggunaan pengguna?

Nov 01, 2023 pm 05:05 PM
pergi pembangunan bahasa Sistem masakan rumah

Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi rakaman penggunaan pengguna?

Go pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi rakaman penggunaan pengguna?

Dengan peningkatan taraf hidup, permintaan orang ramai terhadap makanan juga semakin tinggi. Semakin ramai orang mula mencuba memasak sendiri, tetapi ramai yang tidak dapat melakukannya kerana sibuk bekerja atau malas. Oleh itu, perkhidmatan memasak dari pintu ke pintu wujud.

Kini, perkhidmatan memasak dari rumah ke rumah secara amnya dibuat melalui platform dalam talian untuk membuat tempahan dan tempahan. Pelanggan memilih hidangan dan kuantiti yang mereka perlukan melalui platform, dan selepas membayar yuran yang sepadan, mereka boleh menunggu perkhidmatan dari pintu ke pintu. Di antara perkhidmatan ini, fungsi rekod penggunaan pengguna amat penting. Bagi penyedia perkhidmatan, rekod penggunaan boleh membantu mereka mengurus akaun mereka dengan lebih baik, dengan itu meningkatkan kecekapan operasi bagi pengguna, rekod penggunaan boleh menyemak situasi penggunaan mereka baru-baru ini untuk menganggarkan keupayaan penggunaan mereka dengan lebih baik.

Jadi, bagaimana untuk melaksanakan fungsi rakaman penggunaan pengguna sistem memasak dari pintu ke pintu? Mari lihat di bawah.

1. Reka bentuk jadual data

Sebelum memikirkan tentang pelaksanaan fungsi rekod penggunaan, kita perlu mereka bentuk jadual data yang sepadan terlebih dahulu. Dalam kes ini, kita perlu mereka bentuk jadual menu, jadual pesanan, jadual butiran pesanan dan jadual rekod penggunaan.

  • Jadual menu direka seperti berikut:
CREATE TABLE IF NOT EXISTS `dishes` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '菜品 ID',
    `name` VARCHAR(50) NOT NULL COMMENT '菜名',
    `image` VARCHAR(100) NOT NULL COMMENT '图片地址',
    `category_id` INT(10) UNSIGNED NOT NULL COMMENT '分类 ID',
    `price` FLOAT(10,2) UNSIGNED NOT NULL COMMENT '价格',
    `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='菜品表';
Salin selepas log masuk
  • Jadual pesanan direka seperti berikut:
  • # 🎜🎜#
    CREATE TABLE IF NOT EXISTS `orders` (
        `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '订单 ID',
        `user_id` INT(10) UNSIGNED NOT NULL COMMENT '用户 ID',
        `total_price` FLOAT(10,2) UNSIGNED NOT NULL COMMENT '订单总价',
        `status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '订单状态,0:未支付,1:已支付,2:已完成,3:已取消',
        `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
        `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单表';
    Salin selepas log masuk
    #🎜 🎜#
Jadual butiran pesanan direka seperti berikut:
  • CREATE TABLE IF NOT EXISTS `order_items` (
        `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '订单详情 ID',
        `order_id` INT(10) UNSIGNED NOT NULL COMMENT '订单 ID',
        `dish_id` INT(10) UNSIGNED NOT NULL COMMENT '菜品 ID',
        `quantity` SMALLINT(5) UNSIGNED NOT NULL COMMENT '数量',
        `price` FLOAT(10,2) UNSIGNED NOT NULL COMMENT '单价',
        `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
        `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='订单详情表';
    Salin selepas log masuk
Jadual rekod penggunaan direka seperti berikut: #🎜 #
    CREATE TABLE IF NOT EXISTS `consumption_records` (
        `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '消费记录 ID',
        `user_id` INT(10) UNSIGNED NOT NULL COMMENT '用户 ID',
        `order_id` INT(10) UNSIGNED NOT NULL COMMENT '订单 ID',
        `money` FLOAT(10,2) UNSIGNED NOT NULL COMMENT '消费金额',
        `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
        `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='消费记录表';
    Salin selepas log masuk
  • #🎜 🎜#2. Kod pelaksanaan

Selepas melengkapkan reka bentuk jadual data, kita perlu menggunakan bahasa Go untuk melaksanakan yang sepadan logik perniagaan. Berikut ialah kod yang sepadan:

Tentukan struktur:

type ConsumptionRecord struct {
    ID        uint32    `db:"id" json:"id"`
    UserID    uint32    `db:"user_id" json:"user_id"`
    OrderID   uint32    `db:"order_id" json:"order_id"`
    Money     float32   `db:"money" json:"money"`
    CreatedAt time.Time `db:"created_at" json:"created_at"`
    UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
}

type OrderDetail struct {
    ID         uint32    `db:"id" json:"id"`
    OrderID    uint32    `db:"order_id" json:"order_id"`
    DishID     uint32    `db:"dish_id" json:"dish_id"`
    Quantity   uint16    `db:"quantity" json:"quantity"`
    Price      float32   `db:"price" json:"price"`
    CreatedAt  time.Time `db:"created_at" json:"created_at"`
    UpdatedAt  time.Time `db:"updated_at" json:"updated_at"`
    Dish       *Dish     `db:"-" json:"dish"`
}

type Order struct {
    ID         uint32         `db:"id" json:"id"`
    UserID     uint32         `db:"user_id" json:"user_id"`
    TotalPrice float32        `db:"total_price" json:"total_price"`
    Status     OrderStatus    `db:"status" json:"status"`
    CreatedAt  time.Time      `db:"created_at" json:"created_at"`
    UpdatedAt  time.Time      `db:"updated_at" json:"updated_at"`
    Items      []*OrderDetail `db:"-" json:"items"`
}
Salin selepas log masuk
  • Pertanyaan butiran pesanan: #🎜🎜🎜##🎜 #
    // GetOrderDetailsByOrderIDs 根据订单 ID 列表查询订单详情
    func GetOrderDetailsByOrderIDs(DB *sql.DB, orderIDs []uint32) ([]*OrderDetail, error) {
        details := make([]*OrderDetail, 0)
    
        if len(orderIDs) == 0 {
            return details, nil
        }
    
        // 拼接查询 SQL
        var placeHolders strings.Builder
        var args []interface{}
        for i, id := range orderIDs {
            if i != 0 {
                placeHolders.WriteString(", ")
            }
            placeHolders.WriteString("?")
            args = append(args, id)
        }
    
        query := fmt.Sprintf(`
            SELECT
                id, order_id, dish_id, quantity, price, created_at, updated_at
            FROM
                order_items
            WHERE
                order_id IN (%s)
        `, placeHolders.String())
    
        rows, err := DB.Query(query, args...)
        if err != nil {
            return nil, err
        }
        defer rows.Close()
    
        // 遍历查询结果,并填充菜品信息到订单详情结构体
        for rows.Next() {
            detail := &OrderDetail{}
            err := rows.Scan(
                &detail.ID, &detail.OrderID, &detail.DishID, &detail.Quantity,
                &detail.Price, &detail.CreatedAt, &detail.UpdatedAt)
            if err != nil {
                return nil, err
            }
    
            dish, err := GetDishByID(DB, detail.DishID)
            if err != nil {
                return nil, err
            }
            detail.Dish = dish
    
            details = append(details, detail)
        }
    
        return details, nil
    }
    Salin selepas log masuk
Tambah rekod penggunaan:
  • // AddConsumptionRecord 添加消费记录
    func AddConsumptionRecord(
        DB *sql.DB,
        userID uint32,
        orderID uint32,
        money float32) error {
    
        insertQuery := `
            INSERT INTO consumption_records (user_id, order_id, money)
            VALUES (?, ?, ?)
        `
        _, err := DB.Exec(insertQuery, userID, orderID, money)
        if err != nil {
            return err
        }
    
        return nil
    }
    Salin selepas log masuk
    3. Ringkasan
      #🎜🎜 di atas ialah a##🎜 mudah Contoh cara menggunakan bahasa Go untuk melaksanakan fungsi rakaman penggunaan pengguna dalam sistem memasak dari pintu ke pintu. Melalui kes ini, kita boleh belajar cara menyambung pertanyaan SQL, pertanyaan kelompok, merentasi hasil pertanyaan dan memasukkan data.
    • Secara keseluruhannya, bahasa Go mempunyai kelebihan kesederhanaan, kecekapan dan keselamatan serta disukai oleh majoriti pembangun. Saya percaya bahawa dengan membaca kes ini, anda juga boleh mempunyai pemahaman yang lebih mendalam tentang bahasa Go. Saya juga berharap ia akan membantu anda apabila melaksanakan fungsi rekod penggunaan pengguna.

    Atas ialah kandungan terperinci Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi rakaman penggunaan pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara melaksanakan ujian unit dan ujian integrasi dalam pembangunan bahasa Go Cara melaksanakan ujian unit dan ujian integrasi dalam pembangunan bahasa Go Jun 29, 2023 am 11:58 AM

Cara melaksanakan ujian unit dan ujian integrasi dalam pembangunan bahasa Go Ringkasan: Dalam pembangunan perisian, ujian unit dan ujian integrasi adalah cara penting untuk memastikan kualiti kod dan kestabilan fungsi. Dalam bahasa Go, terdapat juga set sokongan alat yang lengkap, menjadikan ujian unit dan ujian integrasi lebih mudah dan lebih cekap. Artikel ini akan memperkenalkan cara melakukan ujian unit dan ujian integrasi dalam pembangunan bahasa Go dan menunjukkannya melalui beberapa kod sampel. Pengenalan Bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang digemari oleh semakin ramai pembangun kerana kesederhanaan dan ciri yang berkuasa.

Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan ahli sistem pesanan Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan ahli sistem pesanan Nov 01, 2023 am 09:41 AM

Cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan ahli sistem pesanan 1. Pengenalan Dengan populariti Internet mudah alih, sistem tempahan telah menjadi bahagian yang amat diperlukan dalam industri katering. Sebagai bahagian penting dalam sistem pesanan, fungsi pengurusan keahlian memainkan peranan penting dalam meningkatkan pengalaman pengguna dan meningkatkan kelekatan pengguna. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk membangunkan fungsi pengurusan ahli sistem pesanan dan menyediakan contoh kod khusus. 2. Analisis permintaan fungsi pengurusan keahlian Pendaftaran ahli: Pengguna boleh mendaftar sebagai ahli melalui nombor telefon bimbit, e-mel, dsb. Log masuk ahli

Perkongsian pengalaman projek pembangunan bahasa Go Perkongsian pengalaman projek pembangunan bahasa Go Nov 02, 2023 am 09:14 AM

Dengan perkembangan Internet, bidang sains komputer juga telah membawa kepada banyak bahasa pengaturcaraan baharu. Antaranya, bahasa Go secara beransur-ansur menjadi pilihan pertama banyak pembangun kerana keselarasan dan sintaksnya yang ringkas. Sebagai seorang jurutera yang terlibat dalam pembangunan perisian, saya bernasib baik kerana mengambil bahagian dalam projek kerja berdasarkan bahasa Go, dan mengumpul beberapa pengalaman dan pelajaran berharga dalam proses itu. Pertama, memilih rangka kerja dan perpustakaan yang betul adalah penting. Sebelum memulakan projek, kami menjalankan penyelidikan terperinci, mencuba rangka kerja dan perpustakaan yang berbeza, dan akhirnya memilih rangka kerja Gin sebagai

Petua pembangunan bahasa Go: perkongsian amalan dok antara muka Awan Alibaba Petua pembangunan bahasa Go: perkongsian amalan dok antara muka Awan Alibaba Jul 05, 2023 pm 11:49 PM

Petua pembangunan bahasa Go: Perkongsian amalan dok antara muka Awan Alibaba Prakata: Pada masa kini, pengkomputeran awan telah menjadi salah satu teknologi teras untuk pembinaan maklumat perusahaan, dan Alibaba Cloud, sebagai penyedia perkhidmatan pengkomputeran awan yang terkenal di China, mempunyai rangkaian yang kaya produk dan perkhidmatan awan. Artikel ini akan berkongsi beberapa pengalaman praktikal pengarang dalam menggunakan bahasa Go untuk menyambung ke antara muka Alibaba Cloud dan menerangkannya dalam bentuk contoh kod. 1. Pengenalan Alibaba Cloud GoSDK Sebelum menggunakan bahasa Go untuk menyambung ke antara muka Alibaba Cloud, kita perlu memperkenalkan Alibaba Cloud GoSDK yang sepadan terlebih dahulu supaya

Bagaimana untuk membangunkan platform pendidikan dalam talian yang mudah menggunakan bahasa Go Bagaimana untuk membangunkan platform pendidikan dalam talian yang mudah menggunakan bahasa Go Nov 20, 2023 pm 03:32 PM

Bagaimana untuk membangunkan platform pendidikan dalam talian yang mudah menggunakan bahasa Go Pengenalan: Hari ini, perkembangan Internet telah menembusi semua lapisan masyarakat, dan bidang pendidikan tidak terkecuali. Kemunculan platform pendidikan dalam talian telah menjadikan pembelajaran lebih fleksibel dan mudah, dan telah digemari oleh pelajar dan ibu bapa. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk membangunkan platform pendidikan dalam talian yang ringkas, termasuk pembinaan platform, pembangunan fungsi dan reka bentuk pangkalan data. 1. Pembinaan platform Pertama, kita perlu memasang persekitaran pembangunan bahasa Go. Anda boleh memuat turun dan memasang versi terkini dari laman web rasmi

Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi pengurusan alamat penghantaran pengguna? Pergi pembangunan bahasa sistem memasak dari pintu ke pintu: Bagaimana untuk melaksanakan fungsi pengurusan alamat penghantaran pengguna? Nov 01, 2023 pm 02:07 PM

Apabila kualiti hidup orang ramai bertambah baik, semakin ramai keluarga memilih untuk menikmati perkhidmatan katering berkualiti tinggi di rumah. Sistem memasak dari pintu ke pintu muncul mengikut keperluan masa dan telah menjadi cara yang mudah, selamat dan sihat untuk memilih makanan. Di bawah perkhidmatan sedemikian, pengguna boleh membuat pesanan dalam talian, dan tukang masak profesional akan datang untuk menyediakan bahan-bahan, memasak makanan dan menghantarnya ke rumah pengguna untuk dinikmati. Bahasa Go mempunyai ciri kecekapan tinggi, kestabilan dan keselamatan, jadi ia boleh mencapai hasil yang sangat baik apabila dibangunkan dengan sistem memasak dari pintu ke pintu. Artikel ini akan memperkenalkan cara melaksanakan alamat penghantaran pengguna dalam sistem memasak dari pintu ke pintu

Kelebihan dan cabaran membangunkan aplikasi merentas platform menggunakan bahasa Go Kelebihan dan cabaran membangunkan aplikasi merentas platform menggunakan bahasa Go Jul 03, 2023 pm 05:25 PM

Kelebihan dan Cabaran Menggunakan Bahasa Go untuk Membangunkan Aplikasi Merentas Platform Dengan perkembangan pesat Internet mudah alih, aplikasi merentas platform telah menjadi kemahiran penting untuk pembangun. Sebagai bahasa yang mudah dan cekap dengan prestasi konkurensi yang sangat baik, bahasa Go secara beransur-ansur digemari oleh pembangun kerana ciri uniknya. Artikel ini akan meneroka kelebihan dan cabaran membangunkan aplikasi merentas platform menggunakan bahasa Go dan memberikan contoh kod yang sepadan. 1. Kelebihan 1. Ciri bahasa yang lengkap: Bahasa Go menyediakan perpustakaan standard yang kaya, meliputi pelbagai fungsi biasa, seperti operasi fail, komunikasi rangkaian, dsb.

Cara mengoptimumkan keselamatan penghantaran rangkaian dalam pembangunan bahasa Go Cara mengoptimumkan keselamatan penghantaran rangkaian dalam pembangunan bahasa Go Jun 29, 2023 am 09:41 AM

Bagaimana untuk mengoptimumkan keselamatan penghantaran rangkaian dalam pembangunan bahasa Go Dengan perkembangan pesat Internet, keselamatan penghantaran rangkaian menjadi semakin penting. Dalam pembangunan bahasa Go, kami boleh mengambil beberapa langkah untuk mengoptimumkan keselamatan penghantaran rangkaian. Artikel ini akan memperkenalkan beberapa kaedah dan teknik biasa untuk membantu anda meningkatkan keselamatan penghantaran rangkaian bahasa Go. 1. Gunakan protokol HTTPS HTTPS ialah protokol penghantaran rangkaian selamat berdasarkan protokol SSL/TLS Ia boleh menyediakan fungsi penyulitan dan pengesahan, dan boleh menghalang penghantaran rangkaian daripada dicuri dan didengari dengan berkesan.

See all articles