コンピュータ卒業プロジェクト スーパーマーケットのセルフサービス決済システム Vue+SpringBoot+MySQL

著者のホームページ:デザイナー Xiao Zheng
著者について: 浙江省寧波出身の Java フルスタック ソフトウェア エンジニアで、ソフトウェアのフロントエンドとバックエンドの開発、システムのカスタマイズ、遠隔技術指導。CSDNアカデミー、Blue Bridgeクラウドコース認定インストラクター、フルスタック分野の高品質クリエイター。

プロジェクト コンテンツ
プロジェクト名 スーパーマーケットのセルフサービス決済システム (S008) \color{red}{スーパーマーケットのセルフサービス決済システム (S008)}スーパーマーケットのセルフ決済システム(S008
プロジェクトの種類 有料アイテム
ソースコードの取得 ソースコードのセルフサービス取得
導入バージョン ソースコードなしでローカルで実行可能
Q&A投稿を交換する 投稿バーでこのプロジェクトについてコミュニケーションやディスカッションを行うことができます
プロジェクト画面の録画 このプロジェクトの動的なデモをご覧いただけます
付加価値サービス [ドキュメント、展開、説明\color{red}{ドキュメント、展開、説明}ドキュメント・導入・解説】「有償プロジェクトのサービス基準」

ここに画像の説明を挿入します


1. 概要

このブログは、スーパーマーケットの買い物セルフサービス決済システムを設計および実装しています. このシステムは、Vue と Spring Boot を含む最新のテクノロジーを使用して、迅速かつ正確な商品決済を実現します. 同時に、ユーザー インターフェイスの面では、スーパーマーケットの買い物セルフサービスを実現します. -サービス決済システムは、ユーザーが操作プロセスをすぐに習得できるシンプルな直感的なデザインを採用しており、スーパーマーケットでの買い物のセルフサービス決済システムのテストと評価により、その効率性と精度の利点を証明し、優れた適応性と信頼性を検証しました。今後、スーパーマーケットでの買い物のセルフ決済システムが普及・促進され、人々の生活にさらなる利便性と快適性をもたらすものと考えられます。

スーパーマーケットの買い物セルフ決済システムは、普及しているJavaEE技術を採用しており、フロントエンドはVue.jsフレームワーク、バックエンドはSpringBootフレームワークを使用してフロントエンドとバックエンドを別々に開発しています。これらのツールは、スーパーマーケットでの買い物のセルフサービス決済システムの開発を完了するために使用されます。スーパーマーケット製品管理システムには、スーパーマーケットエリアモジュール、スーパーマーケット棚モジュール、製品タイプモジュール、製品ファイルモジュールが含まれており、ユーザーWebページと管理バックエンドに分かれており、役割ベースのアクセス制御があり、ボタン レベルへの正確な権限、およびいくつかの簡単なチャート。

  • フロントエンド: Vue 2.7.10

  • バックエンド: Spring Boot 3.1.10

  • データベース: MySQL 8.0.31


2. 研究内容

スーパーマーケットでの買い物セルフ決済システムの研究内容は次のような側面が含まれます. まず技術的側面. スーパーマーケットでの買い物セルフサービス決済システムの技術的核心は、いかに迅速かつ正確に商品情報を読み取り、決済金額を決定し、計算し、決済するかということです。この研究には、Vue テクノロジー、SpringBoot テクノロジー、MySQL テクノロジーなど、多くの技術的手段が必要です。

2つ目はユーザーインターフェースの設計であり、スーパーマーケットの買い物セルフ決済システムのユーザー操作インターフェースは、シンプルかつ直感的で操作しやすいものである必要があり、顧客の習慣やニーズに応じたインターフェースを総合的に考慮して設計する必要があります。人間とコンピューターのインタラクションとユーザー エクスペリエンス。

3つ目は、セキュリティ対策の設計であり、スーパーマーケットのセルフ決済システムにおいては、詐欺、窃盗等の違法行為を防止するため、カメラやセンサー等のセキュリティ機器の設置やセキュリティの検討等、適切なセキュリティ対策を講じる必要がある。ポリシーと仕様を策定する必要があります。

4つ目は、データ分析と最適化であり、スーパーマーケットのセルフ決済システムは、ユーザーの消費データを分析することで、より正確なマーケティングやプロモーションサービスを提供することができると同時に、運用プロセスにおいてシステムの最適化やアップグレードを行い、サービスの向上を図る必要があります。支払いの成功率を高め、エラー率を減らします。お待ちください。

5つ目は、適用シナリオの拡大であり、スーパーマーケットでの買い物セルフ決済システムの適用シナリオは、スーパーマーケットやコンビニエンスストアなどの小売業界だけでなく、他の分野への拡張も可能です。 -サービス決済システムは、観光地や空港などに導入でき、利用者により便利な消費体験を提供します スーパーマーケットでの買い物セルフサービス決済システムの主な研究内容は、技術コア、ユーザーインターフェース設計、セキュリティ対策設計、データの分析と最適化、アプリケーションの拡張など。

ここに画像の説明を挿入します

2.1 製品タイプモジュール

スーパーマーケットの買い物セルフサービス決済システムには、さまざまな種類の商品を迅速かつ正確に識別し、その特性に応じて決済できるため、商品タイプ モジュールが必要です。商品タイプ モジュールは、食品、飲料、食品などのさまざまなタイプの商品を分類できます消費財。その後の支払いと統計を容易にするために、製品によっては、量り売り品目や割引品目など、特別な処理が必要な特殊な状況が発生する場合があります。製品タイプ モジュールは、この状況を識別して処理できます。製品タイプモジュールは、顧客が購入した製品の種類に基づいて、適切な割引情報や推奨サービスを提供し、ショッピング体験と満足度を向上させることができ、顧客は手動入力することなく、より簡単かつ迅速に製品を選択できるようになり、時間と労力を節約できます。情報を取得するか、バーコードをスキャンします。つまり、商品タイプモジュールは、スーパーマーケットのショッピングセルフサービス決済システムの不可欠な部分であり、スーパーマーケットのショッピングセルフサービス決済システムは、商品タイプを迅速かつ正確に識別し、優先情報とサービスを提供することができます。ショッピング体験と効率を向上させるための操作プロセスと支援。

ここに画像の説明を挿入します

2.2 製品モジュール

スーパーマーケットの買い物セルフ決済システムに商品アーカイブモジュールが必要な理由は、このモジュールが商品情報の基礎データと管理を提供するためであり、スーパーマーケットの買い物セルフ決済システムは正確に商品情報を読み取り、計算することができるように決済を行うことができるからです。価格を決定し、支払い処理を実行します。製品ファイル モジュールには、名前、コード、仕様、単位、販売価格など、製品のすべての基本情報が含まれています。この情報は、スーパーマーケットのショッピング セルフサービス支払いシステムが迅速に決済できることを保証するために非常に重要です。また、製品ファイルモジュールには、各製品のバーコードとバーコードも保存されています。QRコード情報、スーパーマーケットのショッピングセルフサービス支払いシステムは、これらのバーコードをスキャンすることで、製品を迅速に識別し、価格を自動的に計算できます。また、手動計算エラーや遅延も回避できます。製品プロファイル モジュールでは、各製品の価格と割引情報を設定および管理することもできます。スーパーマーケットのショッピング セルフサービス決済システムは、製品ファイル モジュール内の価格情報に基づいて消費者の支払い金額を自動的に計算し、対応するサービスを提供します。優待活動を推進し、消費者の満足度を向上させます。製品アーカイブモジュールにはすべての製品の販売データが保存されており、スーパーマーケットはこのデータを分析して、消費者の需要に合わせて販売データに基づいて商品の種類、数量、価格などを調整するなど、より良いマーケティング戦略を立てることができます。販売。上で述べたように、商品ファイル モジュールはスーパーマーケットのショッピング セルフサービス決済システムの重要な部分であり、スーパーマーケットのショッピング セルフサービス決済システムの通常の動作と優れたサービスのための強固な基盤を提供します。

ここに画像の説明を挿入します

2.3 スーパーマーケットの請求書モジュール

スーパーマーケットの買い物セルフサービス支払いシステムには、主に顧客がスーパーマーケットの購入記録と消費状況を調査するのを容易にするスーパーマーケット請求モジュールが必要であり、同時にスーパーマーケットにより正確なマーケティング戦略とサービスを提供します。顧客は、スーパーマーケットの請求モジュールで、製品名、購入時刻、数量、価格などの詳細情報を含む以前の購入記録を見つけることができます。これは、顧客が自分の消費を追跡し、個人のニーズに基づいて購入計画を立てるのに役立ちます。スーパーマーケットの請求モジュールは、すべてを要約することができます。顧客の購入記録を作成し、支出額の統計レポートを生成することで、顧客がスーパーマーケットでの消費レベルを把握し、支出を効果的に管理するのに役立ちます。また、スーパーの請求書モジュールとスーパーマーケットのクーポンシステムを統合することで、顧客はクーポンの使用状況や残量を簡単に確認できるとともに、顧客の購買履歴や好みに応じて適切なクーポンを推奨することができ、ユーザーロイヤルティを向上させることができます。スーパーマーケットの請求モジュールは、顧客の購入記録データを分析およびマイニングし、顧客の消費習慣や好みを理解し、スーパーマーケットに対してより正確なマーケティング戦略とサービスを提供できます。また、スーパーマーケットの請求書モジュールは、過去のデータに基づいて予測分析を実行し、スーパーマーケットのより科学的な運営計画を作成することもできます。前述したように、スーパーマーケットの請求書モジュールは、スーパーマーケットの買い物セルフサービス支払いシステムに不可欠な部分であり、利点をもたらすことができます。お客様やスーパーマーケットへの便利さとメリットがたくさんあります。

ここに画像の説明を挿入します

3. インターフェース表示

3.1 ログインおよび登録モジュール

ここに画像の説明を挿入します

3.2 スーパーマーケットの商品タイプモジュール

ここに画像の説明を挿入します

ここに画像の説明を挿入します

3.3 スーパーマーケットの商品モジュール

ここに画像の説明を挿入します
ここに画像の説明を挿入します

3.4 製品購入モジュール

ここに画像の説明を挿入します

3.5 スーパーマーケットの請求書モジュール

ここに画像の説明を挿入します


4. ソースコードの部分表示

4.1 エンティティクラスの定義

製品エンティティクラス:

@Table(name = "a_product")
@TableName("a_product")
@ApiModel(value = "商品")
public class Product extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "商品名称")
    private String title;

    @ApiModelProperty(value = "商品类型")
    private String type;

    @ApiModelProperty(value = "销售价")
    private BigDecimal price;

    @ApiModelProperty(value = "图片")
    private String image;

    @ApiModelProperty(value = "供应商")
    private String supplier;

    @Transient
    @TableField(exist=false)
    @ApiModelProperty(value = "购买数量")
    private BigDecimal number;
}

