项目介绍
SpringBoot在线订餐系统项目。主要功能说明:
分为两个角色,餐厅老板和普通用户
餐厅老板可以登录,注册,可以在后台设置菜品目录,菜品详情,查看订单,用户管理,个人中心等
用户查看首页菜品信息,登录后可以点餐,形成购物车,支付后会出现订单详情
请用电脑浏览器打开
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
后端框架:SpringBoot + MybatisPlus
模板引擎:Thymeleaf
前端框架:BootStrap
JS技术 :JQuery + Ajax
设计亮点:用Spring-Security5代替传统的Session拦截页面
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
- 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;
- 将项目中applicaion.yml配置文件中的数据库配置改为自己的配置
- 配置tomcat,然后运行项目,输入localhost:8080/xxx 登录
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
}
}
//3-保存商品的信息到数据库中
product.setImageUrl(localPath+newPicName);
productService.addOne(product);
return "redirect:/admin/toProductList";
}
/**
* 修改商品的信息 数据回显
* @return
*/
@RequestMapping("/admin/updateProductView")
public String updateProductView(Integer id, Model model) {
Product dbproduct = productService.findProductById(id);
model.addAttribute("flag","update");
model.addAttribute("product", dbproduct);
return "/admin/product/product_edit";
}
/**
* 更新商品信息
*/
@RequestMapping("/admin/updateProduct")
public String updateProduct(Product product, BindingResult bindingResult) {
* @param newPwd 新密码
* @param comfirmPwd 确认密码
* @param model 数据
* @return
*/
@RequestMapping("/savePassword")
public String saveAddress(
String oldPwd, String newPwd, String comfirmPwd,Model model,HttpSession session){
/* User user = (User) session.getAttribute("user");
if(user == null){
return "/login";
}
User userInfo = userService.findUserInfo(user.getUserId());
String dbPwd = userInfo.getPassword();
if(StringUtils.isEmpty(oldPwd) && StringUtils.isEmpty(newPwd) && StringUtils.isEmpty(comfirmPwd)){
//输入为空
model.addAttribute("errorInfo","输入为空!");
return "/pages/user/user_password";
}else if(!dbPwd.equals(oldPwd)){
//旧密码不对
model.addAttribute("errorInfo","旧密码不对!");
return "/pages/user/user_password";
}else if(!newPwd.equals(comfirmPwd)){
//两次密码输入不一致
model.addAttribute("product", dbproduct);
return "/admin/product/product_edit";
}
/**
* 更新商品信息
*/
@RequestMapping("/admin/updateProduct")
public String updateProduct(Product product, BindingResult bindingResult) {
System.out.println(product.toString());
productService.updateOne(product);
return "redirect:/admin/toProductList";
}
/**
* 删除商品
*/
@GetMapping("/admin/deleteProductById")
public String deleteProductById(Integer id, RedirectAttributes redirectAttributes) {
if(productService.findProductBannerByProductId(id) != null) {
redirectAttributes.addAttribute("errorInfo","请取消热门关联再进行操作");
return "redirect:/admin/toProductList";
public String deleteClassify(Integer kindId){
ProductKind productKindDel = new ProductKind(kindId);
productKindService.deleteProductKind(productKindDel);
return "redirect:/admin/toProductClassifyList";
}
/**
* 批量删除 商品类别
*/
@RequestMapping("/admin/batchtDeleteProduct")
public String batchDeleteClassify(@RequestParam("id") Integer[] kindIds){
productKindService.batchDeletekind(kindIds);
return "redirect:/admin/toProductClassifyList";
}
/**
model.addAttribute("userInfos",userInfos);
return "/pages/user/user_account";
}
/**
* 跳转修改密码界面
* @return
*/
@RequestMapping("/updatePassword")
public String updatePassword(){
return "/pages/user/user_password";
}
/**
* 修改密码
* @param oldPwd 旧密码
* @param newPwd 新密码
* @param comfirmPwd 确认密码
* @param model 数据
* @return
* @return
*/
@RequestMapping("/saveTelephone")
public String saveTel(String newTel,Model model,HttpSession session){
/* String regexMobile = "^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
User user = (User) session.getAttribute("user");
if(user == null){
return "/login";
}
if(!newTel.matches(regexMobile)){
model.addAttribute("msg","格式不对!");
return "/pages/user/user_telephone";
}
userService.updateTel(newTel,user.getUserId());
model.addAttribute("userInfos",userInfos);
return "/pages/user/user_center";
}
/**
* 去我的订单
*/
@RequestMapping("/toUserOrder")
public String toUserOrder(@RequestParam(required=true,defaultValue="1") Integer page, HttpSession session, Model model){
User users = (User) session.getAttribute("user");
User user = userService.findUserInfo(users.getId());
//PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。
PageHelper.startPage(page, 3);
List<Order> orderList = orderService.findOrderListByUserId(users.getId());
PageInfo<Order> p = new PageInfo<Order>(orderList);
model.addAttribute("page", p);
model.addAttribute("orderList",orderList);
model.addAttribute("user",user);
return "/pages/user/user_orderlist";
} /**
* 显示收货地址
* @param model
* @return
*/
@RequestMapping("/userAddress")
public String userAddress(Model model, HttpSession session) {
User user = (User) session.getAttribute("user");
User userInfos = userService.findUserInfo(user.getId());
@Autowired
private UserService userService;
@Autowired
private EvaService evaService;
@Autowired
private LeaveService leaveService;
/**
* 去用户中心
*/
@GetMapping("/toUserCenter")
public String toUserCenter(Model model,HttpSession session){
User user = (User) session.getAttribute("user");
User userInfos = userService.findUserInfo(user.getId());
model.addAttribute("userInfos",userInfos);
return "/pages/user/user_center";
}
/**
* 去我的订单
*/
@RequestMapping("/toUserOrder")
public String toUserOrder(@RequestParam(required=true,defaultValue="1") Integer page, HttpSession session, Model model){
User users = (User) session.getAttribute("user");
User user = userService.findUserInfo(users.getId());
return excelMap;
}
/**
*@描述 1-4-创建AbstractExcelView
*/
protected AbstractExcelView getAbstractExcelView(Map<String, String> excelMap){
try {
ObjectExcelViewOrder erv = new ObjectExcelViewOrder(excelMap.get("fileName"),excelMap.get("excelTitle"));
return erv;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
后端product模块相关的controller:
/**
* @author yy 后端product模块相关的controller
*/
@Controller
public class Back_ProductController {
@Autowired
private ProductService productService;
@Autowired
private ProductKindService productKindService;
/**
* 按条件查找数据--模糊查询
return "/pages/user/user_password";
}else if(!newPwd.equals(comfirmPwd)){
//两次密码输入不一致
model.addAttribute("errorInfo","两次输入密码不一致!");
return "/pages/user/user_password";
}else{
//输入合法,进入修改密码
userService.updatePwd(comfirmPwd);*/
return "redirect:/userAccount";
}
/**
* 跳转修改更换手机号界面
* @return
*/
@RequestMapping("/updateTel")
public String updateTel(){
return "/pages/user/user_telephone";
}
/*
* 更换手机号
* @param newTel
* @return