Bootstrap

网上订餐系统|基于springBoot的网上订餐系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书(可指定任意题目)

目录

一、摘要

二、相关技术

三、系统设计

四、数据库设计  

五、核心代码  

六、论文参考  

七、源码获取  


一、摘要

随着我国经济的飞速发展,人们的生活速度明显加快,在餐厅吃饭排队的情况到处可见,近年来由于新兴IT行业的空前发展,它与传统餐饮行业也进行了新旧的结合,很多餐饮商户开始通过网络建设订餐系统,通过专门的网上订餐系统,一方面节省了用户订餐的时间,给用户带来方便,另一方面给商户带来了新的销售模式,同时也使订餐的管理规范化,系统化,给人们的生活带来了很大的便利。

本文重点阐述了网上订餐系统的开发过程,以实际运用为开发背景,基于Spring Boot框架,运用了JSP技术和MYSQL作为系统数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了用户通过网络进行订餐的重要功能。

基于Spring Boot的网上订餐系统运行效果稳定,操作方便、快捷,界面友好,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的订餐平台。

关键词:网上订餐JSP技术,数据库,Spring Boot框架

二、相关技术

java、tomcat、mysql、spring、springBoot、mybatis、query、vue

三、系统设计

3.1 整体功能设计图

1、用户功能

用户进入本系统可查看系统信息,包括首页、菜品信息等,用户要想实现下单订餐操作,必须登录系统,未有账号的用户可进行注册,注册登录后主要功能模块包括个人中心、订单信息管理以及订单配送管理,用户用例图如图3-1所示。

2、管理员功能

管理员登录后可对系统进行全面管理,管理员主要实现的功能模块包括个人中心、会员管理、菜品分类管理、菜品信息管理、订单信息管理、订单配送管理、管理员管理以及系统管理管理员用例图如图3-3所示。

 3.2 功能具体细节设计  

1、用户功能模块的实现
用户注册界面

用户进入本系统可查看系统信息,包括网站首页、菜品信息等,系统主界面展示如图5-3所示。

用户登录界面

用户在登录界面可输入用户名和密码,点击登录按钮进行登录系统,用户登录界面展示如图5-3所示。

菜品详情界面

用户可选择菜品查看菜品详情信息,登录后可进行下单操作,菜品详情界面展示如图5-4所示。

下单订餐界面

用户登录后可选择菜品进行下单订餐操作,下单订餐界面展示如图5-5所示。

订单信息界面

用户对个人订单可进行查看、支付等,订单信息界面展示如图5-6所示。

订单配送界面

用户能够查看个人订单配送信息,订单配送界面展示如图5-7所示。

2、管理员功能模块的实现
管理员登录界面

管理员要想进入后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5-8所示。

会员管理界面

管理员可查看、添加、修改和删除会员信息,会员管理界面展示如图5-9所示。

菜品信息管理界面

管理员可添加、修改和删除菜品信息,菜品信息管理界面展示如图5-10所示,添加菜品信息界面展示如图5-11所示

更多功能联系获取。。。。

四、数据库设计  

1管理员信息实体属性E-R图如图4-4所示:

2菜品分类信息实体属性E-R图如图4-5所示:

3菜品信息实体属性E-R图如图4-6所示:

4订单信息实体属性E-R图如图4-7所示:

5会员信息实体属性E-R图如图4-8所示:

五、核心代码  

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ShigudengjiEntity shigudengji = shigudengjiService.selectById(id);
        if(shigudengji !=null){
            //entity转view
            ShigudengjiView view = new ShigudengjiView();
            BeanUtils.copyProperties( shigudengji , view );//把实体数据重构到view中

                //级联表
                YonghuEntity yonghu = yonghuService.selectById(shigudengji.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
                //级联表
                YuangongEntity yuangong = yuangongService.selectById(shigudengji.getYuangongId());
                if(yuangong != null){
                    BeanUtils.copyProperties( yuangong , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYuangongId(yuangong.getId());
                }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody ShigudengjiEntity shigudengji, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,shigudengji:{}",this.getClass().getName(),shigudengji.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(StringUtil.isEmpty(role))
            return R.error(511,"权限为空");
        else if("员工".equals(role))
            shigudengji.setYuangongId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<ShigudengjiEntity> queryWrapper = new EntityWrapper<ShigudengjiEntity>()
            .eq("yonghu_id", shigudengji.getYonghuId())
            .eq("yuangong_id", shigudengji.getYuangongId())
            .eq("shigudengji_uuid_number", shigudengji.getShigudengjiUuidNumber())
            .eq("shigudengji_name", shigudengji.getShigudengjiName())
            .eq("shigudengji_types", shigudengji.getShigudengjiTypes())
            .eq("zeren_types", shigudengji.getZerenTypes())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ShigudengjiEntity shigudengjiEntity = shigudengjiService.selectOne(queryWrapper);
        if(shigudengjiEntity==null){
            shigudengji.setInsertTime(new Date());
            shigudengji.setCreateTime(new Date());
            shigudengjiService.insert(shigudengji);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

六、论文参考  

七、源码获取  

点赞、收藏、关注、评论啦。

联系即送开题报告和任务书,欢迎咨询

👇🏻获取联系方式在文章末尾👇🏻

;