製品タイプエンティティクラス:

@Table(name = "a_product_type")
@TableName("a_product_type")
@ApiModel(value = "商品类型")
public class ProductType extends ZwzBaseEntity {
    
    

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "类型名称")
    private String title;

    @ApiModelProperty(value = "类型状态")
    private String status;

    @ApiModelProperty(value = "排序值")
    private BigDecimal sortOrder;

    @ApiModelProperty(value = "备注")
    private String remark;
}

4.2 コントローラインターフェース

私が投稿した製品をチェックしてください:

@RequestMapping(value = "/getSellPage", method = RequestMethod.GET)
@ApiOperation(value = "查询商品")
public Result<IPage<Product>> getSellPage(@ModelAttribute Product product,@ModelAttribute PageVo page){
    
    
    QueryWrapper<Product> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<SupermarketBill> billQw = new QueryWrapper<>();
    billQw.eq("user_id",currUser.getId());
    billQw.eq("status","未付款");
    List<SupermarketBill> billList = iSupermarketBillService.list(billQw);
    if(!ZwzNullUtils.isNull(product.getTitle())) {
    
    
        qw.like("title",product.getTitle());
    }
    if(!ZwzNullUtils.isNull(product.getType())) {
    
    
        qw.eq("type",product.getType());
    }
    IPage<Product> data = iProductService.page(PageUtil.initMpPage(page),qw);
    for (Product vo : data.getRecords()) {
    
    
        vo.setNumber(BigDecimal.ZERO);
    }
    for (Product vo : data.getRecords()) {
    
    
        for (SupermarketBill bill : billList) {
    
    
            if(Objects.equals(vo.getId(),bill.getProductId())) {
    
    
                vo.setNumber(vo.getNumber().add(bill.getNumber()));
            }
        }
    }
    return new ResultUtil<IPage<Product>>().setData(data);
}

