基于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平台是如何快速接入数据完成数据可视化分析的?下面就以奥…...
open_clip技术解构:从核心原理到产业级应用
open_clip技术解构:从核心原理到产业级应用 【免费下载链接】open_clip An open source implementation of CLIP. 项目地址: https://gitcode.com/GitHub_Trending/op/open_clip 一、价值定位:重新定义多模态AI开发范式 核心问题:为什…...
联想ideapad700-15ISK双系统迁移实战:Win10+Arch无缝切换到SSD的完整流程
联想ideapad700-15ISK双系统迁移实战:Win10Arch无缝切换到SSD的完整流程 当你的笔记本电脑运行速度开始变慢,开机时间越来越长,或许该考虑升级到SSD了。对于使用联想ideapad700-15ISK并安装了Win10和Arch双系统的用户来说,迁移系统…...
水墨江南模型实战:为短视频自动生成中式美学文案与字幕
水墨江南模型实战:为短视频自动生成中式美学文案与字幕 1. 引言:当短视频创作遇上“水墨江南” 如果你是做国风、文旅、历史类短视频的创作者,下面这个场景你一定不陌生:花了大半天时间拍摄和剪辑了一段精美的江南水乡片段&…...
深度解析:AI-Render如何让Blender用户零门槛体验Stable Diffusion创作
深度解析:AI-Render如何让Blender用户零门槛体验Stable Diffusion创作 【免费下载链接】AI-Render Stable Diffusion in Blender 项目地址: https://gitcode.com/gh_mirrors/ai/AI-Render 你是否曾为3D渲染的复杂流程感到头疼?或者想尝试AI绘画却…...
5分钟打造个性化Windows桌面:RoundedTB任务栏美化终极指南
5分钟打造个性化Windows桌面:RoundedTB任务栏美化终极指南 【免费下载链接】RoundedTB Add margins, rounded corners and segments to your taskbars! 项目地址: https://gitcode.com/gh_mirrors/ro/RoundedTB 厌倦了Windows千篇一律的方块任务栏࿱…...
保姆级教程:用vLLM V1源码复现官方Demo,手把手调试核心执行循环
深入vLLM V1核心:从源码构建到执行循环全解析 在当今大模型推理领域,效率优化已成为开发者关注的焦点。vLLM作为高性能推理框架的代表,其V1版本通过重构核心架构带来了显著的性能提升。本文将带您从零开始搭建vLLM V1开发环境,通…...
这家口腔机构,如何用AI把到院成本从1200+打到310元?
广东有一家口腔机构,三级专科,种植体量在区域排前三。 听起来很牛吧?但老板跟我聊天的时候,愁得不行。他说,抖音投放成本飘高,线索到院率低,客服人手不足,加微后无差别群发ÿ…...
SAP CO-PA获利能力分析:关键设置与事务码实战指南
1. SAP CO-PA模块入门:为什么你需要掌握获利能力分析 第一次接触SAP CO-PA模块时,我完全被那些专业术语搞晕了。直到参与了一个零售行业的项目,才真正理解这个模块的价值所在。想象一下,你是一家快消品公司的财务分析师࿰…...
开源阅读工具资源维护全指南:从故障诊断到主动防御
开源阅读工具资源维护全指南:从故障诊断到主动防御 【免费下载链接】Yuedu 📚「阅读」APP 精品书源(网络小说) 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 开源阅读工具作为获取网络文学资源的重要途径࿰…...
高可用(HA)架构的商业价值:从技术冗余到业务连续性的战略升级
在大型企业数字化转型进入深水区的今天,ERP、CRM、OA、BI工具等核心系统已成为业务运转的“生命线”,系统中断哪怕是分钟级,都可能引发业务停滞、数据泄露、合规违规等连锁风险,直接损害企业商业利益与品牌声誉。高可用࿰…...
