大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
当前专栏:微信小程序毕业设计
精彩专栏推荐
安卓app毕业设计
Java毕业设计
老年人健康管理平台(java)演示
https://download.csdn.net/download/m0_46388260/88014775
本系统前台使用的是微信小程序,后台使用Java语言和MySQL数据库开发,为各位老年人及医务工作者提供了健康知识查询、健康自测管理、健康食谱管理等多种功能,让人们不需要再通过自己前往医院或者打电话就可以进行健康信息的查看,在极大地满足老年人们进行在线健康管理的需求的同时,还在首页中添加了健康知识问答及健康科普知识的查看等功能,让老年用户们可以自行进行学习和预防疾病。
本老年人健康管理系统主要包括两大角色,即系统管理员和老年人用户,系统的基本模块图如图 5-1 所示:
(1)用户信息表,用户注册之后的个人信息会存储在此表中。这个表中的用户ID应设置为主键,除此之外还要有用户名、密码、注册时间等列。
(2)健康信息表,用来保存本系统内对老年人健康状况记录的详细信息,具体的表结构如表 5-2 所示:
不管是普通的会员用户还是拥有管理权限的管理员用户都需要先进行登录之后才可以使用系统内的功能,如果不进行登录只能进行一些网页浏览的基本功能,如果想要进行留言、修改个人信息和录入健康自测信息等功能是不被允许的,用户登录后就可以进入前台主页面。小程序首页的结构非常简单,在首页中用户可以看到很多健康科普知识,而在此界面的下方为本系统的菜单选项,包含健康食谱、健康问卷、在线留言和我的个人信息等功能。下图为小程序的前台首页面展示:
进入主页面之后可以点击下方导航栏中的健康食谱链接,点击之后可以查看站内所有的健康食谱的列表,在列表中可以观看大致食谱内容,想查看详细的食谱信息需要点击该食谱然后才可以进行详情的查看。具体的实现效果如下图所示。
老年人用户在登录后点击首页面右下方的个人中心链接即可进入本界面,在界面的上方可以查看自己的头像、用户名及权限等信息,在本界面上可以进行用户资料的修改、个人密码的修改与健康自测查询等功能。个人中心界面及修改密码和修改个人资料的具体效果如下:
用户的健康自测管理分为对健康自测信息的添加和查看两个功能。通过小程序下方的健康自测链接可以进入此功能,点击红色的加号可以进入健康信息添加的界面,用户需要选择当前的时间,然后添加自己的睡眠时间、血压及身高体重等信息即可保存,保存后即可查看自己所有的自测数据。以下是健康自测功能的界面:
在线留言功能分为对留言的添加和留言查看两个部分,当用户在使用本系统遇到问题的时候可以通过添加留言的方式给管理员进行留言,当管理员查看到留言后会及时地进行回复。在查看留言的界面中,用户可以看到留言的用户信息及留言的具体内容和时间等信息。留言板的实现效果如下所示:
在登录时如果选择了管理员的角色进行登录并且用户名和密码都可以通过验证的话,管理员就可以进入后台管理界面。在后台的布局中,左侧为折叠起来的菜单栏,后台管理的模块分为系统用户管理、健康科普知识管理、健康自测管理、健康问卷管理和留言板信息管理等,右侧为对应的具体模块的信息展示。页面具体效果如下:
1课题概述 1
1.1研究的背景及意义 1
1.2研究思路 1
1.3课题研究内容 2
2可行性分析 2
2.1可行性分析 2
2.1.1技术可行性分析 2
2.1.2经济可行性分析 3
2.1.3操作可行性分析 3
3相关技术简要概述 3
3.1微信小程序的介绍 3
3.2B/S架构的介绍 3
3.3PHP技术的介绍 3
3.4MYSQL数据库的介绍 4
4需求分析 4
4.1功能需求分析 4
4.1.1系统管理员 4
4.1.2老年人用户 5
4.2性能需求分析 6
5系统设计 6
5.1系统概要设计 6
5.2数据库设计 7
6系统实现 9
6.1老年人用户 10
6.2管理员用户 11
7系统测试 18
7.1系统测试目的与意义 18
7.2测试用例与测试结果 18
7.3测试总结
8 结论 21
参考文献 23
致 谢 24
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.*;
import com.example.exception.CustomException;
import com.example.service.AdminInfoService;
import com.example.service.ZhuceyonghuInfoService;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.json.JSONUtil;
import java.util.*;
import java.util.stream.Collectors;
@RestController
public class AccountController {
@Value("${authority.info}")
private String authorityStr;
@Resource
private AdminInfoService adminInfoService;
@Resource
private ZhuceyonghuInfoService zhuceyonghuInfoService;
@PostMapping("/login")
public Result<Account> login(@RequestBody Account account, HttpServletRequest request) {
if (StrUtil.isBlank(account.getUsername()) || StrUtil.isBlank(account.getMima()) || account.getLevel() == null) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
String level = account.getLevel();
Account login = new Account();
if (level.equals("管理员")) {
login = adminInfoService.login(account.getUsername(), account.getMima());
}
if (level.equals("注册用户")) {
login = zhuceyonghuInfoService.login(account.getUsername(), account.getMima());
//yoxusxhenhe if(login.getStatus().equals("否")){return Result.error("500","帐号未审核通过,请联系管理员");}
}
request.getSession().setAttribute("user", login);
return Result.success(login);
}
@GetMapping("/logout")
public Result logout(HttpServletRequest request) {
request.getSession().setAttribute("user", null);
return Result.success();
}
@GetMapping("/auth")
public Result getAuth(HttpServletRequest request) {
Object user = request.getSession().getAttribute("user");
if(user == null) {
return Result.error("401", "未登录");
}
return Result.success(user);
}
@GetMapping("/getAccountInfo")
public Result<Object> getAccountInfo(HttpServletRequest request) {
Account account = (Account) request.getSession().getAttribute("user");
if (account == null) {
return Result.success(new Object());
}
String level = account.getLevel();
if (level.equals("管理员")) {
return Result.success(adminInfoService.findById(account.getId()));
}
if (level.equals("注册用户")) { return Result.success(zhuceyonghuInfoService.findById(account.getId())); }
return Result.success(new Object());
}
@GetMapping("/getSession")
public Result<Map<String, String>> getSession(HttpServletRequest request) {
Account account = (Account) request.getSession().getAttribute("user");
if (account == null) {
return Result.success(new HashMap<>(1));
}
Map<String, String> map = new HashMap<>(1);
map.put("username", account.getUsername());
return Result.success(map);
}
@GetMapping("/getAuthority")
public Result<List<AuthorityInfo>> getAuthorityInfo() {
List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);
return Result.success(authorityInfoList);
}
/**
* 获取当前用户所能看到的模块信息
* @param request
* @return
*/
@GetMapping("/authority")
public Result<List<Integer>> getAuthorityInfo(HttpServletRequest request) {
Account user = (Account) request.getSession().getAttribute("user");
if (user == null) {
return Result.success(new ArrayList<>());
}
JSONArray objects = JSONUtil.parseArray(authorityStr);
for (Object object : objects) {
JSONObject jsonObject = (JSONObject) object;
if (user.getLevel().equals(jsonObject.getStr("level"))) {
JSONArray array = JSONUtil.parseArray(jsonObject.getStr("models"));
List<Integer> modelIdList = array.stream().map((o -> {
JSONObject obj = (JSONObject) o;
return obj.getInt("modelId");
})).collect(Collectors.toList());
return Result.success(modelIdList);
}
}
return Result.success(new ArrayList<>());
}
@GetMapping("/permission/{modelId}")
public Result<List<Integer>> getPermission(@PathVariable Integer modelId, HttpServletRequest request) {
List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);
Account user = (Account) request.getSession().getAttribute("user");
if (user == null) {
return Result.success(new ArrayList<>());
}
Optional<AuthorityInfo> optional = authorityInfoList.stream().filter(x -> x.getLevel().equals(user.getLevel())).findFirst();
if (optional.isPresent()) {
Optional<AuthorityInfo.Model> firstOption = optional.get().getModels().stream().filter(x -> x.getModelId().equals(modelId)).findFirst();
if (firstOption.isPresent()) {
List<Integer> info = firstOption.get().getOperation();
return Result.success(info);
}
}
return Result.success(new ArrayList<>());
}
@PutMapping("/updateMima")
public Result updateMima(@RequestBody Account info, HttpServletRequest request) {
Account account = (Account) request.getSession().getAttribute("user");
if (account == null) {
return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);
}
String oldMima = SecureUtil.md5(info.getMima());
if (!oldMima.equals(account.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewMima()));
String level = account.getLevel();
if (level.equals("管理员")) {
AdminInfo adminInfo = new AdminInfo();
BeanUtils.copyProperties(info, adminInfo);
adminInfoService.update(adminInfo);
}
if (level.equals("注册用户")) {
ZhuceyonghuInfo zhuceyonghuInfo = new ZhuceyonghuInfo();
BeanUtils.copyProperties(info, zhuceyonghuInfo);
zhuceyonghuInfoService.update(zhuceyonghuInfo);
}
info.setLevel(level);
info.setUsername(account.getUsername());
// 清空session,让用户重新登录
request.getSession().setAttribute("user", null);
return Result.success();
}
@PostMapping("/resetMima")
public Result resetMima(@RequestBody Account account) {
String level = account.getLevel();
if (level.equals("管理员")) {
AdminInfo info = adminInfoService.findByUserName(account.getUsername());
if (info == null) {
return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);
}
info.setMima(SecureUtil.md5("123456"));
adminInfoService.update(info);
}
return Result.success();
}
}
如需对应的论文或源码,也可以下方微信联系我