作者主页:我的主页
作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师
主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享
一,项目简介
本次开发设计的个人健康管理系统,主要基于SSM实现对个人健康信息的管理,实现在疫情期间进行个人健康状态的上报管理,便于对个人的健康状况及时进行了解,以便于疫情的防控。主要包含注册登陆,个人每日健康上报,历史上报记录查询,个人信息修改,图形报表展示报告等几个模块。
二,环境介绍
语言环境:Java:? jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat:? tomcat8.5.31
开发工具:IDEA或eclipse
开发技术:spring+springmvc+mybatis+mysql+jsp+bootstrap
三,系统展示
?项目展示:
用户登陆功能展示:
用户在线注册功能:
个人健康信息记录上报
每日健康打卡
查看个人历史上报记录:
修改个人上报详情信息:
个人健康报告查询:
四,核心代码展示
package top.beansprout.health.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import top.beansprout.health.constant.SysConstant;
import top.beansprout.health.model.vo.BusinessException;
import top.beansprout.health.model.vo.UserLoginVo;
import top.beansprout.health.util.PublicUtils;
/**
* <p> Title: BaseController </p>
* <p> Description: 基本信息处理</p>
*
*/
public class BaseController {
@Autowired
private HttpServletRequest request;
public UserLoginVo getUserInfo() {
final Object userObject = request.getSession().getAttribute(SysConstant.INIT_FIELD_USER_VO);
if (PublicUtils.isNotBlank(userObject))
return (UserLoginVo) userObject;
throw new BusinessException("login", "身份信息已过期,请重新登录");
}
public int getUserId() {
return getUserInfo().getId();
}
}
package top.beansprout.health.controller;
import java.util.Date;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import top.beansprout.health.model.dto.BodyInfoQuery;
import top.beansprout.health.model.dto.BodyInfoSaveDto;
import top.beansprout.health.model.vo.R;
import top.beansprout.health.service.HealthService;
/**
* <p>Title: HealthController</p>
* <p>Description: 健康管理接口</p>
*
*/
@Controller
@RequestMapping("/health")
public class HealthController extends BaseController {
@Autowired
private HealthService healthService;
// 保存身体信息
@ResponseBody
@PostMapping("/saveBodyInfo")
public R saveBodyInfo(@RequestBody @Valid BodyInfoSaveDto bodyInfoSaveDto) {
healthService.saveBodyInfo(getUserId(), bodyInfoSaveDto);
return R.okAsAjax();
}
// 身体信息列表
@ResponseBody
@GetMapping("/bodyInfoList")
public R bodyInfoList(@Valid BodyInfoQuery bodyInfoQuery) {
return R.okAsAjax(healthService.bodyInfoList(getUserId(), bodyInfoQuery));
}
// 删除身体信息
@ResponseBody
@DeleteMapping("/{id}")
public R saveBodyInfo(@PathVariable int id) {
healthService.deleteBodyInfo(getUserId(), id);
return R.okAsAjax();
}
// 获取身体信息
@ResponseBody
@GetMapping("/{id}")
public R getBodyInfo(@PathVariable int id) {
return R.okAsAjax(healthService.getBodyInfo(getUserId(), id));
}
// 身体信息统计
@ResponseBody
@GetMapping("/bodyInfoStatistics")
public R bodyInfoStatistics(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
return R.okAsAjax(healthService.getBodyStatistics(getUserId(), date));
}
}
package top.beansprout.health.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
/**
* <p> Title: PageController </p>
* <p> Description: 页面管理</p>
*
*/
@Controller
public class PageController {
// 根页面
@GetMapping("/")
public String rootView() {
return "redirect:/login";
}
// 登录页面
@GetMapping("/login")
public String loginView() {
return "../../index";
}
// 注册页面
@GetMapping("/register")
public String registerView() {
return "register";
}
// 主页面
@GetMapping("/home")
public String homeView() {
return "home";
}
// 用户信息页面
@GetMapping("/userInfo")
public String userInfoView() {
return "userInfo";
}
// 用户信息页面
@GetMapping("/updatePassword")
public String updatePasswordView() {
return "updatePassword";
}
// 用户身体信息录入页面
@GetMapping("/bodyInfoInput")
public String bodyInfoInputView() {
return "bodyInfoInput";
}
// 用户身体信息列表页面
@GetMapping("/bodyInofList")
public String bodyInofListView() {
return "bodyInofList";
}
// 用户身体信息统计页面
@GetMapping("/bodyInofStatistics")
public String bodyInofStatisticsView() {
return "bodyInofStatistics";
}
}
package top.beansprout.health.controller;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import top.beansprout.health.model.dto.UserLoginDto;
import top.beansprout.health.model.dto.UserRegisterDto;
import top.beansprout.health.model.dto.UserUpdateInfoDto;
import top.beansprout.health.model.dto.UserUpdatePasswordDto;
import top.beansprout.health.model.vo.R;
import top.beansprout.health.service.UserService;
/**
* <p>Title: UserController</p>
* <p>Description: 用户管理接口</p>
*
*/
@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
@Autowired
private UserService userService;
// 登录
@ResponseBody
@PostMapping("/login")
public R login(@Valid UserLoginDto userLoginDto) {
return R.okAsAjax(userService.login(userLoginDto));
}
// 注册
@ResponseBody
@PostMapping("/register")
public R register(@Valid UserRegisterDto userRegisterDto) {
userService.register(userRegisterDto);
return R.okAsAjax();
}
// 登出
@GetMapping("/logout")
public String logout(HttpServletRequest request) {
userService.logout(request);
return "redirect:/login?target=redirect";
}
// 修改密码
@ResponseBody
@PutMapping("/updatePassword")
public R updatePassword(HttpServletRequest request, @RequestBody @Valid UserUpdatePasswordDto updatePasswordDto) {
userService.updatePassword(request, getUserId(), updatePasswordDto);
return R.okAsAjax();
}
// 修改用户信息
@ResponseBody
@PostMapping(value = "/updateUserInfo", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R updateUserInfo(@Valid UserUpdateInfoDto userUpdateInfoDto) {
return R.okAsAjax(userService.updateUserInfo(getUserId(), userUpdateInfoDto));
}
}
五,项目总结
本项目实现,简洁大方,主要完成个人健康状况申报功能,适合做课设或作业使用
|