首页 > 数据库 >Java项目:师生健康信息管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

Java项目:师生健康信息管理系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)

时间:2025-01-04 09:31:21浏览次数:9  
标签:Vue return elementui ResultVo user userService java public User

 源码获取:俺的博客首页 "资源" 里下载!

项目介绍
springboot师生健康信息管理系统


环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;

技术栈
后端:SpringBoot+Mybaits
前端:Vue + elementui

使用说明
项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入地址:
前台地址:http://localhost:8080/springbootrpj39/front/index.html

后台地址
http://localhost:8080/springbootrpj39/admin/dist/index.html
管理员 abo 密码 abo
用户:用户1 密码: 123456

注意项目文件路径中不能含有中文、空格、特殊字符等,否则图片会上传不成功。

 

 

 

 

 

 

 

医生管理控制层:

/**
 *
 * @author:yy
 */
package vip.penint.dandp.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import vip.penint.dandp.entity.User;
import vip.penint.dandp.service.IUserService;
import vip.penint.dandp.utils.MD5Util;
import vip.penint.dandp.utils.QueryRequest;
import vip.penint.dandp.utils.ResultVo;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;


@RestController
@RequestMapping("/adminApi/doctor")
public class DoctorController {

    @Autowired
    private IUserService userService;

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, User user) {
        return ResultVo.oK(userService.queryDoctorFuzz(queryRequest, user));
    }

    /**
     * 修改账户状态,禁用或者取消
     *
     * @param user
     * @param request
     * @return
     */
    @PutMapping("/changeStatus")
    public ResultVo changeStatus(@RequestBody User user, HttpServletRequest request) {
        userService.updateById(user);
        return ResultVo.oK();
    }

    /**
     * 根据ID查询用户详情
     *
     * @param userId
     * @return
     */
    @GetMapping("/{userId}")
    public ResultVo getUserInfo(@PathVariable Integer userId) {
        User info = userService.getById(userId);
        return ResultVo.oK(info);
    }


    /**
     * 新增用户
     */
    @PostMapping
    public ResultVo add(@RequestBody User user) {

        // 查询用户名是否存在数据库中
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(User::getUsername, user.getUsername());
        User entity = userService.getOne(lambdaQueryWrapper);
        if (entity == null) {
            user.setCreateTime(new Date());
            // 设置默认密码1234qwer
            user.setPassword(MD5Util.md5("1234qwer"));
            user.setRoleId(1);
            userService.save(user);
            return ResultVo.oK("用户:" + user.getUsername() + "新增成功,默认密码为:" + "1234qwer");
        } else {
            return ResultVo.failed(201, "用户新增失败,用户名:" + user.getUsername() + "已存在");
        }
    }

    /**
     * 删除用户
     */
    @DeleteMapping("/{userIds}")
    public ResultVo remove(@PathVariable Integer[] userIds) {
        for (Integer userId : userIds) {
            userService.removeById(userId);
            return ResultVo.oK();
        }
        return null;
    }

    /**
     * 修改用户
     *
     * @return
     */
    @PutMapping
    public ResultVo edit(@RequestBody User user) {
        user.setModifyTime(new Date());
        userService.updateById(user);
        return ResultVo.oK();
    }

    /**
     * 重置密码
     */
    @PutMapping("/resetPwd")
    public ResultVo reSetPwd(@RequestBody User user) {
        user.setPassword(MD5Util.md5(user.getPassword()));
        userService.updateById(user);
        return ResultVo.oK();
    }

}

登录用户控制层:

/**
 *
 * @author: yy
 */
@RestController
@RequestMapping("/adminApi/common")
public class CommonController {
    @Autowired
    private IUserService userService;

    @Autowired
    private IDepartmentService departmentService;

    @PostMapping("/login")
    public Object adminLogin(String username, String password) {
        User user = userService.selectByUsername(username);
        if (user == null) {
            return ResultVo.failed(201, "账号不存在,请检查账号是否正确或联系管理员");
        } else {
            if (!MD5Util.md5(password).equals(user.getPassword())) {
                return ResultVo.failed(201, "密码错误");
            } else {
                JSONObject obj = new JSONObject();
                obj.put("userInfo", user);
                obj.put("token", TokenUtil.getAdminToken(user));
                return ResultVo.oK(obj);
            }
        }
    }

