基于SpringBoot的网上点餐系统的设计与实现

博主主页:一点源码
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计,SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Python、Nodejs、小程序、安卓app、大数据等设计与开发

🍅文末获取联系🍅

一、项目介绍

随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于网上点餐系统当然也不能排除在外,随着网络技术的不断成熟,带动了网上点餐系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对网上点餐系统而言非常有利。

本系统采用的数据库是Mysql,使用SpringBoot框架开发,运行环境使用Tomcat服务器,ECLIPSE 是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

二、系统主要技术

开发语言:Java
 
使用框架:spring boot
 
前端技术:Vue 、css、element-ui、js、html
 
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
 
数据库:MySQL 5.7/8.0
 
数据库管理工具:phpstudy/Navicat
 
JDK版本:jdk1.8
 
Maven: apache-maven 3.8.1-bin

三、系统结构设计 

四、系统的实现

用户功能模块

用户点击进入到系统操作界面,可以对首页、个人中心、美食订单管理、美食评价管理、我的收藏管理等功能模块,个人信息:通过列表可以获取用户账号、用户姓名、性别、年龄、头像、用户手机、配送地址并进行修改操作,如图5-1所示。

图5-1个人信息界面图

美食评价管理:通过列表可以获取店铺账号、店铺名称、美食名称、用户账号、用户姓名、图片、评分、评价内容、评价时间等信息,进行详情、修改、删除操作,如图5-2所示。

图5-2美食评价管理界面图

我的收藏管理:通过列表可以获取收藏名称、收藏图片等信息,进行详情、删除操作,如图5-3所示。

图5-3我的收藏管理界面图

管理员功能模块

管理员通过用户名和密码、角色填写完成后进行登录,如图5-4所示。管理员登录成功后进入到系统操作界面,可以对首页、个人中心、用户管理、美食店管理、美食分类管理、美食信息管理、美食订单管理、美食评价管理、系统管理等功能模块进行相对应操作。

用户管理:通过列表可以获取用户账号、用户姓名、性别、年龄、头像、用户手机、配送地址内容,可以进行修改或删除操作,如图5-5所示。

图5-4管理员登录页面

图5-5用户管理页面

美食店管理:通过列表可以获取店铺账号、店铺名称、照片、联系电话、店铺介绍、店铺地址、招聘美食、联系人等信息,进行删除或修改操作,如图5-6所示。

图5-6美食店管理界面图

美食分类管理:通过列表可以获取美食分类等信息,进行修改或删除操作,如图5-7所示。

图5-7美食分类管理界面图

美食信息管理:通过列表可以获取美食名称、美食分类、店铺账号、店铺名称、联系电话、图片、口味、特色、价格等信息,进行修改或删除操作,如图5-8所示。

图5-8美食信息管理界面图

美食评价管理:管理员通过列表可以获取店铺账号、店铺名称、美食名称、用户账号、用户姓名、图片、评分、评价内容、评价时间等信息,进行修改或删除操作,如图5-9所示。

图5-9美食评价管理界面图

美食资讯:管理员通过列表可以获取标题、简介、图片等信息,进行修改或删除操作,如图5-10所示。

图5-10美食资讯界面图

轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-11所示。

图5-11轮播图管理界面图

美食店功能模块

美食店点击进入到系统操作界面,可以对首页、个人中心、美食信息管理、美食订单管理、美食评价管理等功能模块,个人信息:通过列表可以获取店铺账号、店铺名称、照片、联系电话、店铺介绍、店铺地址、招聘美食、联系人并进行修改操作,如图5-12所示。

图5-12个人信息界面图

美食信息管理:通过列表可以获取美食名称、美食分类、店铺账号、店铺名称、联系电话、图片、口味、特色、价格等信息,进行详情、修改、删除操作,如图5-13所示。

图5-13美食信息管理界面图

美食评价管理:通过列表可以获取店铺账号、店铺名称、美食名称、用户账号、用户姓名、图片、评分、评价内容、评价时间等信息,进行详情、修改、删除操作,如图5-14所示。

图5-14美食评价管理界面图

前台首页功能模块

网上点餐系统,在系统首页可以查看首页、美食店、美食信息、美食评价、美食资讯、个人中心、后台管理等内容,如图5-15所示。

图5-15前台首页功能界面图   

