功能大致
该系统为用户找到医院预约挂号信息提供了更安全、更高效、更便捷的途径。本系统有三个角色:管理员、医生和用户,要求具备以下功能:
(1)用户可以浏览首页了解基于SSM框架实现的中医问诊系统信息,并进行专家医生、新闻公告、留言板、个人中心、后台管理等操作;
(2)管理员通过后台管理员界面,实现对个人中心,用户管理,医生管理,专家医生管理,科室管理,挂号信息管理,取消挂号管理,就诊记录管理,留言板,系统管理让用户实时知道最新的基于SSM框架实现的中医问诊系统信息;
(3)医生通过后台管理员界面,实现对个人中心,专家医生管理、挂号信息管理、取消挂号管理、就诊记录管理、咨询信息管理等功能管理;
系统总体结构图
技术栈
- 开发语言:Java
- 框架:ssm+jsp
- JDK版本:JDK1.8
- 服务器:tomcat9
- 数据库:mysql 5.7(一定要5.7版本+)
- 数据库工具:Navicat11
- 开发软件:eclipse/myeclipse/idea
- Maven包:Maven3.3.9
- 浏览器:谷歌浏览器
演示视频
进入B站观看画面更清晰:基于ssm+jsp的中医问诊系统
系统部分截图
系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到基于SSM框架实现的中医问诊系统的导航条。
在用户注册页面的输入用户注册信息进行注册操作。
在专家医生页面选择医生姓名、职称和排班时间搜索,进入专家医生页面可以查看专家医生详细信息,并进行挂号,咨询,收藏操作;
在新闻公告页面的选择标题进行搜索,进入新闻公告页面可以查看到新闻公告详细信息。
在个人中心页面输入个人信息可以进行更新操作,并在我的收藏页面对收藏的医院预约挂号信息进行详细操作;
管理员模块实现
管理员登录,在登录页面正确输入用户名和密码后,进入操作系统进行操作;
管理员进入主页面,主要功能包括对首页,个人中心,用户管理,医生管理,专家医生管理,科室管理,挂号信息管理,取消挂号管理,就诊记录管理,留言板,系统管理等进行操作。
管理员点击专家医生管理。进入专家医生列表输入医生姓名、职称、排班时间可以查询和批量删除专家医生信息,并进行查看,修改、查看评论和删除等操作。
管理员点击医生管理。进入医生列表输入医生工号、医生姓名、职称可以查询,添加或批量删除医生信息,并进行医生排班、查看,修改和删除等操作。
管理员点击取消挂号管理。进入取消挂号列表输入医生姓名、用户姓名、审核状态可以查询或批量删除取消挂号信息,并进行查看,修改和删除等操作。
医生模块实现
医生进入主页面,主要功能包括对首页,个人中心,专家医生管理、挂号信息管理、取消挂号管理、就诊记录管理、咨询信息管理等进行操作。
用户模块实现
用户进入主页面,主要功能包括对首页,个人中心,挂号信息管理,取消挂号管理,就诊记录管理,咨询信息管理等进行操作。
以上是部分截图,详细的请看演示视频。
源码展示
/**
* 登录相关
*/
@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();
}
}