基于微信小程序的懒人美食帮小程序

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文末联系获取源码

开发语言Java

框架springboot

JDK版本JDK1.8

服务器tomcat7

数据库mysql 5.7/8.0

数据库工具Navicat11

开发软件eclipse/myeclipse/idea

Maven包Maven3.3.9

浏览器谷歌浏览器

小程序框架uniapp

小程序开发软件HBuilder X

小程序运行软件微信开发者

一、前言介绍

人民生活水平的提高就会造成生活节奏越来越快,很多人吃饭都采用点外卖的方式。现在点外卖的平台已有很多大多都需要安装它们的APP才可以使用。如果一味的使用外卖平台不仅会造成商家成本的增加,还不利于商家订单的配送。开发小程序+SpringBoot懒人菜品帮可以解决这些间题实现借助微信就可以点餐。

本小程序+SpringBoot懒人菜品帮采用Java语言和Mysql数据库进行设计技术采用微信小程序可以不安装App软件就实现订餐。本系统实现管理员和用户、商家、配送员四个角色的功能。用户主要在微信端操作内容有菜品信息用户可以在线点餐和管理订单信息以及查看配送情况。商家可以发布菜品和管理订单、查看配送情况。管理员可以审核菜品以及管理订单等。配送员可以接单完成配送。本系统可以实现线上的订餐帮助商家更好的销售餐品。 

二、系统功能分析

1本系统的使用角色为管理员、商家和用户、配送员管理员可以管理菜品信息.、订单信息、商家信息、用户信息、配送信息等。

2用户可以浏览菜品、商家在线订餐和查询配送情况管理订单等。

3商家可以管理菜品信息和订单信息并查询配送情况。

4配送员可以在线接单和管理配送信息。

2.1系统功能结构设计

本系统的功能结构为用户界面、管理员界面和商家界面、配送员界面不同角色负责的功能不同对系统的功能设计采用系统功能结构图进行展示。本系统的功能结构图如下图所示: 

三、小程序端 

3.1用户登录功能模块的实现界面 

本系统需要登录才可以使用相关功能。用户登录功能的操作步骤为用户点击用户登录功能可以跳转到用户登录的窗口界面里在用户登录的窗口界面里输入账号和密码,然后点击登录按钮。用户登录窗口的界面实现如下图所示: 

3.2用户注册功能的实现界面

本功能设计的目的是帮助游客在线订餐。用户和配送员都可以注册。在注册时需要设置账号和密码。用户注册功能的实现界面如下图所示:

3.3首页功能的设计实现

用户登录后可进入首页在首页里可以看到商家信息和菜品信息可以进行菜品搜索和购买。首页功能的实现界面如下图所示:

3.4用户信息管理功能的实现界面

用户可以修改自己注册时填写的资料可以设置头像以及手机号。用户信息管理功能的实现界面如下图所示: 

3.5菜品功能的实现界面

用户可以浏览菜品信息也可以根据菜品的名称进行搜索菜品信息可以看到图片和价格菜品信息的实现界面如下图所示: 

3.6菜品分类功能的实现界面

用户可以在前台浏览菜品的所有分类也可以搜索菜品分类。菜品分类功能的实现界面如下图所示: 

3.7立即订购功能的实现界面

用户在前台选择喜欢的菜品后可以立即订购,在订购时需要选择地址立即订购功能的实现界面如下图所示: 

3.8我的功能的实现界面

在我的功能里用户可以管理订单信息进行订单配送查询和查询配送完成的订单。我的功能实现界面如下图所示: 

四、商家权限的功能实现

商家可以管理菜品信息和订单信息,可以管理配送订单和查询已完成的所有配送。商家权限的功能实现界面如下图所示: 

五、管理员权限的功能实现

管理员可以管理菜品分类、菜品信息、订单信息、用户信息、商家信息、配送员信息等。管理员权限的功能实现界面如下图所示: 

六、配送员权限的功能实现

配送员可以查询订单和进行接单并完成配送。配送员角色的功能实现界面如下图所示: 

七、部分核心代码

7.1登录系统主要代码

 

/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));
		if(user==null || !user.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		
		String token = tokenService.generateToken(user.getId(), username,"yonghu",  "用户" );
		return R.ok().put("token", token);
	}

7.2上传文件关键代码

@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		/**
  		 * 如果使用idea或者eclipse重启项目发现之前上传的图片或者文件丢失将下面一行代码注释打开
   		 * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径
 		 * 并且项目路径不能存在中文、空格等特殊字符
 		 */
//		FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6