文末联系获取源码
开发语言:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
一、前言介绍
本系统为基于微信平台健身小助手小程序,是采用微信和网络技术进行开发的健身相关的平台,可以实现浏览健身视频、预约健身项目、论坛交流等功能。本系统采用JAVA语言,数据库为Mysql,运行环境为微信开发者工具。使用角色分为用户、管理员、健身房,本系统的功能包括健身视频、健身项目、论坛、用户注册、用户登录等。其中,用户负责浏览信息、预约项目、发布帖子、健身打卡、预约管理、每日热量管理等,健身房可以发布项目、发布健身视频、管理预约等,管理员可以审核用户信息、健身房信息、健身视频信息、健身项目信息、论坛信息等。本系统实现了健身项目的在线预约,方便了用户和管理员、健身房三方的利益,提高健身的效率,更符合现代人生活。
二、系统功能分析
本人参考大量的健康管理软件以及充分调查需要健身的用户和管理员,健身房的需求,设计出的本基于微信平台健身小助手小程序使用角色为用户、管理员、健身房。框架界面分为用户操作界面、管理员操作界面、健身房操作界面。
2.1用户的功能设计
(1)注册功能,可以填写必要的信息进行注册;
(2)健身项目预约功能,本界面里展示了不同的项目信息,可以选择项目进行预约;
(3)我的收藏管理功能,可以管理自己的收藏信息;
(4)预约管理功能,可以查看到所有的预约,并进行取消或者查询;
(5)健身打卡功能,实现每天健身后的打卡;
(6)日常热量功能,记录自己的热量,方便对比。
2.2管理员的功能设计
(1)健身项目信息管理功能,可以发布、编辑、删除健身项目信息;
(2)健身视频信息管理功能,本功能可以收到健身房的健身视频可以根据实际情况进行健身视频的审核;
(3)用户信息管理功能,此功能可以对用户的账号、资料等进行审核管理;
(4)系统管理功能,对轮播图、公告进行管理;
(5)健身房信息管理功能,对健身房的注册资料进行审核;
(6)个人中心功能,对密码、个人信息进行管理;
(7)类型管理功能,包括视频类型和项目类型;
(8)预约管理功能,可以查看到用户的预约详情;
(9)论坛管理功能,管理版块和帖子信息;
(10)健身打卡功能,实现浏览用户的打卡;
(11)日常热量管理功能,浏览用户的日常热量。
2.3健身房的功能设计
(1)健身项目信息管理功能,可以发布新的项目和管理项目;
(2)预约信息管理功能,查看用户的预约和进行安排;
(3)健身视频功能,可以发布和管理健身视频;
(4)帖子管理功能,发布帖子和管理帖子。
三、用户角色功能的界面实现
3.1用户注册功能的界面实现
用户和健身房都需要先进行注册,注册成功后才可以登录。在注册界面里需要填写密码和账号名。用户注册界面和健身房的注册界面分开。用户注册运行界面如下图所示:
3.2登录功能的界面实现
系统运行调试后,需要登录。登录界面设计的目的是保证当前的使用角色等级。管理员同样需要登录后才可以进行操作。在登录界面里加入了忘记密码的功能,当密码丢失时可以使用本功能进行找回。在登录时只需要填写用户账号和密码,选择权限就可以实现。用户登录的运行界面如下图所示:
在登录的界面中包含的元素有系统题目、输入框、登录按钮、选择框。本系统的使用权限为管理员和用户、健身房。权限选择框的运行界面如下图所示:
3.3预约健身项目功能的界面实现
用户的功能主要为预约健身项目和预约管理、健身打卡、每日热量管理等。预约健身项目功能的运行界面如下图所示:
3.4预约管理功能的实现界面
用户可以在预约信息里查看具体的预约时间等信息.预约管理功能的运行界面如下图所示:
3.5我的功能的实现界面
在我的功能里,用户可以进行相关操作,包括管理个人信息、预约信息、打卡信息、帖子信息等。我的功能的实现界面如下图所示:
3.6论坛功能的实现界面
用户可以发布帖子实现交流,发布帖子功能的实现界面如下图所示:
四、健身房角色功能的界面实现
4.1健身项目信息管理功能的界面实现
健身房可以发布新的健身项目,发布后的健身项目可以在首页进行展示。发布新的健身项目信息的实现界面如下图所示:
4.2健身房我的功能的实现界面
健身房我的功能里可以管理健身项目信息、预约信息、帖子信息。健身房我的功能的实现界面如下图所示:
五、管理员功能的设计实现
5.1用户信息管理功能的实现界面
用户的信息可由管理员添加,本功能设计的目的是添加和审核用户的资料,当发现不当的使用用户可以删除其账号。当删除用户信息后相对应的用户信息.表里的信息也会随着删除掉。查询用户信息功能的运行界面如下图所示:
5.2个人中心功能的实现界面
个人中心的内容包括当前登录账号修改、密码信息修改。本系统中可以拥有多个管理员。个人中心功能的运行界面如下图所示:
5.3健身视频信息管理功能的实现界面
用户浏览的健身视频都是由管理员、健身房在此功能里进行维护添加的,同样当管理员添加、编辑健身视频信息后,数据库表中的健身视频信息表也会发生改变。健身视频信息管理功能的运行界面如下图所示:
在添加健身视频信息时可以取消和提交。发布新健身视频信息的运行界面如下图所示:
5.4健身房管理功能的界面实现
管理员可以审核健身房的资料,保证健身房的真实性,为用户的健身提供保障。健身房管理功能的实现界面如下图所示:
5.5预约管理功能的界面实现
包括对预约的查询和修改、删除。预约管理功能的实现界面如下图所示:
5.6每日热量管理功能的实现界面
管理员可以查询用户的每日热量。实现界面如下图所示:
六、部分核心代码
6.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.getMim
a().equals(password)) {
-
return R.
error(
"账号或密码不正确");
-
}
-
-
String token
= tokenService.generateToken(user.getId(), username,
"yonghu",
"用户" );
-
return R.ok().put(
"token", token);
-
}
6.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);
-
}
转载:https://blog.csdn.net/qq_61827376/article/details/128906566