SpringBoot+Vue项目外卖点餐系统
SpringBoot+Vue项目外卖点餐系统
文末获取源码
开发语言:Java
开发工具:IDEA /Eclipse
数据库:MYSQL5.7
使用框架:springboot+vue
JDK版本:jdk1.8
前言介绍
本文从用户的功能要求出发,建立了外卖点餐系统 ,系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、商家管理、菜品分类管理、骑手管理、系统管理、菜品管理、订单管理、配送单管理、商品评价管理,商家;首页、个人中心、菜品管理、订单管理、配送单管理、商品评价管理、我的收藏管理,用户;首页、个人中心、订单管理、配送单管理、商品评价管理、我的收藏管理、骑手;首页、个人中心、订单管理、配送单管理、商品评价管理等功能部分;经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。
系统功能设计
软件的用户界面是最直接接触的对象,包括是否允许用户使用简单方便,请求的响应时间,主图像的整体质量,整体布局的质量。
外卖点餐系统 的设计基于现有的网络平台,可以实现用户管理及数据信息管理等功能。方便管理员;首页、个人中心、用户管理、商家管理、菜品分类管理、骑手管理、系统管理、菜品管理、订单管理、配送单管理、商品评价管理有详细的了解及统计分析,随时查看信息状态。
系统功能设计是在系统开发和设计思想的总体任务的基础上完成的。该系统的主要任务是实现外卖点餐系统 管理,使用户可以通过指令完成整个外卖点餐系统的操作。
从上面的描述中可以基本可以实现软件的功能:
1、开发实现外卖点餐系统的整个系统程序;
2、管理员;首页、个人中心、用户管理、商家管理、菜品分类管理、骑手管理、系统管理、菜品管理、订单管理、配送单管理、商品评价管理等模块信息的查看及相应操作;
3、用户:实现首页、个人中心、订单管理、配送单管理、商品评价管理、我的收藏管理等相应操作;
4、商家:实现首页、个人中心、菜品管理、订单管理、配送单管理、商品评价管理、我的收藏管理等相应操作;
5、骑手;首页、个人中心、订单管理、配送单管理、商品评价管理等相应操作;
6、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行留言信息的查看及回复相应操作。
系统功能结构图
系统实现
用户前台功能模块
通过进入网站可以查看首页、商家、菜品、登录、后台管理等功能模块,如图1所示;通过点击登录可以填写账号、密码等详细信息,进行登录操作,如图2
登录界面图
用户通过点击个人中心进入页面,可以查看个人信息、信息修改等信息,进行操作,如图1所示。用户通过点击菜品详情进入页面,可以填写名称、类型、口味、价格等信息,进行提交操作,如图
菜品详情界面图
管理员功能模块
管理员通过后台登录窗口进行输入自己的账号信息、密码等信息,进行登录,如图
个人信息,管理员通过列表进行查看用户名等信息,进行查看、修改或删除操作,如图
用户管理,管理员通过用户管理可以在线查看账号、密码、姓名、性别、头像等信息,进行详情或修改、删除操作,如图
商家管理,管理员通过商家管理可以在线查看商家编号、密码、商家名称、图片等信息,进行查看或修改、删除操作,如图
菜品分类管理,管理员通过菜品分类管理可以在线查看类型等信息,进行查看或添加修改或删除,如图
菜品管理:通过列表可以获取名称、类型、图片、口味、价格等信息,进行查看、详情、修改或删除操作 ,如图
订单管理:通过列表可以获取名称、类型、图片、价格等信息,进行查看、详情、修改或删除操作 ,如图
商家功能模块
商家通过点击后台管理,进入页面可以进行首页、个人中心、菜品管理、订单管理、配送单管理、商品评价管理、我的收藏管理等功能模块,进行相对应操作,如图
菜品管理:通过菜品管理可以进行获取名称、类型、图片、口味等信息,如图
订单管理:商家通过列表可以获取名称、类型、图片、价格、购买数量等信息,进行查看订单管理等信息操作,如图
配送单管理:商家通过列表可以获取名称、图片、购买数量、商家编号等信息,进行查看配送单管理等信息操作,如图
用户功能模块
用户通过点击后台管理,进入页面可以进行首页、个人中心、订单管理、配送单管理、商品评价管理、我的收藏管理等功能模块,进行相对应操作,如图
订单管理:通过订单管理可以进行获取名称、类型、图片、价格、购买数量、总价格等信息,如图
配送单管理:用户通过列表可以获取名称、图片、购买数量、商家编号等信息,进行查看配送单管理等信息操作,如图
商品评价管理:用户通过列表可以获取名称、图片、购买数量、商家编号等信息,进行查看商品评价管理等信息操作,如图
我的收藏管理:用户通过列表可以获取收藏id、收藏名称、收藏图片等信息,进行查看我的收藏管理等信息操作,如图
骑手功能模块
骑手通过点击后台管理,进入页面可以进行首页、个人中心、订单管理、配送单管理、商品评价管理等功能模块,进行相对应操作,如图
订单管理:通过订单管理可以进行获取名称、类型、图片、价格、购买数量等信息,如图
配送单管理:骑手通过列表可以获取名称、图片、购买数量、商家编号等信息,进行查看配送单管理等信息操作,如图
部分核心代码:
/*** 配送单* 后端接口* @author * @email * @date 2020-09-23 18:00:25*/
@RestController
@RequestMapping("/peisongdan")
public class PeisongdanController {@Autowiredprivate PeisongdanService peisongdanService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,PeisongdanEntity peisongdan, HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("shangjia")) {peisongdan.setShangjiabianhao((String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {peisongdan.setZhanghao((String)request.getSession().getAttribute("username"));}if(tableName.equals("qishou")) {peisongdan.setYonghuming((String)request.getSession().getAttribute("username"));}EntityWrapper<PeisongdanEntity> ew = new EntityWrapper<PeisongdanEntity>();PageUtils page = peisongdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, peisongdan), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,PeisongdanEntity peisongdan, HttpServletRequest request){EntityWrapper<PeisongdanEntity> ew = new EntityWrapper<PeisongdanEntity>();PageUtils page = peisongdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, peisongdan), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( PeisongdanEntity peisongdan){EntityWrapper<PeisongdanEntity> ew = new EntityWrapper<PeisongdanEntity>();ew.allEq(MPUtil.allEQMapPre( peisongdan, "peisongdan")); return R.ok().put("data", peisongdanService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(PeisongdanEntity peisongdan){EntityWrapper< PeisongdanEntity> ew = new EntityWrapper< PeisongdanEntity>();ew.allEq(MPUtil.allEQMapPre( peisongdan, "peisongdan")); PeisongdanView peisongdanView = peisongdanService.selectView(ew);return R.ok("查询配送单成功").put("data", peisongdanView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){PeisongdanEntity peisongdan = peisongdanService.selectById(id);return R.ok().put("data", peisongdan);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") String id){PeisongdanEntity peisongdan = peisongdanService.selectById(id);return R.ok().put("data", peisongdan);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody PeisongdanEntity peisongdan, HttpServletRequest request){peisongdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(peisongdan);peisongdanService.insert(peisongdan);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody PeisongdanEntity peisongdan, HttpServletRequest request){peisongdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(peisongdan);peisongdanService.insert(peisongdan);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody PeisongdanEntity peisongdan, HttpServletRequest request){//ValidatorUtils.validateEntity(peisongdan);peisongdanService.updateById(peisongdan);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){peisongdanService.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<PeisongdanEntity> wrapper = new EntityWrapper<PeisongdanEntity>();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("shangjia")) {wrapper.eq("shangjiabianhao", (String)request.getSession().getAttribute("username"));}if(tableName.equals("yonghu")) {wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));}if(tableName.equals("qishou")) {wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));}int count = peisongdanService.selectCount(wrapper);return R.ok().put("count", count);}}