【開源】基于Vue+SpringBoot的固始鵝塊銷售系統

在這里插入圖片描述

項目編號: S 060 ,文末獲取源碼。 \color{red}{項目編號:S060,文末獲取源碼。} 項目編號:S060,文末獲取源碼。


目錄

  • 一、摘要
    • 1.1 項目介紹
    • 1.2 項目錄屏
  • 二、功能模塊
    • 2.1 數據中心模塊
    • 2.2 鵝塊類型模塊
    • 2.3 固始鵝塊模塊
    • 2.4 鵝塊訂單模塊
    • 2.5 評論管理模塊
  • 三、系統設計
    • 3.1 用例設計
    • 3.2 數據庫設計
      • 3.2.1 鵝塊類型表
      • 3.2.2 鵝塊表
      • 3.2.3 鵝塊訂單表
      • 3.2.4 鵝塊評論表
  • 四、系統展示
  • 五、核心代碼
    • 5.1 查詢鵝塊
    • 5.2 查詢鵝塊類型
    • 5.3 鵝塊下單
    • 5.4 撤銷鵝塊下單
    • 5.5 新增留言
  • 五、免責說明


一、摘要

1.1 項目介紹

基于JAVA+Vue+SpringBoot+MySQL的固始鵝塊銷售系統,包含了鵝塊類型模塊、固始鵝塊模塊、鵝塊訂單模塊、評論管理模塊,還包含系統自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,固始鵝塊銷售系統基于角色的訪問控制,給鵝塊銷售管理員、消費者使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。

1.2 項目錄屏

源碼下載


二、功能模塊

固始鵝塊是深受當地人民喜愛的地方美食,近些年來逐漸走向全國。隨著社會的不斷發展,人們的生活習慣和消費方式都在不斷改變,而目前固始鵝塊的銷售方式大多還是農貿市場銷售、土特產銷售店鋪、大中型超市或餐飲門店等零售方式。傳統固始鵝塊銷售模式的時間、地點都相對固定,占用資金量大,需要店鋪租金、裝修費用、硬件設施、人員、倉庫等各種資金支出。網絡技術的發展為固始鵝塊銷售模式的革新帶來了新的機遇,結合現代網絡技術,改變傳統的面對面的銷售方式,開發出基于B/S架構的固始鵝塊銷售系統。

在這里插入圖片描述

固始鵝塊銷售系統的功能性需求主要包含數據中心模塊、鵝塊類型模塊、固始鵝塊模塊、鵝塊訂單模塊、評論管理模塊這五大模塊,是基于瀏覽器運行的web管理后端,其中各個模塊詳細說明如下。

2.1 數據中心模塊

數據中心模塊包含了固始鵝塊銷售的系統基礎配置,如登錄用戶的管理、鵝塊運營公司組織架構的管理、用戶菜單權限的管理、系統日志的管理、公用文件云盤的管理。

其中登錄用戶管理模塊,由二手平臺管理員負責運維工作,管理員可以對登錄用戶進行增加、刪除、修改、查詢操作。

組織架構,指的是固始鵝塊銷售運營公司的組織架構,該模塊適用于管理這些組織架構的部門層級和員工的部門歸屬情況。

用戶菜單權限管理模塊,用于管理不同權限的用戶,擁有哪些具體的菜單權限。

系統日志的管理,用于維護用戶登入系統的記錄,方便定位追蹤用戶的操作情況。

公用云盤管理模塊,用于統一化維護固始鵝塊銷售系統中的圖片,如店員的人臉照片、鵝塊照片等等。

2.2 鵝塊類型模塊

鵝塊類型模塊用于對固始鵝塊的類型數據進行管理,其中包括會類型名稱、類型狀態、排序值、備注、創建時間、創建人、更新時間、更新人等,管理員可以通過此模塊對固始鵝塊類型數據進行添加、編輯更新、刪除、查詢操作,消費者可以查詢固始鵝塊類型的數據。

2.3 固始鵝塊模塊

固始鵝塊模塊用于對固始鵝塊的數據進行管理,其中包括商品名稱、商品類型、銷售價、圖片、供應商、備注、創建時間、創建人等,管理員可以通過此模塊對固始鵝塊數據進行添加、編輯更新、刪除、查詢操作,消費者可以查詢固始鵝塊的數據。

2.4 鵝塊訂單模塊

鵝塊訂單模塊用于對固始鵝塊的訂單數據進行管理,其中包括商品ID、商品名稱、商品圖片、下單人、商品單價、數量、小計、付款狀態等,消費者可以選擇固始鵝塊數據進行下單、加購操作,管理員可以查詢消費者的下單數據。

2.5 評論管理模塊

固始鵝塊交易過程中難免會有一些咨詢和糾紛,所以固始鵝塊銷售系統專門設計了留言板模塊,用于解決相關糾紛,消費者可以在留言板中留言,或對已留言的信息進行回復,其中包括咨詢內容、咨詢人、咨詢時間、回復內容、回復人、回復時間、備注、創建時間等。