    @ApiOperation("根据Token获取用户信息")
    @GetMapping("/getUserInfo")
    @AdminLoginToken
    public Object getUserInfo(HttpServletRequest request) {
        User user = userService.getById(TokenUtil.getAdminUserId(request.getHeader("Authorization")));
        if (user == null) {
            return ResultVo.failed(201, "账号不存在,请检查账号是否正确或联系管理员");
        } else {
            JSONObject obj = new JSONObject();
            obj.put("userInfo", user);
            obj.put("token", TokenUtil.getAdminToken(user));
            return ResultVo.oK(obj);
        }
    }

    @ApiOperation("退出登录")
    @GetMapping("/outLogin")
    public Object outLogin() {
        return ResultVo.oK();
    }


    @ApiOperation("文件上传")
    @PostMapping("/file")
    public ResultVo uploadFile(@RequestParam("file") MultipartFile file) {
        String uploadUrl = FileUpload.uploadAccessory(file);
        if (uploadUrl != null && uploadUrl != "") {
            return ResultVo.oK(uploadUrl);
        }
        return ResultVo.failed(500, "失败");
    }


    @PostMapping("/getMeInfo")
    @AdminLoginToken
    public ResultVo getMeInfo(HttpServletRequest request) {
        User user = userService.getById(TokenUtil.getAdminUserId(request.getHeader("Authorization")));
        return ResultVo.oK(user);
    }


    /**
     * 判断库中用户名 有没有被使用
     *
     * @param username
     * @return
     */
    @GetMapping("/checkUsername/{username}")
    public ResultVo checkUsername(@PathVariable String username) {
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(User::getUsername, username);
        if (userService.getOne(lambdaQueryWrapper) != null) {
            return ResultVo.oK(true);
        } else {
            return ResultVo.oK(false);
        }
    }

    /**
     * 判断请求方法的该用户原密码是否正确
     *
     * @param password
     * @return
     */
    @GetMapping("/checkPassword/{password}")
    public ResultVo checkPassword(@PathVariable String password, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        String encrypt = MD5Util.md5(password);// 用户输入的密码加密字符串

        if (userService.getById(userId).getPassword().equalsIgnoreCase(encrypt)) {
            return ResultVo.oK(true);
        } else {
            return ResultVo.oK(false);
        }
    }


    /**
     * 获取科室下拉框
     */
    @GetMapping("/getDepartment")
    public ResultVo getDepartment() {
        LambdaQueryWrapper<Department> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.select(Department::getId, Department::getDepName);
        return ResultVo.oK(departmentService.list(lambdaQueryWrapper));
    }


    /**
     * 通过科室id查询医生
     */
    @GetMapping("/getDoctor/{id}")
    public ResultVo getDoctor(@PathVariable Integer id) {
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.select(User::getNickName, User::getUserId);
        lambdaQueryWrapper.eq(User::getDepId, id);
        return ResultVo.oK(userService.list(lambdaQueryWrapper));
    }


    @PostMapping("/registerDoctor")
    public ResultVo registerStudent(User user) {
        user.setPassword(MD5Util.md5(user.getPassword()));
        user.setCreateTime(new Date());
        user.setRoleId(1);
        userService.save(user);

        return ResultVo.oK();
    }

    @PostMapping("/registerPatients")
    public ResultVo registerTeacher(User user) {
        user.setPassword(MD5Util.md5(user.getPassword()));
        user.setCreateTime(new Date());
        user.setRoleId(2);
        userService.save(user);
        return ResultVo.oK();
    }

    /**
     * 忘记密码
     */
    @PutMapping("/forgotPassword")
    public ResultVo forgotPassword(User sysUser) {

        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(!StringUtils.isEmpty(sysUser.getUsername()), User::getUsername, sysUser.getUsername());
        // 先判断用户名在不在库中
        User user = userService.getOne(lambdaQueryWrapper);
        if (user != null) {
            sysUser.setPassword(MD5Util.md5(sysUser.getPassword()));
            sysUser.setUserId(user.getUserId());
            userService.updateById(sysUser);
            return ResultVo.oK();
        } else {
            return ResultVo.failed(201, "请输入正确的用户名");
        }
    }

