訪問調理システムの Go 言語開発: ユーザーの消費量記録機能を実装するには?
訪問調理システムの Go 言語開発: ユーザーの消費量記録機能を実装するにはどうすればよいですか?
生活水準の向上に伴い、人々の食料に対する需要もますます高まっています。自炊に挑戦する人が増えていますが、仕事が忙しかったり怠けたりして自炊ができない人も多いです。そこで誕生したのが、宅配調理サービスです。
現在、宅配調理サービスはオンラインプラットフォームを通じて予約や注文を行うのが一般的です。顧客はプラットフォームを通じて必要な料理と数量を選択し、対応する料金を支払った後、ドアツードアのサービスを待つことができます。これらのサービスの中でも、特に重要なのがユーザーの消費記録機能です。サービスプロバイダーにとっては、消費記録によりアカウントの管理が改善され、業務効率が向上します。また、ユーザーにとっては、消費記録により最近の消費状況を確認し、消費能力をより正確に見積もることができます。
それでは、訪問調理システムのユーザーの消費量記録機能をどのように実装するのでしょうか?以下を見てみましょう。
1. データ テーブルの設計
消費記録機能の実装を考える前に、まず対応するデータ テーブルを設計する必要があります。この場合、メニュー表、注文表、注文明細表、消費実績表を設計する必要があります。
- #メニュー テーブルは次のように設計されています:
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='菜品表';
ログイン後にコピー
- 注文テーブルは次のように設計されています:
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='订单表';
- 注文詳細テーブルは次のように設計されています:
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='订单详情表';
- 消費記録テーブルは次のように設計されています:
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='消费记录表';
2. 実装コード
データテーブルの完成後 設計が完了したら、Go 言語を使用して対応するビジネス ロジックを実装する必要があります。対応するコードは次のとおりです。- 構造の定義:
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"` }
- 注文の詳細のクエリ:
// 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 }
- Add消費記録:
// 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 }
3. 概要
上記は、Go 言語を使用して、シンプルなドアにユーザー消費記録機能を実装する方法の例です。 -to-door調理システム。このケースを通じて、SQL クエリの結合、バッチ クエリ、クエリ結果のトラバース、データの挿入の方法を学ぶことができます。 全体として、Go 言語にはシンプルさ、効率性、セキュリティという利点があり、大多数の開発者に愛されています。この事例を読むことでGo言語への理解も深まると思いますし、ユーザー消費記録機能を実装する際の参考になれば幸いです。以上が訪問調理システムの Go 言語開発: ユーザーの消費量記録機能を実装するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go 言語開発で単体テストと統合テストを実行する方法 要約: ソフトウェア開発において、単体テストと統合テストはコードの品質と機能の安定性を確保するための重要な手段です。 Go 言語には完全なツール サポート セットもあり、単体テストと統合テストがより簡単かつ効率的になります。この記事では、Go 言語開発における単体テストと結合テストの実行方法を紹介し、いくつかのサンプルコードを使用してデモンストレーションします。はじめに Go 言語は、そのシンプルさと強力な機能により、ますます多くの開発者に好まれているオープンソース プログラミング言語です。

Go 言語を使用してオーダリング システムのメンバー管理機能を開発する方法 1. はじめに モバイル インターネットの普及により、オーダリング システムはケータリング業界にとって不可欠な部分になりました。注文システムの重要な部分である会員管理機能は、ユーザーエクスペリエンスを向上させ、ユーザーの定着率を高める上で重要な役割を果たします。この記事では、Go言語を使って受発注システムの会員管理機能を開発する方法と具体的なコード例を紹介します。 2. 会員管理機能の需要分析 会員登録:携帯電話番号、メールアドレス等から会員登録が可能です。会員ログイン

インターネットの発展に伴い、コンピューター サイエンスの分野でも多くの新しいプログラミング言語が登場しました。その中でも、Go 言語は、その同時実行性と簡潔な構文により、徐々に多くの開発者の最初の選択肢になりました。ソフトウェア開発に従事するエンジニアとして、私は幸運にも Go 言語をベースにした作業プロジェクトに参加することができ、その過程で貴重な経験と教訓を蓄積しました。まず、適切なフレームワークとライブラリを選択することが重要です。プロジェクトを開始する前に、詳細な調査を実施し、さまざまなフレームワークとライブラリを試し、最終的に Jin フレームワークを選択しました。

Go 言語開発のヒント: Alibaba Cloud インターフェイスのドッキング演習の共有 はじめに: 現在、クラウド コンピューティングは企業情報構築の中核技術の 1 つとなっており、Alibaba Cloud は中国の有名なクラウド コンピューティング サービス プロバイダーとして、豊富なクラウドを持っています。製品とサービス。この記事では、Go 言語を使用して Alibaba Cloud インターフェイスに接続する際の著者の実践的な経験の一部を共有し、コード例の形式で説明します。 1. Alibaba Cloud GoSDK の導入 Go 言語を使用して Alibaba Cloud インターフェイスに接続する前に、まず対応する Alibaba Cloud GoSDK を導入する必要があります。

Go 言語を使用してクロスプラットフォーム アプリケーションを開発する利点と課題 モバイル インターネットの急速な発展に伴い、クロスプラットフォーム アプリケーションは開発者にとって不可欠なスキルになりました。 Go 言語は、優れた同時実行パフォーマンスを備えたシンプルで効率的な言語として、その独特の特性により開発者の間で徐々に支持されています。この記事では、Go 言語を使用してクロスプラットフォーム アプリケーションを開発する利点と課題を探り、対応するコード例を示します。 1. 利点 1. 完全な言語機能: Go 言語は、ファイル操作、ネットワーク通信などのさまざまな共通機能をカバーする豊富な標準ライブラリを提供します。

Go 言語を使用して、訪問調理システムの食器在庫管理モジュールを記述するにはどうすればよいですか?テイクアウトや自炊の普及により、美味しい料理を自宅で楽しむ人が増えています。宅配調理サービスを提供するプラットフォームとして、食品在庫管理は不可欠な部分です。この記事では、Go言語を使用して訪問調理システムの食器在庫管理モジュールを記述する方法と、具体的なコード例を紹介します。料理在庫管理モジュールの機能には、主に料理の追加、クエリ、変更、削除が含まれます。まず、ディッシュ構造を定義する必要があります。

Go 言語を使用してシンプルなオンライン教育プラットフォームを開発する方法 はじめに: 今日、インターネットの発展はあらゆる階層に浸透しており、教育の分野も例外ではありません。オンライン教育プラットフォームの出現により、学習はより柔軟かつ便利になり、生徒や保護者から支持されています。この記事では、Go 言語を使用して、プラットフォームの構築、機能開発、データベースの設計など、簡単なオンライン教育プラットフォームを開発する方法を紹介します。 1. プラットフォームの構築 まず、Go 言語の開発環境をインストールする必要があります。公式Webサイトから最新バージョンをダウンロードしてインストールできます

Go 言語開発でネットワーク伝送セキュリティを最適化する方法 インターネットの急速な発展に伴い、ネットワーク伝送セキュリティの重要性がますます高まっています。 Go 言語の開発では、ネットワーク送信のセキュリティを最適化するためにいくつかの対策を講じることができます。この記事では、Go 言語のネットワーク送信のセキュリティを向上させるのに役立ついくつかの一般的な方法とテクニックを紹介します。 1. HTTPS プロトコルを使用する HTTPS は、SSL/TLS プロトコルに基づいた安全なネットワーク伝送プロトコルであり、暗号化機能と認証機能を提供し、ネットワーク伝送の盗聴や暗号化を効果的に防止できます。
