当前位置: 首页 > news >正文

基于微信小程序的中国各地美食推荐平台小程序

文末联系获取源码

开发语言:Java

框架:springboot

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7/8.0

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.3.9

浏览器:谷歌浏览器

小程序框架:uniapp

小程序开发软件:HBuilder X

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

一、前言介绍 

社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序。

本次开发一套中国各地美食推荐平台有管理员,商家,用户三个角色。管理员和商家都可以在网站后台登录,管理员功能有个人中心,用户管理,商家管理,美食类型管理,美食信息管理,美食分享管理,系统管理。商家可以注册登录,发布美食信息,查看美食订单。用户可以在微信小程序端进行注册登录,可以查看美食信息,美食分享,可以对美食进行下单操作。中国各地美食推荐平台服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json,数据,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。

二、系统功能结构 

在管理员功能模块确定下来的基础上,对管理员各个功能进行设计,确定管理员功能的详细模块。绘制的管理员功能结构见下图。

三、微信小程序功能实现

3.1首页

微信小程序输入正确的账号密码后就会默认进入首页显示界面。首页主要有轮播图,搜索框,以及下面的导航为主要组成部分。

3.2美食信息

用户点击美食信息可以看到美食信息界面,有搜索栏,有美食类型按钮,可以随便点击某个美食信息进行查看。 

3.3购物车

用户可以把美食信息加入到购物车里面。 

3.4我的

我的里面主要是可以进行退出,点击小齿轮就可以选择退出当前账户,也可以点击我的购物车,我的订单等信息。 

四、管理员后台功能实现

4.1用户管理 

此页面让管理员管理用户数据,用户管理页面见下图。此页面主要实现用户信息的查询,用户信息的审批,用户信息的刷新与珊除等管理。 

4.2商家管理 

此页面让管理员管理商家数据,商家管理页面见下图。此页面主要实现商家方面信息的新增,查询和刷新操作。

4.3美食类型

此页面显示美食类型信息,美食类型页面下图所示,主要让管理员对美食类型进行查询,添加修改,删除操作。 

4.4美食信息 

此页面显示美食信息信息。美食信息页面见下图。商家可以在此界面对美食信息进行添加,修改,查询,删除等操作。 

五、部分核心代码

5.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);}

5.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);}
http://www.lryc.cn/news/12030.html

相关文章:

  • 如何优雅的导出函数
  • c++多重继承
  • 15_FreeRtos计数信号量优先级翻转互斥信号量
  • 二叉树(一)
  • 【SCL】1200案例:天塔之光数码管显示液体混合水塔水位
  • 5.1配置IBGP和EBGP
  • c++中超级详细的一些知识,新手快来
  • [答疑]经营困难时期谈建模和伪创新-长点心和长点良心
  • 计算机基础知识
  • Java爬虫—WebMagic
  • [软件工程导论(第六版)]第2章 可行性研究(复习笔记)
  • Mac下安装Tomcat以及IDEA中的配置
  • 【Linux详解】——文件基础(I/O、文件描述符、重定向、缓冲区)
  • HomMat2d
  • Python3 JSON 数据解析
  • Homebrew 安装遇到的问题
  • Metasploit框架基础(二)
  • c++容器
  • Vue.js如何实现对一千张图片进行分页加载?
  • 计算机网络复习(六)
  • Redis进阶:布隆过滤器(Bloom Filter)及误判率数学推导
  • Java创建对象的方式
  • dom基本操作
  • 如何将python训练的XGBoost模型部署在C++环境推理
  • About Oracle Database Performance Method
  • JavaScript 日期和时间的格式化大汇总(收集)
  • 【Python】缺失值可视化工具库:missingno
  • 【代码随想录二刷】Day18-二叉树-C++
  • 制造业的云ERP在外网怎么访问?内网服务器一步映射到公网
  • zookeeper 复习 ---- 练习