基于springboot,vue网上订餐系统
开发工具:IDEA
服务器:Tomcat9.0, jdk1.8
项目构建:maven
数据库:mysql5.7
前端技术 :Vue+ElementUI
服务端技术:springboot+mybatis+redis
本系统分用户前台和管理后台两部分,项目采用前后端分离
主要功能如下:
(1)前台部分功能:
1.登录、注册、首页
2.购物车、商品详情、搜索商品、结算功能
3.我的订单、个人资料、退出登录、取消订单、评价等
(2)后台部分功能:
1.登录、首页、退出登录
2.用户管理:新增、修改、分页查询、删除
3.角色管理:新增、修改、分页查询、删除
4.商品分类管理:新增、修改、分页查询、删除
5.商品管理:新增、修改、分页查询、删除
6.订单管理:修改状态、查询详情、分页查询、删除
7.评论管理:分页查询、查看详情、回复

文档截图:


前台截图:








后台截图:









@RestController("AdminOrderController")
@RequestMapping("/admin/order")
public class OrderController {@Resourceprivate IOrderService orderService;/*** 后台分页获取订单数据* @param pageDTO* @return*/@PostMapping("/list")public ResponseDTO<PageDTO<OrderDTO>> getOrderListByPage(@RequestBody PageDTO<OrderDTO> pageDTO){return orderService.getOrderListByPage(pageDTO);}/*** 后台修改订单状态* @param orderDTO* @return*/@PostMapping("/edit-state")public ResponseDTO<Boolean> editState(@RequestBody OrderDTO orderDTO){return orderService.updateOrderState(orderDTO);}/*** 根据订单id获取订单详情信息* @param orderDTO* @return*/@PostMapping("/order-item")public ResponseDTO<OrderDTO> getOrderItemByOrderId(@RequestBody OrderDTO orderDTO){return orderService.getOrderItemByOrderId(orderDTO);}/*** 后台删除订单数据* @param orderDTO* @return*/@PostMapping("/remove")public ResponseDTO<Boolean> removeOrder(@RequestBody OrderDTO orderDTO){return orderService.removeOrder(orderDTO);}/*** 后台获取订单总数* @return*/@PostMapping("/total")public ResponseDTO<Long> getOrderTotal(){return orderService.getOrderTotal();}/*** 获取今日订单成交金额* @return*/@PostMapping("/today-price")public ResponseDTO<BigDecimal> getTodayPrice(){return orderService.getTodayPrice();}/*** 获取本周订单成交金额* @return*/@PostMapping("/week-price")public ResponseDTO<BigDecimal> getWeekPrice(){return orderService.getWeekPrice();}/*** 获取本月订单成交金额* @return*/@PostMapping("/month-price")public ResponseDTO<BigDecimal> getMonthPrice(){return orderService.getMonthPrice();}/*** 根据时间范围和订单状态获取交易的订单总数* @return*/@PostMapping("/count-state-date")public ResponseDTO<List<Integer>> getOrderCountByDateAndState(){return orderService.getOrderCountByDateAndState();}}
<body class="html not-front not-logged-in one-sidebar sidebar-second page-cart page-cart-checkout" ><div id="skip-link"><a href="#main-content" class="element-invisible element-focusable">Skip to main content</a></div><div id="wrapper"><!-- LOGIN POP UPS --><div id="popup-overlay"></div><div class="wrapper"><header><the-header></the-header></header><div class="content clearfix"><div class="pane-content" style="margin-top:50px"><div id="meals-of-the-day"><h3 class="title-separator"><span class="title">推荐餐品</span><span class="sep"></span></h3><ul><li style="width: 300px; padding: 0px 10px;" class="meal" v-for="(item, index) in recommendProductList" :key="index"><div class="img-holder"><img typeof="foaf:Image" :src="item.photo|filterPhoto" width="327" height="198" alt="" /></div><div class="desc-holder"><h1><router-link :to="'detail?productId='+item.id" :title="item.name">{{item.name|filterName}}</router-link></h1><p v-text="item.info"></p><span class="price" v-text="'¥'+item.price"></span><div class="add-to-cart"><form id="uc-product-add-to-cart-form-4"><div><div class="form-actions form-wrapper" id="edit-actions"><input class="node-add-to-cart form-submit" @click="addCart(item.id)" type="button" value="加入购物车" /></div></div></form></div></div></li></ul></div></div><div class="panel-separator"></div><div class="panel-pane pane-block pane-custom-featured-meals" ><div class="pane-content"><h3 class="title-separator"><span class="title">热销餐品 </span><span class="sep"></span></h3><div id="featured-meals"><ul><li class="meal" v-for="(item,index) in saleList" :key="index"><div class="img-holder"><img typeof="foaf:Image" :src="item.photo|filterPhoto" width="191" height="148" alt="" /></div><h1><router-link :to="'/detail?productId='+item.id" v-text="item.name"></router-link></h1><p v-text="item.info"></p><span class="price" v-text="'¥'+item.price"></span><div class="add-to-cart"><form id="uc-product-add-to-cart-form-4--2"><div><div class="form-actions form-wrapper" id="edit-actions--5"><input class="node-add-to-cart form-submit" @click="addCart(item.id)" type="button" id="edit-submit-4" name="op" value="加入购物车" /></div></div></form></div></li></ul></div> </div></div><div class="panel-separator"></div><div class="panel-pane pane-block pane-custom-custom-cart" ><h2 class="pane-title">最高人气</h2><div class="pane-content"><p class="cart-block-items uc-cart-empty" v-for="(item,index) in viewList" :key="index"><router-link style="color:#ffffff; text-decoration: none" :to="'detail?productId='+item.id">{{index+1}} . {{item.name}}</router-link></p><div class="cart-box"><div class="body"><ul></ul><router-link class="submit-button" to="/menus">查看更多</router-link><div class="graphic"></div></div></div> </div></div></div></div><the-footer></the-footer></div></body>
相关文章:
基于springboot,vue网上订餐系统
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术 :VueElementUI 服务端技术:springbootmybatisredis 本系统分用户前台和管理后台两部分,项…...
Nautilus Chain 更换全新测试网,主网即将在不久上线
目前,Nautilus Chain 正在为主网上线前的最后阶段做准备,据悉该链更新了全新的测试网,在此前版本的测试网的基础上进行了全新的技术升级,最新测试网版本与生态发展的技术规划更为贴近。本次测试网升级将会是最后一次测试网版本的迭…...
攻防世界web:Web_php_wrong_nginx_config,python3后门
网上的wp中关于Web_php_wrong_nginx_config的后门代码都是python2的(源码来自:Weevely:一个 PHP 混淆后门的代码分析 - Phukers Blog) 以下是转换成python3的版本 # encoding: utf-8from random import randint, choice from ha…...
【VUE】解决图片视频加载缓慢/首屏加载白屏的问题
1 问题描述 在 Vue3 项目中,有时候会出现图片视频加载缓慢、首屏加载白屏的问题 2 原因分析 通常是由以下原因导致的: 图片或视频格式不当:如果图片或视频格式选择不当,比如选择了无损压缩格式,可能会导致文件大小过大…...
spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?
在AbstractBeanFactory的doGetBean方法: 调用的getObjectForBeanInstance方法部分代码如下: 如果不是工厂bean,则直接将实例返回,否则调用getObjectFromFactoryBean方法获取工厂bean的getObject方法返回的对象 protected Object getObjectF…...
Jenkins全栈体系(二)
Jenkins 第三章 Jenkins Git Maven 自动化部署配置 十、几种构建方式 快照依赖构建/Build whenever a SNAPSHOT dependency is built 当依赖的快照被构建时执行本job 触发远程构建 (例如,使用脚本) 远程调用本job的restapi时执行本job job依赖构建/Build after other proj…...
c++11 标准模板(STL)(std::basic_istream)(九)
定义于头文件 <istream> template< class CharT, class Traits std::char_traits<CharT> > class basic_istream : virtual public std::basic_ios<CharT, Traits> 类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式的…...
OpenSource - Spring Startup Ananlyzer
文章目录 🚀Optimization of Spring Startup核心能力📈Spring应用启动数据采集报告应用启动时长优化 📈Spring应用启动数据采集报告安装jar包配置项应用启动自定义扩展 🚀应用启动时长优化支持异步化的Bean类型接入异步Bean优化 开…...
ES6迭代器、Set、Map集合和async异步函数
目录 迭代器 Iterator 的作用 Iterator 的遍历过程 Set Map集合 map和对象区别? async异步函数 迭代器 迭代器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口&…...
mac android studio设置跟mac系统一样的快捷键
mac版的android studio 跟mac系统的快捷键不一样,主要修改了下面几组操作,为了跟mac系统快捷键相同 setting->Keymap 搜索bottom 修改3个快捷键: cmd↓ 设置让鼠标移动到屏幕最后面 shiftcmd↓ 选中从当前位置到屏幕最下面 option↓. 或者 end 滚动到屏幕最下方 // 因为默认…...
Java-通过IP获取真实地址
文章目录 前言功能实现测试 前言 最近写了一个日志系统,需要通过访问的 IP 地址来获取真实的地址,并且存到数据库中,我也是在网上看了一些文章,遂即整理了一下供大家参考。 功能实现 这个是获取正确 IP 地址的方法,可…...
Java代码实现word转PDF
import com.spire.doc.Document; import com.spire.doc.FileFormat; import lombok.extern.slf4j.Slf4j; public class WordConvertPdf { /** * word转pdf * param wordPathName word文件路径及名称 * param pdfPathName pdf生成路径及名称 */ public static void wordToPdf(…...
Java设计模式-简单工厂(Simple Factory)模式
介绍 简单工厂(Simple Factory)模式,又称为静态工厂方法(Static Factory Method)模式。 由一个工厂类来创建具体产品,即创建具体类的实例。 简单工厂模式从概念上涉及三个角色: 抽象产品角色…...
微软所有业务线梳理
目录 一、Windows 二、Office 三、Surface 四、Xbox 五、Azure 六、Dynamics 七、LinkedIn 八、Bing...
SDN系统方法 | 1. 概述
随着互联网和数据中心流量的爆炸式增长,SDN已经逐步取代静态路由交换设备成为构建网络的主流方式,本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版,完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…...
【数据分享】1929-2022年全球站点的逐日平均压力数据(Shp\Excel\12000个站点)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 对于具体到监测站点的气象数据,之前我们分享过1929-2022年全球气象…...
Profibus DP主站转Modbus TCP网关profibus从站地址范围
远创智控YC-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能,在以太网侧实现了ModbusTcp服务器功能,为我们的工业自动化网络带来了全新的可能。 远创智控YC-DPM-TCP网关是如何实现这些功能的呢?首先,让我们来看看它的Profib…...
MySQL子查询
😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:进入MySQL专栏知…...
学IT上培训班有用吗?
在学习IT技术的过程中,你是否也被安利过各种五花八门的技术培训班?这些培训班都是怎样向你宣传的,你又对此抱有着怎样的态度呢?在培训班里学技术,真的有用吗? 首先,IT行业是一个充满机遇和挑战…...
BI如何对接金蝶云星空数据源?奥威BI SaaS平台有绝招
传统BI部署时需要大量硬件和软件支持,而SaaS BI不仅不需要,还能让企业的数据可视化分析变得更加简单便捷,因此已经渐渐成为数字化时代的BI新趋势。那么,SaaS BI平台是如何快速接入数据完成数据可视化分析的?下面就以奥…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
