113 基于ssm+jsp的中医问诊系统

功能大致

该系统为用户找到医院预约挂号信息提供了更安全、更高效、更便捷的途径。本系统有三个角色:管理员、医生和用户,要求具备以下功能:

(1)用户可以浏览首页了解基于SSM框架实现的中医问诊系统信息,并进行专家医生、新闻公告、留言板、个人中心、后台管理等操作;

image-20241120195311302

(2)管理员通过后台管理员界面,实现对个人中心,用户管理,医生管理,专家医生管理,科室管理,挂号信息管理,取消挂号管理,就诊记录管理,留言板,系统管理让用户实时知道最新的基于SSM框架实现的中医问诊系统信息;

image-20241120195326513

(3)医生通过后台管理员界面,实现对个人中心,专家医生管理、挂号信息管理、取消挂号管理、就诊记录管理、咨询信息管理等功能管理;

image-20241120195339068

系统总体结构图

image-20241120195410080

技术栈

  1. 开发语言:Java
  2. 框架:ssm+jsp
  3. JDK版本:JDK1.8
  4. 服务器:tomcat9
  5. 数据库:mysql 5.7(一定要5.7版本+)
  6. 数据库工具:Navicat11
  7. 开发软件:eclipse/myeclipse/idea
  8. Maven包:Maven3.3.9
  9. 浏览器:谷歌浏览器

演示视频

进入B站观看画面更清晰基于ssm+jsp的中医问诊系统

系统部分截图

系统功能实现

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到基于SSM框架实现的中医问诊系统的导航条。

image-20241120195614367

在用户注册页面的输入用户注册信息进行注册操作。

image-20241120195628162

在专家医生页面选择医生姓名、职称和排班时间搜索,进入专家医生页面可以查看专家医生详细信息,并进行挂号,咨询,收藏操作;

image-20241120195641580

在新闻公告页面的选择标题进行搜索,进入新闻公告页面可以查看到新闻公告详细信息。

image-20241120195657908

在个人中心页面输入个人信息可以进行更新操作,并在我的收藏页面对收藏的医院预约挂号信息进行详细操作;

image-20241120195708350

管理员模块实现

管理员登录,在登录页面正确输入用户名和密码后,进入操作系统进行操作;

image-20241120195725511

管理员进入主页面,主要功能包括对首页,个人中心,用户管理,医生管理,专家医生管理,科室管理,挂号信息管理,取消挂号管理,就诊记录管理,留言板,系统管理等进行操作。

image-20241120195742827

管理员点击专家医生管理。进入专家医生列表输入医生姓名、职称、排班时间可以查询和批量删除专家医生信息,并进行查看,修改、查看评论和删除等操作。

image-20241120195752718

管理员点击医生管理。进入医生列表输入医生工号、医生姓名、职称可以查询,添加或批量删除医生信息,并进行医生排班、查看,修改和删除等操作。

image-20241120195805921

管理员点击取消挂号管理。进入取消挂号列表输入医生姓名、用户姓名、审核状态可以查询或批量删除取消挂号信息,并进行查看,修改和删除等操作。

image-20241120195818112

医生模块实现

医生进入主页面,主要功能包括对首页,个人中心,专家医生管理、挂号信息管理、取消挂号管理、就诊记录管理、咨询信息管理等进行操作。

image-20241120195837531

用户模块实现

用户进入主页面,主要功能包括对首页,个人中心,挂号信息管理,取消挂号管理,就诊记录管理,咨询信息管理等进行操作。

image-20241120195856153

以上是部分截图,详细的请看演示视频。

源码展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UsersController{

@Autowired
private UsersService userService;

@Autowired
private TokenService tokenService;

/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().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 UsersEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UsersEntity>().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){
UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().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,UsersEntity user){
EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
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( UsersEntity user){
EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}

/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UsersEntity 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");
UsersEntity user = userService.selectById(id);
return R.ok().put("data", user);
}

/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UsersEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}

/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UsersEntity user){
// ValidatorUtils.validateEntity(user);
UsersEntity u = userService.selectOne(new EntityWrapper<UsersEntity>().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();
}
}