基于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 {

    @Resource
    private 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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/38066.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker(三)之容器管理工具 Docker生态架构及部署

容器管理工具Docker生态架构及部署 一、Docker生态架构 1.1 Docker Containers Are Everywhere 1.2 生态架构 1.2.1 Docker Host 用于安装Docker daemon的主机&#xff0c;即为Docker Host&#xff0c;并且该主机中可基于容器镜像运行容器。 1.2.2 Docker daemon 用于管理…

ASP.NET Website 项目 .NET Framework 4.0 ~ .NET Framework 4.8支持c#哪些版本(Website)

本文讲的是Website网站项目&#xff0c;由于维护老项目Website .net framework4.0&#xff0c;遇到c#6.0语法不支持。便做了点记录 ASP.NET Website 项目 .NET Framework 4.0、 .NET Framework 4.5、 .NET Framework 4.6、 .NET Framework 4.8都支持c#哪些版本&#xff1f; 下面…

【SQL】Your password has expired. To log in you must change it.......

在配置SQL的编辑器的时候&#xff0c;连接过程出现了如下的错误&#xff1a; Your password has expired. To log in you must change it using a client that supports expired passwords.当连接到 SQL 时&#xff0c;如果出现 “Your password has expired. To log in you m…

SpringBoot+React学科竞赛管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBootReact框架开发的学科竞赛管理系统。首先&#xff0c;这是一个前后端分离的项目&#xff0c;代码简洁…

Mars3d采用ellipsoid球实现模拟地球旋转效果

1.Mars3d采用ellipsoid球实现模拟地球旋转效果 2.开始自选装之后&#xff0c;模型一直闪烁 http://mars3d.cn/editor-vue.html?idgraphic/entity/ellipsoid 3.相关代码&#xff1a; import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象 …

MATLAB | 爱心图例与精致半透明圆角图例

本文中全部示意图均为本人自制&#xff0c;传播时请注明出处。 写了点小成品函数&#xff0c;比如如何绘制饼图时把图例上的图标变成心形&#xff1a; 比如如何自制半透明圆角图例&#xff1a; 依旧先讲原理再给出这俩代码哈&#xff1a; 1 原理讲解-图形对象 封闭四边形对…

Vue项目搭建过程

Vue项目搭建过程 1、安装NodeJs 1.1 下载安装包 在 http://nodejs.cn/download/ 上下载64位安装包&#xff0c;然后进行安装&#xff0c;和普通软件的安装一样。 C:\Users\Administrator>node -v v16.13.1C:\Users\Administrator>npm -v 8.5.51.2 安装cnpm # 安装cn…

DNS 是如何影响你冲浪速度的?

本文详细介绍了 DNS 相关知识&#xff0c;包括 DNS 工作原理、如何提升域名解析速度、以及 DNS 记录与报文等内容。 1. 域名与域名服务器 在日常上网过程中&#xff0c;出于好记的原因&#xff0c;人们更喜欢在浏览器中输入网站的域名&#xff0c;而不是 IP 地址。比如想要访问…

CV常用注意力机制总结

本文总结了近几年CV领域常用的注意力机制&#xff0c;包括&#xff1a;SE&#xff08;Squeeze and Excitation&#xff09;、ECA&#xff08;Efficient Channel Attention&#xff09;、CBAM&#xff08;Convolutional Block Attention Module&#xff09;、CA&#xff08;Coor…

切换.net Framework 版本后,出现NuGet 包是使用不同于当前目标框架的目标框架安装的,可能需要重新安装

问题现象&#xff1a; 由于添加新的dll文件&#xff0c;依赖的.NET Framework版本与当前的不一致&#xff0c;在vs 中切换了目标框架版本后&#xff0c;运行程序&#xff0c;出现以下的warnning信息&#xff1a; 一些 NuGet 包是使用不同于当前目标框架的目标框架安装的&#…

MacOS系统(M1/M2)安装AI绘画StableDiffusion保姆级教程

TOC 安装完成后&#xff0c;推荐阅读这篇教程&#xff1a;AI绘画&#xff1a;Stable Diffusion 终极炼丹宝典&#xff1a;从入门到精通 实操环境&#xff1a; macOS 13 Arm64&#xff08;建议12以上的系统使用&#xff09; Apple M1 先来看几个样例&#xff1a; AI绘画S…

SDN系统方法 | 1. 概述

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

MongoDB负载均衡集群监控

对负载均衡的集群监控&#xff0c;不仅仅集中在对集群所有的资源、服务等进行监控&#xff0c;还要兼顾整体逻辑。以MongoDB高可用负载均衡集群为例&#xff0c;对逻辑层面的监控&#xff0c;就是模拟用户行为&#xff0c;访问集群数据&#xff0c;判断运行状态是否正常。 Mong…

数据库用户管理

数据库用户管理 一、创建&#xff1a; 1.新建用户&#xff1a; CREATE USER 用户名来源地址 [IDENTIFIED BY [PASSWORD] 密码];‘用户名’&#xff1a;指定将创建的用户名. ‘来源地址’&#xff1a;指定新创建的用户可在哪些主机上登录&#xff0c;可使用IP地址、网段、主机…

手撕自定义类型:结构体,枚举,联合——【C语言】

在开始学习之前我们先来欣赏一下五岳之一华山的风景&#xff0c;来营造一个好心情&#xff0c;只有一个好心情我们才能更好的学习 目录 结构体 1 结构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 …

golang单元测试及mock总结

文章目录 一、前言1、单测的定位2、vscode中生成单测 二、构造测试case的注意事项1、项目初始化2、构造空interface{}3、构造结构体的time.Time类型4、构造json格式的test case 三、运行单测文件1、整体运行单测文件2、运行单个单测文件报错&#xff08;1&#xff09;command-l…

无法找到docker.sock

os环境&#xff1a;麒麟v10(申威) 问题描述&#xff1a; systemctl start docker 然后无法使用docker [rootnode2 ~]# systemctl restart docker [rootnode2 ~]# docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon r…

PLEX如何搭建个人局域网的视频网站

Plex是一款功能非常强大的影音媒体管理系统&#xff0c;最大的优势是多平台支持和界面优美&#xff0c;几乎可以在所有的平台上安装plex服务器和客户端&#xff0c;让你可以随时随地享受存储在家中的电影、照片、音乐&#xff0c;并且可以实现观看记录无缝衔接&#xff0c;手机…

PROFINET转TCP/IP网关TCP/IP协议的含义是

大家好&#xff0c;今天要和大家分享一款自主研发的通讯网关&#xff0c;远创智控YC-PN-TCPIP。这款网关可是集多种功能于一身&#xff0c;PROFINET从站功能&#xff0c;让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗&#xff1f;一起来看看吧&…

iPad远控Windows解决方案

最近入手了一台iPad&#xff0c;但我不想让它沦为爱奇艺的工具&#xff0c;遂考虑如何在iPad上获得桌面级Windows的生产力。主要还是之前背着电脑出远门太累了&#xff0c;这也是促成我买iPad的重要因素。 一种方案就是通过远程控制&#xff0c;在iPad上远程操作自己的电脑&am…