/*
代码功能解释:
该文件定义了一个名为`CaipinOrderController`的控制器类,主要负责处理与菜品订单相关的后端接口。该类使用了Spring MVC框架的注解,包括`@RestController`和`@Controller`,`@RequestMapping`等,用于定义URL路径和处理HTTP请求。
主要的方法及其功能如下:
1. `page`:分页查询菜品订单列表,返回分页信息,并对部分字段进行字典转换。
2. `info`:查询指定ID的菜品订单详情,包括订单详情、级联的菜品、餐桌和用户信息,并进行字典转换。
3. `save`:保存新的菜品订单,包括设置订单时间、更新库存等,并插入到订单表中。
4. `update`:更新指定ID的菜品订单信息,如果表中没有相同数据,则更新。
5. `delete`:删除指定ID的菜品订单。
6. `batchInsert`:批量上传菜品订单数据,包括读取Excel文件、数据校验、更新库存、插入订单等。
7. `list`:查询前端需要的菜品订单列表,并进行字典转换。
8. `detail`:查询指定ID的菜品订单详情,包括订单详情、级联的菜品、餐桌和用户信息。
9. `add`:添加新的菜品订单,包括验证库存、更新库存、插入订单、更新用户积分等。
10. `order`:添加新的菜品订单,支持从购物车中结算,更新库存、插入订单等。
11. `refund`:退款订单,更新订单状态、更新库存、更新用户金额/积分等。
12. `deliver`:标记订单已上菜,更新订单状态。
13. `receiving`:标记订单已食用,更新订单状态。
14. `commentback`:用户评价订单,插入评价信息,更新订单状态。
这些方法主要实现了对菜品订单的基本操作,包括查询、添加、更新、删除、上传、退款、上菜、食用和评价等。其中,部分方法还涉及到了级联表的查询和更新,以及字典的转换和验证。
*/
package com.controller;
import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;
import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;
/**
* 菜品订单
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/caipinOrder")
public class CaipinOrderController {
private static final Logger logger = LoggerFactory.getLogger(CaipinOrderController.class);
@Autowired
private CaipinOrderService caipinOrderService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
@Autowired
private CaipinService caipinService;
@Autowired
private CanzhuoService canzhuoService;
@Autowired
private YonghuService yonghuService;
@Autowired
private CaipinCommentbackService caipinCommentbackService;
@Autowired
private CartService cartService;
@Autowired
private CanzhuozhanyongService canzhuozhanyongService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
if(params.get("orderBy")==null || params.get("orderBy")==""){
params.put("orderBy","id");
}
PageUtils page = caipinOrderService.queryPage(params);
List<CaipinOrderView> list =(List<CaipinOrderView>)page.getList();
for(CaipinOrderView c:list){
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
CaipinOrderEntity caipinOrder = caipinOrderService.selectById(id);
if(caipinOrder !=null){
CaipinOrderView view = new CaipinOrderView();
BeanUtils.copyProperties( caipinOrder , view );//把实体数据重构到view中
CaipinEntity caipin = caipinService.selectById(caipinOrder.getCaipinId());
if(caipin != null){
BeanUtils.copyProperties( caipin , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setCaipinId(caipin.getId());
}
CanzhuoEntity canzhuo = canzhuoService.selectById(caipinOrder.getCanzhuoId());
if(canzhuo != null){
BeanUtils.copyProperties( canzhuo , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setCanzhuoId(canzhuo.getId());
}
YonghuEntity yonghu = yonghuService.selectById(caipinOrder.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
view.setYonghuId(yonghu.getId());
}
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody CaipinOrderEntity caipinOrder, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,caipinOrder:{}",this.getClass().getName(),caipinOrder.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
else if("用户".equals(role))
caipinOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
caipinOrder.setInsertTime(new Date());
caipinOrder.setCreateTime(new Date());
caipinOrderService.insert(caipinOrder);
return R.ok();
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody CaipinOrderEntity caipinOrder, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,caipinOrder:{}",this.getClass().getName(),caipinOrder.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
Wrapper<CaipinOrderEntity> queryWrapper = new EntityWrapper<CaipinOrd
没有合适的资源?快使用搜索试试~ 我知道了~
(源码)基于Spring Boot和Vue的点餐系统.zip

共798个文件
svg:163个
js:159个
java:114个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 167 浏览量
2025-06-16
07:10:23
上传
评论
收藏 16.34MB ZIP 举报
温馨提示
# 基于Spring Boot和Vue的点餐系统 ## 项目简介 本系统是基于Vue框架的点餐系统,旨在促进餐馆行业信息化管理,提高服务质量。系统分为前台点餐界面和后台管理界面,用户可通过浏览器访问。采用BS开发结构模式,使用开源免费的MySQL数据库存储数据,开发技术和工具多为开源免费,可节约成本。 ## 项目的主要特性和功能 1. 用户注册与登录用户可注册新账号并登录系统。 2. 菜单展示展示餐厅菜单信息,含菜品名称、价格、图片等。 3. 菜品点餐支持用户选择菜品进行点餐。 4. 订单管理用户能查看和管理自己的订单信息。 5. 管理员登录与管理管理员登录后可进行用户管理、菜单管理、订单管理等操作。 ## 安装使用步骤 假设已下载本项目的源码文件,操作如下
资源推荐
资源详情
资源评论





























收起资源包目录





































































































共 798 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论


Java咖啡师
- 粉丝: 1710
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于云计算环境的计算机网络安全研究.docx
- 信息管理中数据库技术的运用.docx
- 施工企业工程项目管理方法的优化与应用分析.docx
- 计算机网络技术与安全管理维护探析.docx
- 包件招标项目管理技术及商务要求.doc
- (源码)基于Arduino的Tools 102计分板系统.zip
- 厂站自动化事故调查与故障分析.ppt
- 计算机软件设计中嵌入式实时软件的运用.docx
- 计算机网络技术在电子信息工程中的应用研究(1).docx
- SHIP一舟超五类非屏蔽综合布线解决方案.doc
- 单片机应用系统的设计方法及实例.ppt
- 计算机局域网硬件维护与网络安全的分析.docx
- 微课在高职计算机课堂教学中的应用探析.docx
- 实验-6-MATLAB插值与拟合实验.doc
- 分散控制系统在火电厂电气自动化中的应用李彭亮.docx
- 电子商务网站功能模块汇总.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
