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

在這里插入圖片描述

項目編號: 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/165850.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165850.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165850.shtml

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

相關文章

qgis添加xyz柵格瓦片

方式1&#xff1a;手動一個個添加 左側瀏覽器-XYZ Tiles-右鍵-新建連接 例如添加高德瓦片地址 https://wprd01.is.autonavi.com/appmaptile?langzh_cn&size1&style7&x{x}&y{y}&z{z} 雙擊即可呈現 收集到的一些圖源&#xff0c;僅供參考&#xff0c;其中一…

【C++學習手札】模擬實現list

? &#x1f3ac;慕斯主頁&#xff1a;修仙—別有洞天 ??今日夜電波&#xff1a;リナリア—まるりとりゅうが 0:36━━━━━━?&#x1f49f;──────── 3:51 &#x1f504; ?? ? ??…

聊聊httpclient的staleConnectionCheckEnabled

序 本文主要研究一下httpclient的staleConnectionCheckEnabled staleConnectionCheckEnabled org/apache/http/client/config/RequestConfig.java public class RequestConfig implements Cloneable {public static final RequestConfig DEFAULT new Builder().build();pr…

【ARM 嵌入式 編譯 Makefile 系列 18 -- Makefile 中的 export 命令詳細介紹】

文章目錄 Makefile 中的 export 命令詳細介紹Makefile 使用 export導出與未導出變量的區別示例&#xff1a;導出變量以供子 Makefile 使用 Makefile 中的 export 命令詳細介紹 在 Makefile 中&#xff0c;export 命令用于將變量從 Makefile 導出到由 Makefile 啟動的子進程的環…

qgis添加wms服務

例如添加geoserver的wms服務 左右瀏覽器-WMS/WMTS-右鍵-新建連接 URL添加geoserver的wms地址 http://{ip}:{port}/geoserver/{workspace}/wms 展開wms目錄&#xff0c;雙擊相應圖層即可打開

Spark---基于Yarn模式提交任務

Yarn模式兩種提交任務方式 一、yarn-client提交任務方式 1、提交命令 ./spark-submit --master yarn --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 100 或者 ./spark-submit --master yarn–client --class org.apache.s…

三菱PLC應用[集錦]

三菱PLC應用[集錦] 如何判斷用PNP還是NPN的個人工作心得 10&#xff5e;30VDC接近開關與PLC連接時&#xff0c;如何判斷用PNP還是NPN的個人工作心得: 對于PLC的開關量輸入回路。我個人感覺日本三菱的要好得多&#xff0c;甚至比西門子等赫赫大名的PLC都要實用和可靠&#xff01…

vulnhub4

靶機地址: https://download.vulnhub.com/admx/AdmX_new.7z 信息收集 fscan 掃一下 ┌──(kali?kali)-[~/Desktop/Tools/fscan] └─$ ./fscan_amd64 -h 192.168.120.138 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ …

LeetCode | 622. 設計循環隊列

LeetCode | 622. 設計循環隊列 OJ鏈接 思路&#xff1a; 我們這里有一個思路&#xff1a; 插入數據&#xff0c;bank往后走 刪除數據&#xff0c;front往前走 再插入數據&#xff0c;就循環了 那上面這個方法可行嗎&#xff1f; 怎么判斷滿&#xff0c;怎么判斷空&#xff1…

模電知識點總結(二)二極管

系列文章目錄 文章目錄 系列文章目錄二極管二極管電路分析方法理想模型恒壓降模型折線模型小信號模型高頻/開關 二極管應用整流限幅/鉗位開關齊納二極管變容二極管肖特基二極管光電器件光電二極管發光二極管激光二極管太陽能電池 二極管 硅二極管&#xff1a;死區電壓&#xf…

今年注冊電氣工程師考試亂象及就業前景分析

1、注冊電氣工程師掛靠價格 # 2011年以前約為5萬一年&#xff0c;2011年開始強制實施注冊電氣執業制度&#xff0c;證書掛靠價格開始了飛漲&#xff0c;2013年達到巔峰&#xff0c;供配電15萬一年&#xff0c;發輸變電20-25萬一年&#xff0c;這哪里是證書&#xff0c;簡直就是…

Docker kill 命令

docker kill&#xff1a;殺死一個或多個正在運行的容器。 語法&#xff1a; docker kill [OPTIONS] CONTAINER [CONTAINER...]OPTIONS說明&#xff1a; -s&#xff1a;向容器發送一個信號 描述&#xff1a; docker kill子命令會殺死一個或多個容器。容器內的主進程被發送S…

C語言數組的距離(ZZULIOJ1200:數組的距離)

題目描述 已知元素從小到大排列的兩個數組x[]和y[]&#xff0c; 請寫出一個程序算出兩個數組彼此之間差的絕對值中最小的一個&#xff0c;這叫做數組的距離 。 輸入&#xff1a;第一行為兩個整數m, n(1≤m, n≤1000)&#xff0c;分別代表數組f[], g[]的長度。第二行有m個元素&a…

如何在Simulink中使用syms?換個思路解決報錯:Function ‘syms‘ not supported for code generation.

問題描述 在Simulink中的User defined function使用syms函數&#xff0c;報錯simulink無法使用外部函數。 具體來說&#xff1a; 我想在Predefined function定義如下符號函數作為輸入信號&#xff0c;在后續模塊傳入函數參數賦值&#xff0c;以實現一次定義多次使用&#xf…

014:MyString

題目 描述 補足MyString類&#xff0c;使程序輸出指定結果 #include <iostream> #include <string> #include <cstring> using namespace std; class MyString {char * p; public:MyString(const char * s) {if( s) {p new char[strlen(s) 1];strcpy(p,…

最小二乘線性回歸

? 線性回歸&#xff08;linear regression&#xff09;&#xff1a;試圖學得一個線性模型以盡可能準確地預測實際值的輸出。 以一個例子來說明線性回歸&#xff0c;假設銀行貸款會根據 年齡 和 工資 來評估可放款的額度。即&#xff1a; ? 數據&#xff1a;工資和年齡&…

python將模塊進行打包

模塊名稱為&#xff1a;my_module 目錄結構&#xff1a; my_modulemy_module__init__.pymy_module_main.pysetup.pypython setup.pu sdist bdist_wheel生成tar.gz包和whl文件用于安裝 """ python setup.py sdist bdist_wheel """from setuptoo…

LeeCode前端算法基礎100題(2)- 最多水的容器

一、問題詳情&#xff1a; 給定一個長度為 n 的整數數組 height 。有 n 條垂線&#xff0c;第 i 條線的兩個端點是 (i, 0) 和 (i, height[i]) 。 找出其中的兩條線&#xff0c;使得它們與 x 軸共同構成的容器可以容納最多的水。 返回容器可以儲存的最大水量。 說明&#xff1a;…

案例025:基于微信小程序的移動學習平臺的設計與實現

文末獲取源碼 開發語言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 數據庫&#xff1a;mysql 5.7 開發軟件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序開發軟件&#xff1a;HBuilder X 小程序…

[C++歷練之路]優先級隊列||反向迭代器的模擬實現

W...Y的主頁 &#x1f60a; 代碼倉庫分享&#x1f495; &#x1f354;前言&#xff1a; 在C的宇宙中&#xff0c;優先隊列似乎是一座巨大的寶庫&#xff0c;藏匿著算法的珍寶。而就在這片代碼的天空下&#xff0c;我們不僅可以探索優先隊列的神奇&#xff0c;還能夠揭開反向迭…