製品注文:

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "下单")
public Result<Object> addOne(@RequestParam String id){
    
    
    Product p = iProductService.getById(id);
    if(p == null) {
    
    
        return ResultUtil.error("商品不存在");
    }
    User currUser = securityUtil.getCurrUser();
    /**
     * 判断是否下单
     */
    QueryWrapper<SupermarketBill> billQw = new QueryWrapper<>();
    billQw.eq("product_id",id);
    billQw.eq("user_id",currUser.getId());
    billQw.eq("status","未付款");
    billQw.last("limit 1");
    SupermarketBill bill = iSupermarketBillService.getOne(billQw);
    if(bill != null) {
    
    
        bill.setNumber(bill.getNumber().add(BigDecimal.ONE));
        bill.setSum(bill.getPrice().multiply(bill.getNumber()));
        iSupermarketBillService.saveOrUpdate(bill);
        return ResultUtil.success();
    }
    /**
     * 下单
     */
    SupermarketBill b = new SupermarketBill();
    b.setProductId(p.getId());
    b.setProductName(p.getTitle());
    b.setProductImage(p.getImage());
    b.setUserId(currUser.getId());
    b.setUserName(currUser.getNickname());
    b.setPrice(p.getPrice());
    b.setNumber(BigDecimal.ONE);
    b.setSum(p.getPrice());
    b.setStatus("未付款");
    iSupermarketBillService.saveOrUpdate(b);
    return ResultUtil.success();
}

