基于SSM的高校餐厅防疫管理系统

简介: 本系统采用SSM框架,数据层采用mybatis,数据库

项目介绍:



本系统采用SSM框架,数据层采用mybatis,数据库使用mysql,适合选题:高校防疫、大学餐厅、餐厅防疫、防疫、疫情等,下面是大概的功能。


项目功能:



用户:登录注册,查看餐桌、菜品、公告、收藏评论菜品,预定餐桌、下单、订单管理、个人中心

管理员:登录、用户管理、餐桌管理、预订管理、菜品类型管理、下单信息管理、订单信息管理、系统管理


系统包含技术:



后端:SSM整合

前端:bootstrap、js、css等

开发工具:eclipse

数据库:mysql 5.7

JDK版本:jdk1.8

服务器:tomcat8


部分截图说明:



下面是前台登录和注册


2aa44a18f9d048b2a2c822b16631431a.png


登陆后可以进入系统首页


3faed6f35ba2465fb0ba119d9b1a276a.png


用户可以查看餐桌信息


fbc7e30c5a784f938cb977489b9e6ac0.png


选择某个餐桌可以查看详情,并可以预订


cedc00aedc61420c8a0410f796237d3a.png


用户也可以点餐,可以收藏,评论


5cd3bf4051d24ebe97ecba48e3373561.png


详情部分


835ac27d3b0945fe9cb7bb3b2a6d68be.png


用户可以查看个人信息,或者更新信息


d90f4c3abd2b47f9969b39ef195278ce.png


后台管理端登录


cd9eed19906842c181252dd6f9c9c27e.png


下面是管理员功能,用户管理


2ef5c39714d7423fbe170f096d408546.png


下面是公告管理


a9e6af86af9d4a04a1a89b0a5786965f.png


餐桌管理


dc5a7b5c67654eedb2511dd0b78d6574.png


菜品管理


24295369501c49398c54528365b7df83.png


部分代码展示:



菜品相关操作


  /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,CaipinleixingEntity caipinleixing, 
    HttpServletRequest request){
        EntityWrapper<CaipinleixingEntity> ew = new EntityWrapper<CaipinleixingEntity>();
      PageUtils page = caipinleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caipinleixing), params), params));
    request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    /**
     * 前端列表
     */
  @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,CaipinleixingEntity caipinleixing, 
    HttpServletRequest request){
        EntityWrapper<CaipinleixingEntity> ew = new EntityWrapper<CaipinleixingEntity>();
      PageUtils page = caipinleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caipinleixing), params), params));
    request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
  /**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( CaipinleixingEntity caipinleixing){
        EntityWrapper<CaipinleixingEntity> ew = new EntityWrapper<CaipinleixingEntity>();
        ew.allEq(MPUtil.allEQMapPre( caipinleixing, "caipinleixing")); 
        return R.ok().put("data", caipinleixingService.selectListView(ew));
    }
   /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(CaipinleixingEntity caipinleixing){
        EntityWrapper< CaipinleixingEntity> ew = new EntityWrapper< CaipinleixingEntity>();
    ew.allEq(MPUtil.allEQMapPre( caipinleixing, "caipinleixing")); 
    CaipinleixingView caipinleixingView =  caipinleixingService.selectView(ew);
    return R.ok("查询菜品类型成功").put("data", caipinleixingView);
    }
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        CaipinleixingEntity caipinleixing = caipinleixingService.selectById(id);
        return R.ok().put("data", caipinleixing);
    }
    /**
     * 前端详情
     */
  @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        CaipinleixingEntity caipinleixing = caipinleixingService.selectById(id);
        return R.ok().put("data", caipinleixing);
    }
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody CaipinleixingEntity caipinleixing, HttpServletRequest request){
      caipinleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(caipinleixing);
        caipinleixingService.insert(caipinleixing);
        return R.ok();
    }
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody CaipinleixingEntity caipinleixing, HttpServletRequest request){
      caipinleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
      //ValidatorUtils.validateEntity(caipinleixing);
        caipinleixingService.insert(caipinleixing);
        return R.ok();
    }


拦截器部分


@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //支持跨域请求
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
        IgnoreAuth annotation;
        if (handler instanceof HandlerMethod) {
            annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
        } else {
            return true;
        }
        //从header中获取token
        String token = request.getHeader(LOGIN_TOKEN_KEY);
        /**
         * 不需要验证权限的方法直接放过
         */
        if(annotation!=null) {
          return true;
        }
        TokenEntity tokenEntity = null;
        if(StringUtils.isNotBlank(token)) {
          tokenEntity = tokenService.getTokenEntity(token);
        }
        if(tokenEntity != null) {
          request.getSession().setAttribute("userId", tokenEntity.getUserid());
          request.getSession().setAttribute("role", tokenEntity.getRole());
          request.getSession().setAttribute("tableName", tokenEntity.getTablename());
          request.getSession().setAttribute("username", tokenEntity.getUsername());
          return true;
        }
    PrintWriter writer = null;
    response.setCharacterEncoding("UTF-8");
    response.setContentType("application/json; charset=utf-8");
    try {
        writer = response.getWriter();
        writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
    } finally {
        if(writer != null){
            writer.close();
        }
    }
//        throw new EIException("请先登录", 401);
    return false;
    }


以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

相关文章
|
4月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
3月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
36 0
|
4月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
5月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
71 1
|
5月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
74 0
|
5月前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
68 0
|
5月前
|
Java 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(1)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
64 0
|
6月前
|
搜索推荐 JavaScript Java
计算机Java项目|基于SSM的个性化商铺系统
计算机Java项目|基于SSM的个性化商铺系统
|
6月前
|
前端开发 JavaScript Java
计算机Java项目|SSM智能仓储系统
计算机Java项目|SSM智能仓储系统