博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
Python项目实战《100套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
系统介绍:
在当代社会,健康已成为人们日益关注的焦点话题。伴随这一趋势,健身房作为促进身心健康的重要场所,在全国乃至全球范围内迅速增多。随之而来的是对健身房管理效率与服务质量的更高要求。许多健身房仍然采用传统的管理模式,如纸质记录会员信息、手工排课和现场服务等,这些方式耗时耗力且容易出错,难以满足快节奏社会中人们对效率和便捷性的双重需求。随着智能手机和移动互联网的普及,用户对于能够随时随地访问信息和服务的需求愈发强烈。开发一款结合现代信息技术、适应移动互联网发展趋势的健身房管理平台小程序,成为了市场的迫切需求。这样的小程序能够帮助健身房提升管理水平,优化服务流程,同时也为健身爱好者带来极大的便利。
开发健身房管理平台小程序具有划时代的意义,它不仅能够推动健身房行业的信息化进程,还能极大地改善用户体验。通过该小程序,会员可以轻松完成注册、签到、预约课程、查看教练信息和健身信息等一系列操作,无需排队等候,从而节省时间并提高健身效率。对于健身房管理者来说,小程序提高运营效率,降低管理成本,还能通过信息分析帮助管理者洞察会员需求,优化课程设置和调整经营策略。小程序的社交功能可以增强会员之间的互动,营造积极向上的健身氛围,提升会员黏性和健身房的品牌忠诚度。健身房管理平台小程序的开发可以提升健身房的服务质量和管理效率,还能为用户提供更加丰富、便捷的健身体验,对促进整个社会的健康生活方式具有积极影响。
程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
程序操作流程图
首先前端通过Vue和axios发送HTTP请求到后端的登录接口。在后端接收登录请求的Controller会使用`@RequestParam Map<String, Object> params`来接收前端传递的用户参数,用户名和密码。然后后端根据接收到的参数创建一个查询条件封装对象MyBatis的EntityWrapper用于构建查询条件。接着在业务层,调用相应的service方法来查询数据库中是否存在匹配的用户信息。这个查询方法Login()会将前端传递的对象参数传递到后台的DAO层,进行数据库的交互操作。如果存在符合条件的用户,则会返回相关的用户信息。最后在后端控制器中将查询结果封装成响应体,通过`return R.ok().put("data", userService.selecView(ew))`将用户信息返回给前端。前端收到响应后,可以通过调用Vue、ElementUI等组件来渲染登录结果,例如显示用户信息或者跳转到相应的页面。
功能截图:
在系统前台首页,调用`$route(newValue)`方法监听路由变化,根据当前的路由地址来确定活动菜单的索引,并且根据路由的哈希部分(即URL的`#`后面的部分)来判断是否需要滚动页面到顶部或者某个特定元素的位置。如果不是首页,会将页面滚动到指定元素处,否则滚动到页面顶部。另外通过`headportrait()`方法用于更新组件渲染点前用户头像。在用户登录后,后端返回了新的用户信息,需要及时更新页面上的用户头像信息。
5.1小程序端实现
5.1.1登录界面的实现
首先双击打开小程序客户端,连上网络之后会显示出本系统的登录界面,这是进入小程序的初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能。登录界面如图5-1所示。
图5-1 登录界面
5.1.2注册界面的实现
第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本小程序所提供的所有功能。注册界面如图5-2所示。
图5-2 注册界面
5.1.3 小程序首页功能的实现
小程序首页是用户注册登录后进入的第一个界面,在这里,人们能够看到小程序的导航条,内容包括首页、健身课程、教练、健身课程、器械设备、健身知识、器械设备、社交互动、我的等。小程序首页界面如图5-3所示。
图5-3 小程序首页界面图
教练:在教练页面可以查看到教练姓名、教龄、教练工号、性别、年龄、身高(cm)、体重(kg)等详细信息,并进行预约教练操作;教练详情如图5-4所示。
图5-4教练详情界面图
器械设备:在器械设备页面可以查看到项目名称、项目编号、器材名称、数量、发布时间、健身时长、运动目的等详细信息,器械设备详情如图5-5所示。
图5-5器械设备详情界面图
5.1.4会员功能
会员登录成功后,点击“我的”可以对我的服务、预约教练、课程订单、奖品奖励、健身数据、器材使用、在线咨询、我的发贴、留言板、修改密码等进行详细操作。会员功能界面如图5-6所示。
图5-6会员功能界面图
5.2后台模块实现
后台用户登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-7所示。
图5-7后台登录界面
5.2.1管理员模块实现
管理员进入主页面,主要功能包括对系统首页、教练、预约教练、会员、健身课程、健身项目、课程订单、奖品奖励、健身数据、器械设备、器械使用、留言板、社交互动、系统管理、用户信息等进行操作。管理员主页面如图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-17器械设备界面
管理员点击器械使用。在器械使用页面输入项目名称、运动目的进行查询、删除器械使用列表,并根据需要对器械使用详情信息进行详情、更改或移除操作;如图5-18所示:
图5-18器械使用界面
管理员点击留言板。在留言板页面输入用户名进行查询或删除留言板列表,并根据需要对留言板详情信息进行详情、更改、回复或移除操作;如图5- 20所示:
图5-20留言板界面
管理员点击社交互动。在社交互动页面输入帖子标题进行查询或删除社交互动列表,并根据需要对社交互动详情信息进行详情、更改、查看评论或移除操作;如图5-21所示:
图5-20社交互动界面
管理员点击系统管理。在健身知识分类页面输入账号和选择是否通过进行查询、新增或删除健身知识分类列表,并根据需要对健身知识分类详情信息进行详情、更改或移除操作;还可以对系统简介、健身知识、在线咨询、轮播图管理进行相应操作;如图5-21所示:
图5-21系统管理界面
5.2.2教练模块实现
教练进入主页面,主要功能包括对系统首页、预约教练、健身课程、课程订单、用户信息等进行操作。教练主页面如图5-22所示:
图5-22 教练主界面
代码实现:
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String role, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user != null){
if(!user.getRole().equals(role)){
return R.error("权限不正常");
}
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}else{
return R.error("账号或密码或权限不对");
}
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
论文参考:
1 绪 论
1.1研究背景与意义
1.2系统研究现状
1.3 论文主要工作内容
2 系统关键技术
2.1 java简介
2.2 MySQL数据库
2.3 B/S结构
2.4 SpringBoot框架
2.5 VUE框架
3 系统分析
3.1 系统可行性分析
3.1.1 技术可行性
3.1.2 操作可行性
3.1.3 经济可行性
3.1.4 法律可行性
3.2 系统性能分析
3.3 系统功能分析
3.4 系统流程分析
3.4.1 数据开发流程
3.4.2 用户登录流程
3.4.3 系统操作流程
3.4.4 添加信息流程
3.4.5 修改信息流程
3.4.6 删除信息流程
4 系统设计
4.1 系统概要
4.2 系统结构设计
4.3数据库设计
4.3.1 数据库设计原则
4.3.3 数据库表设计
4.4 系统时序图
4.4.1 注册时序图
4.4.2 登录时序图
4.4.3 管理员修改用户信息时序图
4.4.4 管理员管理系统信息时序图
5 系统的实现
5.1前台功能实现
5.1.1系统首页页面
5.1.2个人中心
5.2后台管理员功能实现
6 系统测试
6.1 测试环境
6.2 测试目的
6.3 测试概述
6.4 单元测试
6.4.1 注册测试
6.4.2 登录测试
6.5 集成测试
结 论
参考文献
致 谢
推荐项目:
基于微信小程序+Springboot线上租房平台设计和实现-三端
2022-2024年最全的计算机软件毕业设计选题大全
基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现
基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
基于SpringBoot+uniapp微信小程序校园点餐平台详细设计和实现
基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现
基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统
基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统
基于Java+SpringBoot+Vue前后端分离餐厅点餐管理系统设计和实现
基于Python热门旅游景点数据分析系统设计与实现
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
Python项目实战《100套》
博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
Python项目实战《100套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
系统介绍:
在当代社会,健康已成为人们日益关注的焦点话题。伴随这一趋势,健身房作为促进身心健康的重要场所,在全国乃至全球范围内迅速增多。随之而来的是对健身房管理效率与服务质量的更高要求。许多健身房仍然采用传统的管理模式,如纸质记录会员信息、手工排课和现场服务等,这些方式耗时耗力且容易出错,难以满足快节奏社会中人们对效率和便捷性的双重需求。随着智能手机和移动互联网的普及,用户对于能够随时随地访问信息和服务的需求愈发强烈。开发一款结合现代信息技术、适应移动互联网发展趋势的健身房管理平台小程序,成为了市场的迫切需求。这样的小程序能够帮助健身房提升管理水平,优化服务流程,同时也为健身爱好者带来极大的便利。
开发健身房管理平台小程序具有划时代的意义,它不仅能够推动健身房行业的信息化进程,还能极大地改善用户体验。通过该小程序,会员可以轻松完成注册、签到、预约课程、查看教练信息和健身信息等一系列操作,无需排队等候,从而节省时间并提高健身效率。对于健身房管理者来说,小程序提高运营效率,降低管理成本,还能通过信息分析帮助管理者洞察会员需求,优化课程设置和调整经营策略。小程序的社交功能可以增强会员之间的互动,营造积极向上的健身氛围,提升会员黏性和健身房的品牌忠诚度。健身房管理平台小程序的开发可以提升健身房的服务质量和管理效率,还能为用户提供更加丰富、便捷的健身体验,对促进整个社会的健康生活方式具有积极影响。
程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
程序操作流程图
首先前端通过Vue和axios发送HTTP请求到后端的登录接口。在后端接收登录请求的Controller会使用`@RequestParam Map<String, Object> params`来接收前端传递的用户参数,用户名和密码。然后后端根据接收到的参数创建一个查询条件封装对象MyBatis的EntityWrapper用于构建查询条件。接着在业务层,调用相应的service方法来查询数据库中是否存在匹配的用户信息。这个查询方法Login()会将前端传递的对象参数传递到后台的DAO层,进行数据库的交互操作。如果存在符合条件的用户,则会返回相关的用户信息。最后在后端控制器中将查询结果封装成响应体,通过`return R.ok().put("data", userService.selecView(ew))`将用户信息返回给前端。前端收到响应后,可以通过调用Vue、ElementUI等组件来渲染登录结果,例如显示用户信息或者跳转到相应的页面。
功能截图:
在系统前台首页,调用`$route(newValue)`方法监听路由变化,根据当前的路由地址来确定活动菜单的索引,并且根据路由的哈希部分(即URL的`#`后面的部分)来判断是否需要滚动页面到顶部或者某个特定元素的位置。如果不是首页,会将页面滚动到指定元素处,否则滚动到页面顶部。另外通过`headportrait()`方法用于更新组件渲染点前用户头像。在用户登录后,后端返回了新的用户信息,需要及时更新页面上的用户头像信息。
5.1小程序端实现
5.1.1登录界面的实现
首先双击打开小程序客户端,连上网络之后会显示出本系统的登录界面,这是进入小程序的初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能。登录界面如图5-1所示。
图5-1 登录界面
5.1.2注册界面的实现
第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本小程序所提供的所有功能。注册界面如图5-2所示。
图5-2 注册界面
5.1.3 小程序首页功能的实现
小程序首页是用户注册登录后进入的第一个界面,在这里,人们能够看到小程序的导航条,内容包括首页、健身课程、教练、健身课程、器械设备、健身知识、器械设备、社交互动、我的等。小程序首页界面如图5-3所示。
图5-3 小程序首页界面图
教练:在教练页面可以查看到教练姓名、教龄、教练工号、性别、年龄、身高(cm)、体重(kg)等详细信息,并进行预约教练操作;教练详情如图5-4所示。
图5-4教练详情界面图
器械设备:在器械设备页面可以查看到项目名称、项目编号、器材名称、数量、发布时间、健身时长、运动目的等详细信息,器械设备详情如图5-5所示。
图5-5器械设备详情界面图
5.1.4会员功能
会员登录成功后,点击“我的”可以对我的服务、预约教练、课程订单、奖品奖励、健身数据、器材使用、在线咨询、我的发贴、留言板、修改密码等进行详细操作。会员功能界面如图5-6所示。
图5-6会员功能界面图
5.2后台模块实现
后台用户登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-7所示。
图5-7后台登录界面
5.2.1管理员模块实现
管理员进入主页面,主要功能包括对系统首页、教练、预约教练、会员、健身课程、健身项目、课程订单、奖品奖励、健身数据、器械设备、器械使用、留言板、社交互动、系统管理、用户信息等进行操作。管理员主页面如图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-17器械设备界面
管理员点击器械使用。在器械使用页面输入项目名称、运动目的进行查询、删除器械使用列表,并根据需要对器械使用详情信息进行详情、更改或移除操作;如图5-18所示:
图5-18器械使用界面
管理员点击留言板。在留言板页面输入用户名进行查询或删除留言板列表,并根据需要对留言板详情信息进行详情、更改、回复或移除操作;如图5- 20所示:
图5-20留言板界面
管理员点击社交互动。在社交互动页面输入帖子标题进行查询或删除社交互动列表,并根据需要对社交互动详情信息进行详情、更改、查看评论或移除操作;如图5-21所示:
图5-20社交互动界面
管理员点击系统管理。在健身知识分类页面输入账号和选择是否通过进行查询、新增或删除健身知识分类列表,并根据需要对健身知识分类详情信息进行详情、更改或移除操作;还可以对系统简介、健身知识、在线咨询、轮播图管理进行相应操作;如图5-21所示:
图5-21系统管理界面
5.2.2教练模块实现
教练进入主页面,主要功能包括对系统首页、预约教练、健身课程、课程订单、用户信息等进行操作。教练主页面如图5-22所示:
图5-22 教练主界面
代码实现:
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String role, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user != null){
if(!user.getRole().equals(role)){
return R.error("权限不正常");
}
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}else{
return R.error("账号或密码或权限不对");
}
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
论文参考:
1 绪 论
1.1研究背景与意义
1.2系统研究现状
1.3 论文主要工作内容
2 系统关键技术
2.1 java简介
2.2 MySQL数据库
2.3 B/S结构
2.4 SpringBoot框架
2.5 VUE框架
3 系统分析
3.1 系统可行性分析
3.1.1 技术可行性
3.1.2 操作可行性
3.1.3 经济可行性
3.1.4 法律可行性
3.2 系统性能分析
3.3 系统功能分析
3.4 系统流程分析
3.4.1 数据开发流程
3.4.2 用户登录流程
3.4.3 系统操作流程
3.4.4 添加信息流程
3.4.5 修改信息流程
3.4.6 删除信息流程
4 系统设计
4.1 系统概要
4.2 系统结构设计
4.3数据库设计
4.3.1 数据库设计原则
4.3.3 数据库表设计
4.4 系统时序图
4.4.1 注册时序图
4.4.2 登录时序图
4.4.3 管理员修改用户信息时序图
4.4.4 管理员管理系统信息时序图
5 系统的实现
5.1前台功能实现
5.1.1系统首页页面
5.1.2个人中心
5.2后台管理员功能实现
6 系统测试
6.1 测试环境
6.2 测试目的
6.3 测试概述
6.4 单元测试
6.4.1 注册测试
6.4.2 登录测试
6.5 集成测试
结 论
参考文献
致 谢
推荐项目:
基于微信小程序+Springboot线上租房平台设计和实现-三端
2022-2024年最全的计算机软件毕业设计选题大全
基于Java+SpringBoot+Vue前后端分离手机销售商城系统设计和实现
基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
基于SpringBoot+uniapp微信小程序校园点餐平台详细设计和实现
基于Java+SpringBoot+Vue+echarts健身房管理系统设计和实现
基于JavaSpringBoot+Vue+uniapp微信小程序实现鲜花商城购物系统
基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统
基于Java+SpringBoot+Vue前后端分离餐厅点餐管理系统设计和实现
基于Python热门旅游景点数据分析系统设计与实现
源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻
2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅
Java项目精品实战案例《100套》
Java微信小程序项目实战《100套》
Python项目实战《100套》