    /**
     * 通过用户名查询医生详情,科室
     */
    @GetMapping("/getDoctorInfoByUsername/{username}")
    public ResultVo getDoctorInfoByUsername(@PathVariable String username){
        return ResultVo.oK(userService.getDoctorInfoByUsername(username));
    }

}

用户管理控制层: 

/**
 * <p>
 * 系统用户 前端控制器
 * </p>
 *
 * @author yy
 */
@RestController
@RequestMapping("/adminApi/user")
public class UserController {

    @Autowired
    private IUserService userService;

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, User user) {
        return ResultVo.oK(userService.queryFuzz(queryRequest, user));
    }

    /**
     * 修改账户状态,禁用或者取消
     *
     * @param user
     * @return
     */
    @PutMapping("/changeStatus")
    public ResultVo changeStatus(@RequestBody User user) {
        userService.updateById(user);
        return ResultVo.oK();
    }

    /**
     * 根据ID查询用户详情
     *
     * @param userId
     * @return
     */
    @GetMapping("/{userId}")
    public ResultVo getUserInfo(@PathVariable Integer userId) {
        User info = userService.getById(userId);
        return ResultVo.oK(info);
    }


    /**
     * 新增用户
     */
    @PostMapping
    public ResultVo add(@RequestBody User entity) {
        // 查询用户名是否存在数据库中
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(User::getUsername, entity.getUsername());
        User user = userService.getOne(lambdaQueryWrapper);
        if (user == null) {
            entity.setCreateTime(new Date());
            // 设置默认密码1234qwer
            entity.setPassword(MD5Util.md5("1234qwer"));
            entity.setRoleId(0);
            userService.save(entity);
            // 插入返回ID
            return ResultVo.oK("用户:" + entity.getUsername() + "新增成功,默认密码为:1234qwer");
        } else {
            return ResultVo.failed(201, "用户新增失败,用户名:" + entity.getUsername() + "已存在");
        }
    }

    /**
     * 删除用户
     */
    @DeleteMapping("/{userIds}")
    public ResultVo remove(@PathVariable Integer[] userIds) {
        boolean flag = false;
        for (Integer userId : userIds) {
            User entity = userService.getById(userId);
            if (!entity.getUsername().equals("admin")) {
                userService.removeById(userId);
            } else {
                flag = true;
            }
        }
        if (flag) {
            return ResultVo.failed(201, "admin用户不能删除");
        } else {
            return ResultVo.oK();
        }
    }

    /**
     * 修改用户
     */
    @PutMapping
    public ResultVo edit(@RequestBody User user) {
        userService.updateById(user);
        return ResultVo.oK();
    }

    /**
     * 重置密码
     */
    @PutMapping("/resetPwd")
    public ResultVo reSetPwd(@RequestBody User user) {
        user.setPassword(MD5Util.md5(user.getPassword()));
        userService.updateById(user);
        return ResultVo.oK();
    }


    /**
     * 个人中心配置
     */
    @GetMapping("/profile")
    public ResultVo profile(HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        return ResultVo.oK(userService.getById(userId));
    }

    /**
     * 个人中心配置
     */
    @PutMapping("/profile")
    public ResultVo updateProfile(@RequestBody User user) {
        userService.updateById(user);
        return ResultVo.oK();
    }

    @PutMapping("/profile/updatePwd")
    public ResultVo profileUpdatePwd(QueryRequest queryRequest, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));

        User user = userService.getById(userId);
        if (user.getPassword().equalsIgnoreCase(MD5Util.md5(queryRequest.getOldPassword()))) {
            User u = new User();
            u.setUserId(userId);
            u.setPassword(MD5Util.md5(queryRequest.getNewPassword()));
            userService.updateById(u);
            return ResultVo.oK();
        } else {
            return ResultVo.failed(201, "原密码不正确");
        }
    }

    @PostMapping("/profile/avatar")
    public ResultVo avatarUpload(@RequestParam("avatarfile") MultipartFile file, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        JSONObject result = UploadFileUtils.upload(file);
        if (result.getInteger("status") == 200) {
            if (result.getBoolean("isImage")) {
                User user = new User();
                user.setAvatar(result.getString("requestUrl"));
                user.setUserId(userId);
                userService.updateById(user);
                // 缓存
                return ResultVo.oK(result.getString("requestUrl"));
            } else {
                return ResultVo.failed(201, "不是图片文件");
            }
        } else {
            return ResultVo.failed(201, "文件上传失败,请联系管理员");
        }

    }
}

