項目編號: 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 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!
- 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
- 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
- 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
- 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。