【开源】基于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.mzph.cn/news/145287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文技巧2

目录 1 找基准模型2 找模块小论文的三个实验怎么做对比试验Sota的挑选对⽐论⽂结果的获取3 消融实验什么是消融实验怎么做消融实验4 实例分析怎么做实例分析小论文必备三张图1 找基准模型 2 找模块 小论文的三个实验 怎么做对比试验

高性能音乐流媒体服务Diosic

什么是 Diosic ? Diosic 是一个开源的基于网络的音乐收集服务器和流媒体。主要适合需要部署在硬件规格不高的服务器上的用户。Diosic 是使用 Rust 开发的&#xff0c;具有低内存使用率和高性能以及用于流媒体音乐的非常干净的界面。 安装 在群晖上以 Docker 方式安装。 在注…

基于JavaWeb+SpringBoot+Vue医疗器械商城微信小程序系统的设计和实现

基于JavaWebSpringBootVue医疗器械商城微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 摘 要 目前医疗器械行业作为医药行业的一个分支&#xff0c;发展十分迅速。…

Sql Prompt 10下载安装图文教程

在操作过程中&#xff0c;请暂时关闭你的防病毒软件&#xff0c;以免其误报导致操作失败。 资源 SQL Prompt 10 https://www.aliyundrive.com/s/QuMWkvE1Sv6 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需下载极速在线查看&…

【数据结构】树与二叉树(十六):二叉树的基础操作:插入结点(算法Insert)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

通讯录实现之进阶版将通讯录数据保存在文件中(完整代码)

我们在之前的博客中已经写过两版通讯录了&#xff1a; 第一版是用C语言实现了通讯录&#xff0c;但是通讯录的存储人数信息是固定的&#xff0c;用完就没有了 感兴趣的可以转到对应博客看一下&#xff0c;附带链接&#xff1a;第一版通讯录 第二版是在第一版的基础上动态开辟…

三大开源向量数据库大比拼

向量数据库具有一系列广泛的好处&#xff0c;特别是在生成式人工智能方面&#xff0c;更具体地说&#xff0c;是在大语言模型&#xff08;LLM&#xff09;方面。这些好处包括先进的索引和精确的相似度搜索&#xff0c;有助于交付强大的先进项目。 本文将对三种开源向量数据库&…

“开源 vs. 闭源:大模型的未来发展趋势预测“——探讨大模型未来的发展方向

文章目录 每日一句正能量前言什么是大模型的开源与闭源开源与闭源的定义和特点开源的意义开源和闭源的优劣势比较不同的大模型企业&#xff0c;开源、闭源的策略不尽相同。企业在开发垂类模型时选择开源还是闭源大模型开源vs 闭源&#xff1a;两者并非选择题后记 每日一句正能量…

【网络】TCP协议的相关实验

TCP协议的相关实验 一、理解listen的第二个参数1、实验现象2、TCP 半连接队列和全连接队列3、关于listen的第二个参数的一些问题4、SYN洪水Ⅰ、什么是SYN洪水攻击Ⅱ、如何解决SYN洪水攻击&#xff1f; 二、使用Wireshark分析TCP通信流程 一、理解listen的第二个参数 在编写TCP…

有什么进销存软件,比较适合零售行业日常开单要求及库存记录?

本文将为大家总结一下对于进销存软件要求&#xff1a; 基础功能&#xff1a;可以日常开单、退换货处理、出入库进阶功能&#xff1a;电脑、手机数据同步&#xff0c;保障数据安全&#xff0c;可进行数据分析 其实无论是小型创业公司&#xff0c;还是一家大型企业&#xff0c;…

MathType2024最新word公式编辑器

使用word进行论文编写时&#xff0c;常需要使用公式编辑器&#xff0c;但有些word中并没有公式编辑器&#xff0c;这时应该怎么办呢&#xff1f;本文将围绕word里没有公式编辑器怎么办&#xff0c;word中的公式编辑器怎么用的内容进行介绍。 一、word里没有公式编辑器怎么办 …

现货黄金职业交易员怎么使用技术分析?

职业的交易员每天要处理很多不同的信息&#xff0c;其中只一部分是涉及技术指标。在这一部分处理技术分析的时间里&#xff0c;只能再分出少之又少的时间给技术指标。那职业交易员会利用做技术指标做什么呢&#xff1f;下面我们就来讨论一下。 识别行情。技术指标的主要作用就是…

Digicert证书:您的网络安全守护神

在当今数字化的世界中&#xff0c;网络安全已经成为每一个企业和个人必须面对的问题。而Digicert品牌证书&#xff0c;就是您网络安全的最佳选择。它不仅具有强大的安全性和稳定性&#xff0c;还能广泛应用于各种场景&#xff0c;为您提供全方位的保护。 首先&#xff0c;我们要…

【Linux】Ubuntu16.04配置repo

Ubuntu16.04配置repo失败 在学习韦东山Linux嵌入式开发过程中&#xff0c;使用repo获取内核及工具链: git clone https://e.coding.net/codebug8/repo.gitmkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk../repo/repo init -u https://gitee.com/weidongshan/m…

万能在线答题考试小程序源码系统 既能刷题 又能考试 带完整的搭建教程

现如今&#xff0c;线上学习和考试已经成为一种趋势。近年来&#xff0c;移动端的普及以及微信小程序的兴起&#xff0c;使得在线答题考试系统变得更加便捷和高效。今天罗峰就来给大家介绍一款万能在线答题考试小程序源码系统&#xff0c;既能刷题&#xff0c;又能考试&#xf…

Tosca 2023x 新功能介绍

Tosca/Structure的功能增强 热优化功能增强 在优化过程中&#xff0c;支持将对流边界条件转移至新创建的表面&#xff0c;方便更加真实地模拟传热行为。支持恒定传导。多物理场优化能力增强。通过使用多个输入面板对热和结构荷载进行分别输入&#xff0c;以支持同时对热和结构…

​软考-高级-系统架构设计师教程(清华第2版)【第10章 软件架构的演化和维护(P345~382)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第10章 软件架构的演化和维护&#xff08;P345~382&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

【k8s集群搭建(二):基于虚拟机的linux的k8s集群搭建_超详细_可视化界面Dashboard安装_记录全过程踩坑记录及解决方法】

在 master 执行 # 根据 在线配置文件 创建资源 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml设置访问端口 # 修改配置文件 找到 type&#xff0c;将 ClusterIP 改成 NodePort kubectl edit svc kubernetes-…

2023年中国冲击波治疗仪市场发展趋势分析:未来市场增长空间更大[图]

冲击波在临床医学领域最早应用于体外冲击波碎石&#xff0c;在二十世纪八十年代末期&#xff0c;体外冲击波碎石技术开始被运用到骨科及康复理疗领域&#xff0c;经过十余年的临床研究&#xff0c;冲击波疗法日益完善&#xff0c;应用范围也日益扩大。冲击波作为一种介于保守疗…

【入门篇】1.7 Redis 之 codis 入门介绍

文章目录 1. 简介2. Codis的安装与配置下载编译源码安装1. 安装 Go 运行环境2. 设置编译环境3. 下载 Codis 源代码4. 编译 Codis 源代码 Docker 部署 3. Codis的架构Codis的架构图和组件Codis的工作流程 4. Codis的核心特性自动数据分片数据迁移高可用性全面支持Redis命令分布式…