源码获取:俺的博客首页 "资源" 里下载!

标签:Vue,return,elementui,ResultVo,user,userService,java,public,User
From: https://blog.csdn.net/m0_66863468/article/details/144922584

相关文章

  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘 要本论文主要论述了如何使用SSM框架开发一个网络课程系统,将严格按照软件开发流程进行各个阶段的工作,采用B/S架构Java技术,面向对象编程思想进行项目开发。在引言中,将论述网络课程系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析......
  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设健康饮食推荐系统。本设计主要实现集人性化、高效率、便捷等优点于一身的健康饮......
  • vue基础语法
    1、插值语法<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>插值语法</title><scriptsrc="../vu/js/vue.js"></script></head><body><!--......
  • Easysearch Java SDK 2.0.x 使用指南(三)
    在EasysearchJavaSDK2.0.x使用指南(一)中,我们介绍了EasysearchJavaSDK2.0.2的基本使用和批量操作功能。在EasysearchJavaSDK2.0.x使用指南(二)中,则详细介绍了索引管理相关的功能,包括索引的创建、删除、开关、刷新、滚动等操作,以及新版SDK提供的同步和异步两种调用......
  • 25.Java JUC 引入(进程与线程、线程的状态、并发与并行、管程、用户线程与守护线程)
    一、JUC简介JUC是java.util.concurrent工具包的简称,这是一个处理线程的工具包,从JDK1.5开始出现二、进程与线程1、基本介绍(1)进程进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础在当代面向线程设......
  • 【论文投稿】解锁Vue.js组件开发的神奇密码
    目录一、引言:Vue.js组件化的魅力之源二、初窥门径:组件的基础架构(一)组件的构成要素(二)创建首个Vue组件实例三、进阶之路:组件通信的艺术(一)父子组件间的通信之道(二)兄弟组件与跨层级通信的谋略四、实战演练:打造Vue.js组件库(一)规划组件库架构(二)开发实用组件五、总......
  • java对象与map之间互转操作的八种姿势
    Java将对象转为Map,可以采用的八种操作姿势,按顺序推荐选择,推荐前三势好用又方便。提示:如果Map转换对象失败或为空,取消对象的lombok方式,用set/get方法一势Fastjson操作转换Fastjson阿里巴巴的一个开源JSON库,性能极快,支持JSON与Collection、Map、JavaBean之间的转换,并且......
  • java反射 -2025/1/3
    以下是java.lang.reflect包中的主要类和接口的详细介绍:Class类功能:表示类的对象,提供了获取类信息的方法,如字段、方法、构造函数等。主要方法:getFields():获取所有公共字段。getDeclaredFields():获取所有声明的字段,包括私有字段。getMethods():获取所有公共方法。getDecla......
  • Java 面向对象-封装
    何为封装(Encapsulation)面向对象的开发原则为“高内聚,低耦合”,即类的内部数据操作细节自己完成,不允许外部干涉,仅暴露少量方法给外部调用使用。例如,开车,我们无需懂得油门、离合、变速箱也可以驾驶。封装性本质是解耦(decouple)的表现在JAVA中,实现封装就是控制类或成员的可见范......
  • Java毕业设计基于SpringBoot+Vue甜品店管理系统
    一、项目介绍开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven————————————————二、功能介绍1.高效的用户界面开发1.Vue是一个渐进式JavaScript框架,用于构......