• Java项目:springboot+vue大学生健康档案管理系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    大学生健康档案管理系统,目前演示数据中主要包括三种角色:管理员、医生、学生;其中管理员包含最高权限;可对体检表,健康文档,体检数据图标展示等进行管理,以及权限管理,指定不同科室医生进行不同的操作。此项目为前后端分离项目,后端API接口为SpringBoot项目;前端为vue项目;

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
    5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
    6.数据库:MySql 8.0版本;

    软件架构说明

    - springboot
    - mysql 8.0及以上
    - mybatis
    - jpa
    - swagger-ui

    - lombok 注:必须安装

    安装教程

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 将项目中application.yml配置文件中的数据库配置改为自己的配置

    3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行后端项目;

    配合前端项目

    1.运行 npm install

    2.在运行 npm run serve 即可
    3.运行项目成功后,在浏览器中输入地址:http://localhost:8083 即可登录;
    管理员账号:admin  密码:123456
    外科医生账号:waike 密码:123
    学生账号:631507030104  密码:123

    运行截图

     

     

     

     

     

     

     

     代码相关

    健康文档相关

    1. @Api(description = "健康文档相关接口")
    2. @Controller
    3. @RequestMapping(value = "api/healthDocument")
    4. public class HealthDocumentController extends BaseController {
    5. @Override
    6. @RequiresPermissions("healthDocument:add")
    7. public ResponseEntity save(@RequestBody HealthDocument entity) {
    8. if (entity.getIsPublished()==1){
    9. entity.setPublishData(new Date());
    10. }
    11. return super.save(entity);
    12. }
    13. @Override
    14. @RequiresPermissions("healthDocument:update")
    15. public ResponseEntity update(@RequestBody HealthDocument entity) {
    16. if (entity.getIsPublished()==1){
    17. entity.setPublishData(new Date());
    18. }
    19. return super.update(entity);
    20. }
    21. @Override
    22. @GetMapping(value = "delete/{id}")
    23. @RequiresPermissions("healthDocument:delete")
    24. public ResponseEntity delete(@PathVariable("id") Integer id) {
    25. return super.delete(id);
    26. }
    27. }

    文件上传

    1. @Slf4j
    2. @Api(description = "文件上传接口")
    3. @RestController
    4. @RequestMapping(value = "api/uploadFile")
    5. public class UploadController {
    6. @PostMapping("/upload")
    7. public ResponseEntity uploadLocal(MultipartFile file) throws IOException {
    8. if (Objects.isNull(file)){
    9. throw new MyException(ExceptionEnums.CHOOSE_FILE);
    10. }else {
    11. String fileName = file.getOriginalFilename();
    12. Integer index = fileName.lastIndexOf('.');
    13. String suffix = fileName.substring(index,fileName.length());
    14. System.out.println(suffix);
    15. String start = "";
    16. if ((".png").equals(suffix)){
    17. start = "data:image/png;base64,";
    18. }
    19. if ((".jpg").equals(suffix) || (".jpeg").equals(suffix)){
    20. start = "data:image/jpeg;base64,";
    21. }
    22. InputStream inputStream = file.getInputStream();
    23. OutputStream outputStream = new ByteArrayOutputStream();
    24. new BASE64Encoder().encodeBuffer(inputStream,outputStream);
    25. String key = outputStream.toString();
    26. return ResponseEntity.ok(start+key);
    27. }
    28. }
    29. }

    用户管理控制器

    1. @Slf4j
    2. @Api(description = "用户相关接口")
    3. @Controller
    4. @RequestMapping(value = "api/user")
    5. public class UserController extends BaseController {
    6. @Override
    7. public ResponseEntity save(@RequestBody User entity) {
    8. if (entity.getRoleId() == null){
    9. entity.setRoleId(2);
    10. }
    11. if (entity.getUsername() == null){
    12. entity.setUsername(entity.getStuNo());
    13. }
    14. if (entity.getPassword()==null){
    15. entity.setPassword("123");
    16. }
    17. if (StringUtils.isBlank(entity.getUsername())){
    18. throw new MyException(ExceptionEnums.ADD_ERROR);
    19. }
    20. if (this.service.findByUsername(entity.getUsername())!=null){
    21. throw new MyException(ExceptionEnums.ACCOUNT_IS_EXIT);
    22. }
    23. entity.setPassword(MD5Utils.encrypt(entity.getUsername(), entity.getPassword()));
    24. return super.save(entity);
    25. }
    26. @Override
    27. public ResponseEntity update(@RequestBody User entity) {
    28. if (this.service.selectByKey(entity.getId()).getPassword().equals(entity.getPassword())){
    29. return super.update(entity);
    30. }else {
    31. entity.setPassword(MD5Utils.encrypt(entity.getUsername(), entity.getPassword()));
    32. return super.update(entity);
    33. }
    34. }
    35. @PostMapping("/updateUser")
    36. public ResponseEntity updateUserName(@RequestBody User entity){
    37. Subject subject = SecurityUtils.getSubject();
    38. User user = (User) subject.getPrincipal();
    39. if (this.service.findByUsername(entity.getUsername())!=null && !entity.getUsername().equals(user.getUsername())){
    40. throw new MyException(ExceptionEnums.ACCOUNT_IS_EXIT);
    41. }
    42. if (this.service.selectByKey(entity.getId()).getPassword().equals(entity.getPassword())){
    43. return super.update(entity);
    44. }else {
    45. entity.setPassword(MD5Utils.encrypt(entity.getUsername(), entity.getPassword()));
    46. return super.update(entity);
    47. }
    48. }
    49. @Override
    50. @GetMapping(value = "delete/{id}")
    51. public ResponseEntity delete(@PathVariable("id")Integer id) {
    52. return super.delete(id);
    53. }
    54. @ApiOperation(value = "用户登录接口")
    55. @RequestMapping("login")
    56. public ResponseEntity login(@RequestBody User entity, HttpServletRequest request){
    57. UsernamePasswordToken token = new UsernamePasswordToken(entity.getUsername(), entity.getPassword());
    58. Subject subject = SecurityUtils.getSubject();
    59. try {
    60. subject.login(token);
    61. User user = (User) subject.getPrincipal();
    62. return ResponseEntity.ok(user);
    63. } catch (Exception e) {
    64. log.info("登陆失败:"+e.getMessage());
    65. throw e;
    66. }
    67. }
    68. @ApiOperation(value = "用户注销接口")
    69. @GetMapping("/loginOut")
    70. public ResponseEntity loginOut(){
    71. Subject subject = SecurityUtils.getSubject();
    72. if (subject!=null){
    73. subject.logout();
    74. }
    75. return ResponseEntity.ok("退出登录");
    76. }
    77. @ApiOperation(value = "获取所有相应角色用户")
    78. @GetMapping("/getAllStudent/{roleId}")
    79. public ResponseEntity> getAllStudent(@PathVariable("roleId") String roleId){
    80. Example example = new Example(User.class);
    81. example.createCriteria().andEqualTo("roleId",roleId);
    82. List users = this.service.selectByExample(example);
    83. return ResponseEntity.ok(users);
    84. }
    85. }

    如果也想学习本系统,下面领取。回复:004springboot 

  • 相关阅读:
    Socks5代理IP在跨境电商与游戏中的应用
    信息系统项目管理师(项目管理师)
    浅谈数据治理中的智能数据目录
    46从零开始用Rust编写nginx,数据还能这么传,多层代理(IP多级代理)搭建
    Java:get请求下字符串异常问题
    重新定义公共厕所,智慧公厕最新解决方案与推广路径
    Zynq-Linux移植学习笔记之66- 国产ZYNQ通过裕太PHY8521连接国产交换芯片
    macOS Ventura 13.5.1 上 lrzsz无法使用的问题
    reportportal 集成 robotframework 自动化执行及结果可视化
    中文人物关系知识图谱(含码源):中文人物关系图谱构建、数据回标、基于远程监督人物关系抽取、知识问答等应用.
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125985010