项目简述:
功能:
本系统共分为三个角色:系统管理员、医生、用户
功能模块:系统管理-用户管理、页面管理、角色管理
接诊人管理-接诊人列表、接诊人健康史
预约管理-预约时间、医生时间
日常健康-健康指南、健康监测、健康标准
接诊人档案
医院管理
项目运行:
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +SpringBoot + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
预约记录相关数据接口:
@Api(tags = "预约记录相关数据接口")
@CrossOrigin
@RestController
@RequestMapping("/yuyue")
public class YuyueController {
@Autowired
private IYuyueService iYuyueService;
@Autowired
private UserService userService;
@Autowired
private IJiezhongdianService jiezhongdianService;
@ApiOperation("分页获取疫苗记录的信息")
@CrossOrigin
@RequestMapping(value = "/pageQuery",method = {RequestMethod.POST,RequestMethod.GET})
public DataVo<Iyuyue> pageQuery(String user, Integer page, Integer limit){
//如果起始页为空则默认为第一页
if(page==null)page=1;
//如果每页数为空则默认为10条数据
if(limit==null)limit=10;
//分页插件
Page<Yuyue> districtPage =new Page<>();
//将每页数设置进去
districtPage.setSize(limit);
//将起始页设置进去
districtPage.setCurrent(page);
//针对预约表查询
QueryWrapper<Yuyue> qw =new QueryWrapper<>();
//从用户表查询出搜索栏中的用户集合
QueryWrapper<User> qwUser = new QueryWrapper<>();
if (!StringUtils.isEmpty(user)) {
qwUser.like("real_name", user);
List<User> list = userService.list(qwUser);
//这里是将查询出来的接种者集合遍历出来id,再去预约表中查询userID,将userID作为条件在预约表中查询
for (int i = 0; i < list.size(); i++) {
Long id = list.get(i).getId();
qw.eq("user_id", id);
}
}
// qw.orderByAsc("code");// 按照编码的升序显示;
districtPage = iYuyueService.page(districtPage,qw);
//将查询出来的预约记录导入list中
List<Yuyue> records = districtPage.getRecords();
//将上面的记录进行封装,实体类为vo中的Iyuyue
List<Iyuyue> iyuyues=new ArrayList<>();
for (int i=0;i<records.size();i++){
//创建一个Iyuyue对象,对数据进行封装
Iyuyue iyuyue = new Iyuyue();
iyuyue.setId(records.get(i).getId());
//从用户表中查询用户,通过预约表中的用户ID
User byId = userService.getById(records.get(i).getUserId());
iyuyue.setUser(byId.getRealName());
//从接种点表中查询出接种点信息,通过预约表中的接种点ID
Jiezhongdian byId1 = jiezhongdianService.getById(records.get(i).getJiezhongdianId());
iyuyue.setJiezhongdianName(byId1.getName());
iyuyue.setJiezhongdianAddress(byId1.getAddress());
iyuyue.setYuyueriqi(records.get(i).getYuyueriqi());
iyuyue.setStatus(records.get(i).getStatus());
iyuyue.setQrCodePath(records.get(i).getQrCodePath());
iyuyues.add(iyuyue);
}
DataVo<Iyuyue> dataVo =new DataVo<>();
dataVo.setMsg("成功获取数据");
dataVo.setCode(0);
dataVo.setCount((int) districtPage.getTotal());
dataVo.setData(iyuyues);
return dataVo;
}
// @ApiOperation("分页获取疫苗记录的信息")
// @CrossOrigin
// @RequestMapping(value = "/pageQuery",method = {RequestMethod.POST,RequestMethod.GET})
// public DataVo<Yuyue> pageQuery(LocalDateTime yuyueriqi, Integer page, Integer limit){
// if(page==null)page=1;
// if(limit==null)limit=10;
// Page<Yuyue> districtPage =new Page<>();
// districtPage.setSize(limit);
// districtPage.setCurrent(page);
// QueryWrapper<Yuyue> qw =new QueryWrapper<>();
// if(yuyueriqi != null){
// qw.eq("yuyueriqi",yuyueriqi);
// }
qw.orderByAsc("code");// 按照编码的升序显示;
// districtPage = iYuyueService.page(districtPage,qw);
// DataVo<Yuyue> dataVo =new DataVo<>();
// dataVo.setMsg("成功获取数据");
// dataVo.setCode(0);
// dataVo.setCount((int) districtPage.getTotal());
// dataVo.setData(districtPage.getRecords());
// return dataVo;
// }
}
疫苗相关数据接口:
@Api(tags = "疫苗相关数据接口")
@CrossOrigin
@RestController
@RequestMapping("/yimiao")
public class YimiaoController {
@Autowired
private IYimiaoService iYimiaoService;
@GetMapping("/findAll")
public Result findAll(){
return Result.ok(iYimiaoService.list());
}
@ApiOperation("分页获取疫苗记录的信息")
@CrossOrigin
@GetMapping("/pageQuery")
public DataVo<Yimiao> pageQuery(String yimiaoZhonglei,Integer page, Integer limit){
if(page==null)page=1;
if(limit==null)limit=10;
Page<Yimiao> districtPage =new Page<>();
districtPage.setSize(limit);
districtPage.setCurrent(page);
QueryWrapper<Yimiao> qw =new QueryWrapper<>();
if(StringUtils.isNotEmpty(yimiaoZhonglei)){
qw.like("yimiao_zhonglei",yimiaoZhonglei);
}
// qw.orderByAsc("code");// 按照编码的升序显示;
districtPage = iYimiaoService.page(districtPage,qw);
DataVo<Yimiao> dataVo =new DataVo<>();
dataVo.setMsg("成功获取数据");
dataVo.setCode(0);
dataVo.setCount((int) districtPage.getTotal());
dataVo.setData(districtPage.getRecords());
return dataVo;
}
@ApiOperation("新增疫苗信息")
@PostMapping("/save")
public Result save(Yimiao yimiao){
try{
iYimiaoService.save(yimiao);
return Result.ok("新增成功");
}catch (Exception e){
e.printStackTrace();
return Result.error("新增失败:"+e.getMessage());
}
}
@ApiOperation("修改疫苗信息")
@PostMapping("/update")
public Result update(Yimiao yimiao){
try{
iYimiaoService.updateById(yimiao);
return Result.ok("修改成功");
}catch (Exception e){
e.printStackTrace();
return Result.error("修改失败:"+e.getMessage());
}
}
@ApiOperation("删除疫苗信息")
@GetMapping("/del/{id}")
public Result del(@PathVariable Long id){
try{
System.out.println(id);
System.out.println(iYimiaoService.removeById(id));
return Result.ok("删除成功");
}catch (Exception e){
e.printStackTrace();
return Result.error("删除失败:"+e.getMessage());
}
}
}
接种者用户管理相关接口:
@Api(tags="接种者用户管理相关接口")
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@Autowired
private IYuyueService iYuyueService;
@Autowired
private IJiezhongService iJiezhongService;
// 接种人员注册
@PostMapping("/register")
@ApiOperation("用户注册")
public Result register(@RequestBody User user){
try{
if(StringUtils.isEmpty(user.getUsername()))
user.setUsername(user.getPhone());// 手机号码作为登录账号
userService.register(user);
return Result.ok("注册成功");
}catch (Exception e){
return Result.error("注册失败");
}
}
/**
* 预约
* @param yuyue
* @param token
* @return
*/
@ApiOperation("预约登记")
@PostMapping("/yuyue")
public Result yuyue(@RequestBody Yuyue yuyue, @RequestHeader("x-token") String token){
// 获取 token 中的 user Name
try {
String userId = JwtUtils.getAudience(token);
yuyue.setUserId(Integer.parseInt(userId));// 设置预约人
// yuyue.setYuyueriqi(LocalDate.now());
yuyue.setStatus(0);// 0表示未完成;1表示已完成;
iYuyueService.yuyue(yuyue);
return Result.ok("添加历史成功");
}catch (TokenUnavailable e){
Result result = Result.error("验证失败:"+e.getMessage());
result.setCode(501);
return result;
}catch (Exception e){
return Result.error("发生错误:"+e.getMessage());
}
}
@ApiOperation("获取接种人员预约记录")
@GetMapping(value = "/findMyYuyues")
public Result findMyYuyues( @RequestHeader("x-token") String token){
try{
String userId = JwtUtils.getAudience(token);
QueryWrapper<Yuyue> qw =new QueryWrapper<>();
qw.eq("user_id",Integer.parseInt(userId));
qw.orderByDesc("yuyueriqi");
return Result.ok(iYuyueService.list(qw));
}catch (TokenUnavailable e){
Result result = Result.error("验证失败:"+e.getMessage());
result.setCode(501);
return result;
}catch (Exception e){
return Result.error("发生错误:"+e.getMessage());
}
}
@ApiOperation("获取接种人员接种记录")
@GetMapping(value = "/findMyJiezhong")
public Result findMyJiezhong( @RequestHeader("x-token") String token){
try{
String userId = JwtUtils.getAudience(token);
QueryWrapper<Jiezhong> qw =new QueryWrapper<>();
qw.eq("jiezhongren",Integer.parseInt(userId));
qw.orderByDesc("create_time");
return Result.ok(iJiezhongService.list(qw));
}catch (TokenUnavailable e){
Result result = Result.error("验证失败:"+e.getMessage());
result.setCode(501);
return result;
}catch (Exception e){
return Result.error("发生错误:"+e.getMessage());
}
}
/**
*分页查询
* @param page 当前页码
* @param limit 最大记录数
* @return 分页结果
*/
@ApiOperation(value = "分页获取所有用户")
@PostMapping("/list")
@CrossOrigin
public DataVo list(@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer limit){
Page<User> p1 = new Page<>();
p1.setCurrent(page);//当前页
p1.setSize((long)limit);//每页最多条数
Page<User> page1 = userService.page(p1);
page1.getRecords().forEach(s-> System.out.println(s.toString()));
DataVo dataVo=new DataVo();
dataVo.setCode(0);
dataVo.setMsg("成功");
dataVo.setCount((int)page1.getTotal());
dataVo.setData(page1.getRecords());
// Result.ok(page1.getRecords()).setCode(0);
return dataVo;
}
///
@ApiOperation(value = "添加用户")
@PostMapping("/save")
@CrossOrigin
public String sava1(User user){
//调用service
try {
boolean save = userService.save(user);
return "ok";
}catch (Exception e){
return "错误:"+e.getMessage();
}
}
/**
* 更新用户信息方法
* 注意点:
* 1.账号唯一
* 2.密码长度2-12
*
* @param admin
* @return 执行结果
*/
@ApiOperation(value = "更新用户信息")
@PostMapping("/update")
@CrossOrigin
public String update1(User admin){
//调用service
try {
boolean save = userService.updateById(admin);
return "ok";
}catch (Exception e){
return "错误:"+e.getMessage();
}
}
/**
* 删除用户
* @param id 用户id
* @return 执行结果
*/
@ApiOperation(value = "删除用户")
@GetMapping("/delate")
@CrossOrigin
public String delate1(int id){
//调用service
try {
boolean b = userService.removeById(id);
System.out.println(b);
if (b){
return "ok";
}else {
return "no";
}
}catch (Exception e){
return "错误:"+e.getMessage();
}
}
// // 登录(不验证)
// @CrossOrigin(origins = "*")
// @PassToken(required = false)
// @RequestMapping(value = "/validate", method = RequestMethod.POST)
// public Result validate(@RequestBody UserToken userToken) {
// System.out.println(">>>" + userToken);
// try {
// // 获取 token 中的 user Name
// String userType = JwtUtils.getClaimByName(userToken.getToken(),"userType").asString();
// if(!"jiezhongzhe".equals(userType)){
// throw new RuntimeException("用户的身份不符");
// }
// String userId = JwtUtils.getAudience(userToken.getToken());
// System.out.println(">>>" + userId);
// JwtUtils.verifyToken(userToken.getToken(), userId);
// return Result.ok("验证成功");
// } catch (Exception e) {
// Result result = Result.error("验证失败");
// result.setCode(510);
// return result;
// }
//
// }
}