用户注册,在注册页面可以查看用户账号、密码、用户姓名、性别、年龄、用户手机、配送地址信息进行注册,如图5-16所示。

图5-16用户注册界面图

用户登录,在登录页面通过填写账号、密码等信息完成登录,如图5-17所示。在美食信息页面通过查看美食名称、美食分类、店铺账号、店铺名称、联系电话、图片、口味、特色、价格等信息进行点餐、点我收藏操作,如图5-18所示。

图5-17用户登录界面图

图5-18美食信息界面图

五、文章目录

章 绪 论

1.1背景及意义 1

1.2国内外研究概况 2

1.3 研究的内容 2

 关键技术的研究

2.1 相关技术 3

2.2 Java技术 3

2.3 ECLIPSE 开发环境 4

2.4 Tomcat介绍 4

2.5 Spring Boot框架 5

第三章 系统分析

3.1 系统设计目标 6

3.2 系统可行性分析 6

3.3 系统功能分析和描述 7

3.4系统UML用例分析 8

3.4.1管理员用例 9

3.4.2用户用例 9

3.5系统流程分析 10

3.5.1添加信息流程 11

3.5.2操作流程 12

3.5.3删除信息流程 13

第四章 系统设计 14

4.1 系统体系结构 15

4.2 数据库设计原则 16

4.3 数据表 17

第五章 系统实现 18

5.1用户功能模块 18

5.2管理员功能模块 19

5.3美食店功能模块 19

5.4前台首页功能模块 19

章  系统测试

6.1测试定义及目的 21

6.2性能测试 22

6.3测试模块 23

6.4测试结果 24

  

致  谢

参考文献

六、部分代码实现 


 * @author 
 * @email 
 * @date 2021-03-05 14:09:24
 */
@RestController
@RequestMapping("/tuihuantushu")
public class TuihuantushuController {
    @Autowired
    private TuihuantushuService tuihuantushuService;
    
 
 
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,TuihuantushuEntity tuihuantushu, HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			tuihuantushu.setXuehao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<TuihuantushuEntity> ew = new EntityWrapper<TuihuantushuEntity>();
		PageUtils page = tuihuantushuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tuihuantushu), params), params));
 
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,TuihuantushuEntity tuihuantushu, HttpServletRequest request){
        EntityWrapper<TuihuantushuEntity> ew = new EntityWrapper<TuihuantushuEntity>();
		PageUtils page = tuihuantushuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tuihuantushu), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( TuihuantushuEntity tuihuantushu){
       	EntityWrapper<TuihuantushuEntity> ew = new EntityWrapper<TuihuantushuEntity>();
      	ew.allEq(MPUtil.allEQMapPre( tuihuantushu, "tuihuantushu")); 
        return R.ok().put("data", tuihuantushuService.selectListView(ew));
    }
 
	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(TuihuantushuEntity tuihuantushu){
        EntityWrapper< TuihuantushuEntity> ew = new EntityWrapper< TuihuantushuEntity>();
 		ew.allEq(MPUtil.allEQMapPre( tuihuantushu, "tuihuantushu")); 
		TuihuantushuView tuihuantushuView =  tuihuantushuService.selectView(ew);
		return R.ok("查询退换图书成功").put("data", tuihuantushuView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        TuihuantushuEntity tuihuantushu = tuihuantushuService.selectById(id);
        return R.ok().put("data", tuihuantushu);
    }
 
    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        TuihuantushuEntity tuihuantushu = tuihuantushuService.selectById(id);
        return R.ok().put("data", tuihuantushu);
    }
    
 
 
 
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody TuihuantushuEntity tuihuantushu, HttpServletRequest request){
    	tuihuantushu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(tuihuantushu);
        tuihuantushuService.insert(tuihuantushu);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody TuihuantushuEntity tuihuantushu, HttpServletRequest request){
    	tuihuantushu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(tuihuantushu);
        tuihuantushuService.insert(tuihuantushu);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody TuihuantushuEntity tuihuantushu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(tuihuantushu);
        tuihuantushuService.updateById(tuihuantushu);//全部更新
        return R.ok();
    }
    
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        tuihuantushuService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<TuihuantushuEntity> wrapper = new EntityWrapper<TuihuantushuEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}
 
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
		}
 
		int count = tuihuantushuService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
 
 
}

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值