5. 添付文書の表示

ここに画像の説明を挿入します

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します


6. 免責事項

  • このプロジェクトは個人的な研究のみを目的としています。商用承認についてはブロガーに問い合わせてください。そうでない場合は、その結果について責任を負うことになります。
  • ブロガーは、このソフトウェアによって構築されたアプリケーション システムのすべてのコンテンツおよび独立した知的財産権を所有し、最終的な解釈権を有します。
  • ご質問がございましたら、倉庫問題にメッセージを残してください。確認後、できるだけ早く返信させていただきます。関連する意見は適切に考慮されますが、採用されることを確約または保証するものではありません。

このシステム コードをダウンロードする、またはこのシステムを使用するユーザーは、以下の内容に同意する必要があります。同意しない場合はダウンロードしないでください。

  1. あなたは、このソフトウェアを自発的に使用/開発し、このソフトウェアを使用するリスクを理解し、このソフトウェアを使用するリスクを負担することに同意するものとします。
  2. このソフトウェアを使用して構築されたウェブサイトの情報内容、およびそれに伴う著作権紛争、法的紛争および結果については、ブロガーとは一切関係がなく、ブロガーは一切の責任を負いません。
  3. いかなる状況においても、ブロガーは、このソフトウェアの使用または使用不能から生じる合理的に予測することが困難な損失 (商業的利益の損失、事業の中断、およびビジネス情報の損失を含みますが、これらに限定されません) に対して責任を負いません。
  4. ブロガーは、本ソフトウェアを使用する際のリスクを十分に理解した上で、個別の技術サポートや使用保証を提供することを約束するものではなく、また、本ソフトウェアによって引き起こされる予期せぬ問題については一切の責任を負いません。

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_41464123/article/details/132595174