三、系統設計

3.1 用例設計

在這里插入圖片描述

3.2 數據庫設計

3.2.1 鵝塊類型表

在這里插入圖片描述

3.2.2 鵝塊表

在這里插入圖片描述

3.2.3 鵝塊訂單表

在這里插入圖片描述

3.2.4 鵝塊評論表

在這里插入圖片描述


四、系統展示

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述


五、核心代碼

5.1 查詢鵝塊

@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);
}

5.2 查詢鵝塊類型

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢商品類型")
public Result<IPage<ProductType>> getByPage(@ModelAttribute ProductType productType ,@ModelAttribute PageVo page){QueryWrapper<ProductType> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(productType.getTitle())) {qw.like("title",productType.getTitle());}if(!ZwzNullUtils.isNull(productType.getStatus())) {qw.eq("status",productType.getStatus());}IPage<ProductType> data = iProductTypeService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<ProductType>>().setData(data);
}

5.3 鵝塊下單

@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.4 撤銷鵝塊下單

@RequestMapping(value = "/cancelOne", method = RequestMethod.GET)
@ApiOperation(value = "撤銷下單")
public Result<Object> cancelOne(@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.getNumber().compareTo(BigDecimal.ONE) > 0) {bill.setNumber(bill.getNumber().subtract(BigDecimal.ONE));bill.setSum(bill.getPrice().multiply(bill.getNumber()));iSupermarketBillService.saveOrUpdate(bill);}return ResultUtil.success();
}

5.5 新增留言

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增留言")
public Result<Message> insert(Message message){User currUser = securityUtil.getCurrUser();message.setUserId(currUser.getId());message.setUserName(currUser.getNickname());message.setTime(DateUtil.now());message.setReplyContent("");message.setReplyName("");message.setReplyId("");message.setReplyTime("");iMessageService.saveOrUpdate(message);return new ResultUtil<Message>().setData(message);
}

五、免責說明

  • 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
  • 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
  • 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。

下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!

  1. 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
  2. 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
  3. 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
  4. 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211596.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211596.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211596.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mybatis-plus中wrapper的區別

在MyBatis-Plus框架中,LambdaQueryWrapper 和 QueryWrapper 是用于構建查詢條件的兩個主要類。它們都是查詢條件構造器,用于在查詢中生成 WHERE 子句的條件。 QueryWrapper QueryWrapper 是 MyBatis-Plus 3.x 中引入的條件構造器。它的主要特點是使用字符串作為字段名,并支…

python 數字保留小數位數 結果是字符串

precision 2 f{px :.{precision}f} # 自定義動態 f{x:.2f} 數字 轉 字符串 保留dot后面的位數 結果 字符串

從關鍵新聞和最新技術看AI行業發展(2023.11.20-12.3第十一期) |【WeThinkIn老實人報】

Rocky Ding 公眾號&#xff1a;WeThinkIn 寫在前面 【WeThinkIn老實人報】旨在整理&挖掘AI行業的關鍵新聞和最新技術&#xff0c;同時Rocky會對這些關鍵信息進行解讀&#xff0c;力求讓讀者們能從容跟隨AI科技潮流。也歡迎大家提出寶貴的優化建議&#xff0c;一起交流學習&…

MySQL概述-安裝與啟動

數據庫相關概念 MySQL數據庫 下載地址 MySQL :: Download MySQL Installer (Archived Versions) 啟動方法 啟動密令&#xff1a;net start mysql80 停止密令&#xff1a;net stop mysql80 客戶端鏈接方法 注意用系統自帶的命令行工具執行指令需要設置環境在高級系統設置中…

解決使用pnpm安裝時Sharp模塊報錯的方法

在使用pnpm進行項目依賴安裝的過程中&#xff0c;有時候會遇到Sharp模塊報錯的情況。Sharp是一個用于處理圖像的Node.js模塊&#xff0c;但它的安裝可能會因為各種原因而失敗&#xff0c;導致項目無法正常啟動。本文將介紹這個問題的方法。 問題描述 解決方法 在命令行分別輸…

Linux-幫助命令的使用和練習(type、man、help、info詳解)

目錄 5.3.1 type-判斷是否為內部命令 5.3.2 man-查看詳細文檔 5.3.3 help-查看shell內部命令的幫助信息 5.3.4 --help-查看系統外部命令幫助信息 5.3.5 info-查看info格式的幫助指令 5.3.6 /usr/share/doc-存儲軟件包的文檔信息 平時我們看到的命令大多數都可以查看幫助文…

NTP反射放大攻擊

文章目錄 什么是NTPNTP反射放大攻擊解決方案搭建NTP服務器部署服務器端windows NTP命令行本機測試 部署客戶端ntpdatechrony 實驗Python利用腳本 什么是NTP 基于UDP協議的NTP&#xff08;網絡時間協議&#xff09;&#xff1a;使網絡中各個計算機時間同步的一種協議 用途&…

