大家好,欢迎来到IT知识分享网。
博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档⚠️文末联系方式获取完整资料⚠️
4 系统的设计
4.1 系统总功能模块设计
体检中心健康体检管理系统分三大部分,即管理员管理、体检医师管理和参检人员管理。系统按照用户的实际需求开发而来,贴近生活。从管理员出拿到分配好的账号密码可以进入系统,使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。
系统整体模块设计:系统分为管理员、体检医师和参检人员三大用户角色,系统管理员有最大的权限,整体功能展示如图4-1所示。
图4-1 系统整体功能图
4.2 系统数据库设计
4.2.1 数据库系统概要设计
从设计到制作研发一个系统,需要用到的技术很多,对于开发程序语言、数据库和框架布局都有严格的要求[5]。该系统数据存放使用MySql的数据库,该数据库轻便快速,日常使使用系统十分稳定,更容易维护运行[6]。
4.2.2 E-R模型结构设计
E-R图由实体与有关实体关联相结合构成的图,利用E-R图对清楚地表达出系统内的实体之间的关联。在系统中对一些主要的几个关键实体如下图。
(1) 体检套餐实体属性图如下图4-2所示。
图4-2体检套餐实体属性图
(2) 体检进程实体属性图如下图4-3所示。
图4-3体检进程实体属性图
(3) 公告信息实体属性图如下图4-4所示。
图4-4公告信息实体属性图
(4) 体检预约实体属性图如下图4-5所示。
图4-5体检预约实体属性图
4.3数据表设计
系统创建数据库和表之间关联,期间花费了不少时间,尽力把表格完善,更好的呈现出来,让表更加明了,更加清晰。系统在MySql的可视化软件Navicat premium创建的数据表,简洁明了的设计让数据库的创建操作更加快捷,数据表的详细情况如下表所示。
表4-1:体检套餐
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
tijianxiangmu |
varchar |
200 |
体检项目 |
||
|
tijiandidian |
varchar |
200 |
体检地点 |
||
|
tijiandanwei |
varchar |
200 |
体检单位 |
||
|
taocanjiage |
int |
套餐价格 |
|||
|
keyuerenshu |
int |
可约人数 |
|||
|
tijianneirong |
longtext |
体检内容 |
|||
|
tijianliucheng |
longtext |
体检流程 |
|||
|
taocantupian |
longtext |
套餐图片 |
|||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
clicktime |
datetime |
最近点击时间 |
表4-2:体检进程
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
tijianxiangmu |
varchar |
200 |
体检项目 |
||
|
tijiandidian |
varchar |
200 |
体检地点 |
||
|
yonghuzhanghao |
varchar |
200 |
用户账号 |
||
|
yonghuxingming |
varchar |
200 |
用户姓名 |
||
|
shoujihaoma |
varchar |
200 |
手机号码 |
||
|
tijianjieguo |
longtext |
体检结果 |
|||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
表4-3:关于我们
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
title |
varchar |
200 |
标题 |
||
|
subtitle |
varchar |
200 |
副标题 |
||
|
content |
longtext |
内容 |
|||
|
picture1 |
longtext |
图片1 |
|||
|
picture2 |
longtext |
图片2 |
|||
|
picture3 |
longtext |
图片3 |
表4-4:公告信息
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
title |
varchar |
200 |
标题 |
||
|
introduction |
longtext |
简介 |
|||
|
picture |
longtext |
图片 |
|||
|
content |
longtext |
内容 |
表4-5:配置文件
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
name |
varchar |
100 |
配置参数名称 |
||
|
value |
varchar |
100 |
配置参数值 |
表4-6:参检人员
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
yonghuzhanghao |
varchar |
200 |
用户账号 |
||
|
yonghuxingming |
varchar |
200 |
用户姓名 |
||
|
mima |
varchar |
200 |
密码 |
||
|
xingbie |
varchar |
200 |
性别 |
||
|
touxiang |
longtext |
头像 |
|||
|
shoujihaoma |
varchar |
200 |
手机号码 |
||
|
youxiang |
varchar |
200 |
邮箱 |
表4-7:用户表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
username |
varchar |
100 |
用户名 |
||
|
password |
varchar |
100 |
密码 |
||
|
role |
varchar |
100 |
角色 |
管理员 |
|
|
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
表4-8:token表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
userid |
bigint |
用户id |
|||
|
username |
varchar |
100 |
用户名 |
||
|
tablename |
varchar |
100 |
表名 |
||
|
role |
varchar |
100 |
角色 |
||
|
token |
varchar |
200 |
密码 |
||
|
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
||
|
expiratedtime |
timestamp |
过期时间 |
CURRENT_TIMESTAMP |
表4-9:体检预约
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
tijianxiangmu |
varchar |
200 |
体检项目 |
||
|
taocantupian |
longtext |
套餐图片 |
|||
|
tijianneirong |
longtext |
体检内容 |
|||
|
tijiandanwei |
varchar |
200 |
体检单位 |
||
|
taocanjiage |
float |
套餐价格 |
|||
|
keyuerenshu |
int |
可约人数 |
|||
|
zongjine |
float |
总金额 |
|||
|
tijiandidian |
varchar |
200 |
体检地点 |
||
|
yonghuzhanghao |
varchar |
200 |
用户账号 |
||
|
yonghuxingming |
varchar |
200 |
用户姓名 |
||
|
shoujihaoma |
varchar |
200 |
手机号码 |
||
|
yuyueshijian |
datetime |
预约时间 |
|||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
sfsh |
varchar |
200 |
是否审核 |
待审核 |
|
|
shhf |
longtext |
审核回复 |
|||
|
ispay |
varchar |
200 |
是否支付 |
未支付 |
表4-10:体检医师
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
主键 |
主键 |
||
|
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
|
zhanghao |
varchar |
200 |
账号 |
||
|
xingming |
varchar |
200 |
姓名 |
||
|
mima |
varchar |
200 |
密码 |
||
|
xingbie |
varchar |
200 |
性别 |
||
|
shoujihaoma |
varchar |
200 |
手机号码 |
||
|
youxiang |
varchar |
200 |
邮箱 |
以上就是体检中心健康体检管理系统中重点使用的关键数据库表格,表格全部展示过于杂乱,选取重点表格展示。
5.1系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:
图5-1 系统首页界面
系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册页面如图5-2所示:
图5-2系统注册页面
体检套餐:在体检套餐页面的输入栏中输入体检项目和体检地点进行查询,可以查看到体检套餐详细信息,并根据需要进行预约操作;体检套餐页面如图5-3所示:
图5-3体检套餐详细页面
个人中心:在个人中心页面输入个人信息可以进行更新信息操作;如图5-4所示:
图5-4 个人中心界面
后台管理,参检人员注册登录进入系统前台,点击后台管理可以对个人中心、体检预约管理、体检进程管理等进行操作。参检人员后台管理主页面如图5-5所示:
图5-5 参检人员后台管理主界面
5.2后台模块实现
后台登录,在登录页面选择角色,正确输入用户名和密码后,点击登录进入操作系统进行操作;如图5-6所示。
图5-6 后台登录界面
JAVA后端代码实现
package com.controller; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; 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.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.TokenEntity; import com.entity.UserEntity; import com.service.TokenService; import com.service.UserService; import com.utils.CommonUtil; import com.utils.MD5Util; import com.utils.MPUtil; import com.utils.PageUtils; import com.utils.R; import com.utils.ValidatorUtils; / * 登录相关 */ @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 captcha, HttpServletRequest request) { UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); 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); } / * 注册 */ @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(""); userService.update(user,null); return R.ok("密码已重置为:"); } / * 列表 */ @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("/list") public R list( UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew)); } / * 信息 */ @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){ Long id = (Long)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); UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())); if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) { return R.error("用户名已存在。"); } userService.updateById(user);//全部更新 return R.ok(); } / * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ userService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } }
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~👇下方有我的微信名片👇
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/115149.html











