基于springboot网上订餐系统
·
开发工具:IDEA,jdk1.8 数据库:mysql5.7
前端框架:layui
技术:springboot+mybatis-plus
项目简介
本项目为点餐系统,主要分三个角色:用户、商户、管理员
用户前台:实现了登录、注册、菜品浏览、查看详情、加入购物车、生成订单、支付、评价、修改个人信息、修改密码、我的订单、我的评价、我的收藏、浏览记录、收货地址、退出登录等功能。
商户后台:登录、注册、修改密码、修改个人信息、系统管理(评价管理、通知公告)、订单管理(退款处理、订单配送、订单列表)、餐饮管理、退出登录。
管理员后台:登录、修改密码、修改个人信息、用户管理、角色管理、菜单管理、评价管理、字典管理、通知公告、餐饮管理、订单管理、订单统计、退出登录。
用户截图:













商户后台:





管理员后台:












/**
* 餐饮评价 信息操作处理
*
* @author IT教程资源
*/
@Controller
@RequestMapping("/user/remark")
public class UserGoodsRemarkController extends BaseController {
private String prefix = "normal";
@Autowired
private IUserOrderService userOrderService;
@Autowired
private IUserGoodsRemarkService userGoodsRemarkService;
/**
* 跳转到菜品评论页面
*
* @param orderId
* @param mmap
* @return
*/
@GetMapping("/{orderId}")
public String userGoodsRemark(@PathVariable("orderId") Long orderId, ModelMap mmap) {
UserOrder order = userOrderService.selectUserOrderById(orderId);
mmap.put("order", order);
mmap.put("menuType", "order");
mmap.put("topTitle", "用户中心");
return prefix + "/user_remark_save";
}
/**
* 查询餐饮评价列表
*
* @return
*/
@PostMapping("/list")
@ResponseBody
public TableDataInfo list() {
Long userId = this.getUserId();
startPage();
List<UserOrderRemark> list = userGoodsRemarkService.selectOrderRemarkForUser(userId);
return getDataTable(list);
}
/**
* 新增保存餐饮评价
*
* @param goodsId
* @param msg
* @param score
* @param orderId
* @return
*/
@PostMapping("/save")
public String addSave(Long[] goodsId, String[] msg, Integer[] score, Long orderId) {
UserGoodsRemark[] remarks = new UserGoodsRemark[goodsId.length];
for (int i = 0; i < goodsId.length; i++) {
remarks[i] = new UserGoodsRemark(orderId, goodsId[i], this.getUserId(), score[i], msg[i]);
}
userGoodsRemarkService.insertUserGoodsRemark(remarks);
return "redirect:/user/remark";
}
/**
* 删除餐饮评价
*
* @param id
* @return
*/
@GetMapping("/remove")
public String remove(Long id) {
userGoodsRemarkService.deleteUserGoodsRemarkByIds(id.toString());
return "redirect:/user/remark";
}
/**
* 删除餐饮评价(多选)
*
* @param ids
* @return
*/
@PostMapping("/remove")
@ResponseBody
public AjaxResult remove(String ids) {
return toAjax(userGoodsRemarkService.deleteUserGoodsRemarkByIds(ids));
}
/**
* 跳转用户菜品评价页面
*
* @return
*/
@RequiresPermissions("system:userGoodsRemark:view")
@GetMapping("/seller")
public String remark() {
return "/system/userGoodsRemark/userGoodsRemark";
}
/**
* 查询店家的菜品评价
*
* @param userGoodsRemark
* @return
*/
@PostMapping("/listForSeller")
@ResponseBody
public TableDataInfo listForSeller(UserGoodsRemark userGoodsRemark) {
if (!this.getUser().isAdmin()) {
userGoodsRemark.getParams().put("sellerId", this.getUserId());
}
startPage();
List<UserGoodsRemark> list = userGoodsRemarkService.selectUserGoodsRemarkList(userGoodsRemark);
return getDataTable(list);
}
}
package com.project.web.controller.system;
import java.util.List;
import java.util.Map;
import com.project.web.controller.common.BaseController;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.project.common.base.AjaxResult;
import com.project.common.utils.ShiroUtils;
import com.project.system.domain.SysMenu;
import com.project.system.domain.SysRole;
import com.project.system.service.ISysMenuService;
/**
* 菜单信息
*
* @author
*/
@Controller
@RequestMapping("/system/menu")
public class MenuController extends BaseController {
private String prefix = "system/menu";
@Autowired
private ISysMenuService menuService;
/**
* 跳转菜单页面
*
* @return
*/
@RequiresPermissions("system:menu:view")
@GetMapping()
public String menu() {
return prefix + "/menu";
}
/**
* 查询菜单列表
*
* @param menu
* @return
*/
@RequiresPermissions("system:menu:list")
@GetMapping("/list")
@ResponseBody
public List<SysMenu> list(SysMenu menu) {
List<SysMenu> menuList = menuService.selectMenuList(menu);
return menuList;
}
/**
* 删除菜单
*
* @param menuId
* @return
*/
@RequiresPermissions("system:menu:remove")
@PostMapping("/remove/{menuId}")
@ResponseBody
public AjaxResult remove(@PathVariable("menuId") Long menuId) {
if (menuService.selectCountMenuByParentId(menuId) > 0) {
return error(1, "存在子菜单,不允许删除");
}
if (menuService.selectCountRoleMenuByMenuId(menuId) > 0) {
return error(1, "菜单已分配,不允许删除");
}
ShiroUtils.clearCachedAuthorizationInfo();
return toAjax(menuService.deleteMenuById(menuId));
}
/**
* 跳转新增菜单页面
*
* @param parentId
* @param mmap
* @return
*/
@GetMapping("/add/{parentId}")
public String add(@PathVariable("parentId") Long parentId, ModelMap mmap) {
SysMenu menu = null;
if (0L != parentId) {
menu = menuService.selectMenuById(parentId);
} else {
menu = new SysMenu();
menu.setMenuId(0L);
menu.setMenuName("主目录");
}
mmap.put("menu", menu);
return prefix + "/add";
}
/**
* 新增保存菜单
*
* @param menu
* @return
*/
@RequiresPermissions("system:menu:add")
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(SysMenu menu) {
menu.setCreateBy(ShiroUtils.getLoginName());
ShiroUtils.clearCachedAuthorizationInfo();
return toAjax(menuService.insertMenu(menu));
}
/**
* 跳转修改菜单页面
*
* @param menuId
* @param mmap
* @return
*/
@GetMapping("/edit/{menuId}")
public String edit(@PathVariable("menuId") Long menuId, ModelMap mmap) {
mmap.put("menu", menuService.selectMenuById(menuId));
return prefix + "/edit";
}
/**
* 修改保存菜单
*
* @param menu
* @return
*/
@RequiresPermissions("system:menu:edit")
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(SysMenu menu) {
menu.setUpdateBy(ShiroUtils.getLoginName());
ShiroUtils.clearCachedAuthorizationInfo();
return toAjax(menuService.updateMenu(menu));
}
/**
* 跳转选择菜单图标页面
*
* @return
*/
@GetMapping("/icon")
public String icon() {
return prefix + "/icon";
}
/**
* 校验菜单名称
*
* @param menu
* @return
*/
@PostMapping("/checkMenuNameUnique")
@ResponseBody
public String checkMenuNameUnique(SysMenu menu) {
return menuService.checkMenuNameUnique(menu);
}
/**
* 加载角色菜单列表树
*
* @param role
* @return
*/
@GetMapping("/roleMenuTreeData")
@ResponseBody
public List<Map<String, Object>> roleMenuTreeData(SysRole role) {
List<Map<String, Object>> tree = menuService.roleMenuTreeData(role, getUser());
return tree;
}
/**
* 加载所有菜单列表树
*
* @param role
* @return
*/
@GetMapping("/menuTreeData")
@ResponseBody
public List<Map<String, Object>> menuTreeData(SysRole role) {
List<Map<String, Object>> tree = menuService.menuTreeData();
return tree;
}
/**
* 选择菜单树
*
* @param menuId
* @param mmap
* @return
*/
@GetMapping("/selectMenuTree/{menuId}")
public String selectMenuTree(@PathVariable("menuId") Long menuId, ModelMap mmap) {
mmap.put("menu", menuService.selectMenuById(menuId));
return prefix + "/tree";
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)