【开源】基于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.mzph.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; ◀️ ⏸ ▶️…

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…

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…

最小二乘线性回归

​ 线性回归&#xff08;linear regression&#xff09;&#xff1a;试图学得一个线性模型以尽可能准确地预测实际值的输出。 以一个例子来说明线性回归&#xff0c;假设银行贷款会根据 年龄 和 工资 来评估可放款的额度。即&#xff1a; ​ 数据&#xff1a;工资和年龄&…

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;还能够揭开反向迭…

【【Linux系统下常用指令学习 之 二 】】

Linux系统下常用指令学习 之 二 文件查询和搜索 文件的查询和搜索也是最常用的操作&#xff0c;在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在&#xff0c;或者搜索哪些文件都调用了某个函数等等。 1、命令 find find 命令用于在目录结构中查找文件…

BUUCTF [ACTF新生赛2020]outguess 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;得到一堆文件。 解题思路&#xff1a; 1、根据题目和flag.txt文件提示&#xff0c;猜测为outguess隐写。 outguess下载安装 kail 终端命…

数字乡村:科技赋能农村产业升级

数字乡村&#xff1a;科技赋能农村产业升级 数字乡村是指通过信息技术和数字化手段&#xff0c;推动农业现代化、农村经济发展和农民增收的一种新模式。近年来&#xff0c;随着互联网技术的飞速发展&#xff0c;数字乡村开始在全国范围内迅速兴起&#xff0c;为乡村经济注入了新…

leedcode 刷题 - 除自身以外数组的乘积 - 和为 K 的子数组

I238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在…

AdaBoost提升分类器性能

目录 AdaBoost算法原理 AdaBoost工作详情 初始权重分配 第一轮 第二轮 后续轮次 最终模型 AdaBoost的API解释 AdaBoost 对房价进行预测 AdaBoost 与决策树模型的比较 结论 AdaBoost算法原理 在数据挖掘中&#xff0c;分类算法可以说是核心算法&#xff0c;其中 Ada…

gitee推荐-PHP面试准备的资料

该内容为giee项目。PHP-Interview: 这个项目是自己准备PHP面试整理的资料。包括PHP、MySQL、Linux、计算机网络等资料。方便自己以后查阅&#xff0c;会不定期更新&#xff0c;欢迎提交pr&#xff0c;如果错误&#xff0c;请指出&#xff0c;谢谢 在线预览地址&#xff1a;Intr…