vue3-vite前端快速入門教程 vue-element-admin

Vue3快速入門學習 初始化項目 # 創建項目 npm create vitelatest my-vue-app -- --template vue # 安裝依賴 npm i # 運行 npm run dev 模板語法 文本插值? 最基本的數據綁定形式是文本插值&#xff0c;它使用的是“Mustache”語法 (即雙大括號)&#xff1a; <span&g…

【數據結構】——排序篇(中)

前面我們已經了解了幾大排序了&#xff0c;那么我們今天就來再了解一下剩下的快速排序法&#xff0c;這是一種非常經典的方法&#xff0c;時間復雜度是N*logN。 快速排序法&#xff1a; 基本思想為&#xff1a;任取待排序元素序列中的某元素作為基準值&#xff0c;按照該排序碼…

C++ queue 和priority_queue

目錄 1.什么是queue 2.模擬實現 3.仿函數 模板參數Compare 仿函數 4.什么是priority_queue 模擬實現 1.什么是queue 1.隊列是一種容器適配器&#xff0c;專門用于在FIFO上下文(先進先出)中操作&#xff0c;其中從容器一端插入元素&#xff0c;另一端提取元素。 2.隊列作為…

Java轉Go學習之旅 | Go入門(1)

入門 命令行參數找出重復行常規版本涉及文件操作 命令行參數 命令行參數以os包中Args名字的變量供程序訪問&#xff0c;在os包外面&#xff0c;使用os.Args這個名字 變量os.Args是一個字符串sliceos.Args[0]&#xff1a;命令本身的名字os.Args[1:]&#xff1a;另外的元素&…

Cglib動態代理從入門到掌握

Cglib 動態代理 本文的寫作目的是為了探究 Spring 框架中在使用Transactional標注的方法中使用 this 進行自調用時事務失效的原因&#xff0c;各種視頻教程中只是簡單指出 this 指向的不是代理類對象&#xff0c;而是目標類對象&#xff0c;但是并沒有解釋為什么 this 不是代理…

麒麟系統使用桌面共享遠程桌面

客戶端安裝vinager 服務端 安裝 vnc4server xrdp tightvncserver vino 安裝完成后 需要重啟 在用戶的家目錄下新建 .xsession 寫入xfce4-session防止閃退 雪花屏 開啟xrdp服務 遠程鏈接 Vnc只能鏈接系統登錄的用戶 Rdp可以鏈接所有普通用戶

vscode插件webview和插件通信

如果你要在 VS Code 插件的 WebView 中調用插件中的方法&#xff0c;可以使用 vscode.postMessage API。具體步驟如下&#xff1a; 在插件中&#xff0c;在創建 WebView 時&#xff0c;指定一個 onDidReceiveMessage 回調方法&#xff0c;該方法會在 WebView 中調用 vscode.po…

【C語言】結構體內存對齊

目錄 引入結構體 結構的聲明 創建和初始化 內部元素的使用&#xff1b; 特殊聲明&#xff1a; 結構體在內存中的對齊 練習&#xff1a; 引入結構體 C語言有各種數據類型&#xff0c;我們已經對一些數據類型很熟悉&#xff1a; 整型&#xff08;int&#xff09;- 存儲整…

力扣-151. 反轉字符串中的單詞

文章目錄 看下去&#xff0c;你一定可以理解此題&#xff0c;寫的簡單易懂力扣題目解題思路函數構成1.反轉函數2.消除掉多余空格函數 整體函數 看下去&#xff0c;你一定可以理解此題&#xff0c;寫的簡單易懂 力扣題目 給你一個字符串 s &#xff0c;請你反轉字符串中 單詞 …

京東商品詳情數據在數據分析行業中的重要性

京東商品詳情數據在數據分析行業中具有重要作用。這些數據提供了豐富的信息&#xff0c;可以幫助企業了解市場趨勢、消費者需求、產品表現以及運營策略等多個方面。 首先&#xff0c;京東商品詳情數據可以為企業提供市場趨勢分析的依據。通過觀察商品的銷售量、銷售額、價格等…

c語言:理解和避免野指針

野指針的定義&#xff1a; 野指針是指一個指針變量存儲了一個無效的地址&#xff0c;通常是一個未初始化的指針或者指向已經被釋放的內存地址。當程序嘗試使用野指針時&#xff0c;可能會導致程序崩潰、內存泄漏或者其他不可預測的行為。因此&#xff0c;在編程中需要特別注意…

Pandas中DataFrame對象的創建與常用屬性方法(第2講)

Pandas中DataFrame對象的創建與常用屬性方法(第2講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ???????????????????????????????????????????????????????????????????????????…

智能優化算法應用:基于孔雀算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于孔雀算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于孔雀算法無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.孔雀算法4.實驗參數設定5.算法結果6.參考文獻7.MATLAB…