基于javaweb+mysql的springboot医院预约挂号系统(java+springboot+maven+vue+mysql)

基于javaweb+mysql的springboot医院预约挂号系统(java+springboot+maven+vue+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot医院预约挂号系统(java+springboot+maven+vue+mysql)

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。

    /**
     * 修改用户
     *
     * @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();
    }

}
/**
 * 项目名:penint
 *
 */

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

    @Autowired
    private IUserService userService;

    @GetMapping("/list")
     *
     * @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()));
     * @param e
     * @return
     */
    @ResponseBody
    @ExceptionHandler(TokenException.class)
    public Object handleTokenException(TokenException e) {
        String msg = e.getMessage();
        if (msg == null || msg.equals("")) {
            msg = "服务器出错";
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status", 403);
        jsonObject.put("msg", msg);
        return jsonObject;
    }
}

/**
 * <p>
 * 病例表 前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/adminApi/case")
public class CaseController {

    @Autowired
    private ICaseService caseService;

    @Autowired
    private IRegistrationService registrationService;

    @Autowired
     * @return
     */
    @ResponseBody
    @ExceptionHandler(TokenException.class)
    public Object handleTokenException(TokenException e) {
        String msg = e.getMessage();
        if (msg == null || msg.equals("")) {
            msg = "服务器出错";
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status", 403);
        jsonObject.put("msg", msg);
        return jsonObject;
    }
}

/**
 * <p>
 * 病例表 前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/adminApi/case")
public class CaseController {

    @Autowired
    private ICaseService caseService;

    @Autowired
    private IRegistrationService registrationService;

        // 查询用户名是否存在数据库中
        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();
    }

}

/**
 * <p>
 * 问答表 前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/adminApi/questions")
public class QuestionsController {

    @Autowired
    private IQuestionsService questionsService;

    @Autowired
    private UserManager userManager;

    // 患者提问
    @PostMapping("/ask")
    public ResultVo ask(@RequestBody Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        questions.setPatientId(userId);
        questionsService.save(questions);
        return ResultVo.oK();
    }

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        if (userManager.isAdminRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isDoctorRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isPatientsRole(userId)) {
            return ResultVo.oK(questionsService.queryListByPatient(queryRequest, questions, 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(2);
            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
        }
        //检查有没有需要用户权限的注解
        if (method.isAnnotationPresent(AdminLoginToken.class)) {
            AdminLoginToken adminLoginToken = method.getAnnotation(AdminLoginToken.class);
            if (adminLoginToken.required()) {
                // 执行认证
                if (token == null) {
                    throw new TokenException(403, "无token,请重新登录");
                }
                // 获取 token 中的 userId
                int adminUserId = TokenUtil.getAdminUserId(token);
                User adminUser = usersService.getById(adminUserId);
                if (adminUser == null) {
                    throw new TokenException(403, "用户不存在,请重新登录");
                }
                // 验证 token
                JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(TokenUtil.SECRET)).build();
                try {
                    jwtVerifier.verify(token);
                } catch (JWTVerificationException e) {
                    throw new TokenException(403, "token不合法");
                }
            }
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

/**
 * 项目名:penint
        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>
 *
 */
@RestController
@RequestMapping("/adminApi/questions")
public class QuestionsController {

    @Autowired
    private IQuestionsService questionsService;

    @Autowired
    private UserManager userManager;

    // 患者提问
    @PostMapping("/ask")
    public ResultVo ask(@RequestBody Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        questions.setPatientId(userId);
        questionsService.save(questions);
        return ResultVo.oK();
    }

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        if (userManager.isAdminRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isDoctorRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isPatientsRole(userId)) {

@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);

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

/**
 * 项目名:penint
 *
 */

@RestController
@RequestMapping("/adminApi/patiens")
public class PatiensController {

    @Autowired
    private IUserService userService;

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, User user) {
        return ResultVo.oK(userService.queryPatiensFuzz(queryRequest, user));
    @Autowired
    private UserManager userManager;

    // 患者提问
    @PostMapping("/ask")
    public ResultVo ask(@RequestBody Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        questions.setPatientId(userId);
        questionsService.save(questions);
        return ResultVo.oK();
    }

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        if (userManager.isAdminRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isDoctorRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isPatientsRole(userId)) {
            return ResultVo.oK(questionsService.queryListByPatient(queryRequest, questions, userId));
        }
        return null;
    }

    @DeleteMapping("/{ids}")
    public ResultVo del(@PathVariable Integer[] ids) {
        for (Integer id : ids) {
            questionsService.removeById(id);
            LambdaQueryWrapper<Questions> lambdaQueryWrapper = new LambdaQueryWrapper<>();

            lambdaQueryWrapper.eq(Questions::getParentId, id);
            questionsService.remove(lambdaQueryWrapper);
        }
        return ResultVo.oK();
    }

    @PutMapping("/reply")
    public ResultVo reply(@RequestBody Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        Questions entity = new Questions();
        entity.setTitle(questions.getReply());
        entity.setParentId(questions.getId());
        entity.setPatientId(questions.getPatientId());
        entity.setDoctorId(userId);
        questionsService.save(entity);
    @Autowired
    private UserManager userManager;

    // 患者提问
    @PostMapping("/ask")
    public ResultVo ask(@RequestBody Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        questions.setPatientId(userId);
        questionsService.save(questions);
        return ResultVo.oK();
    }

    @GetMapping("/list")
    public ResultVo list(QueryRequest queryRequest, Questions questions, HttpServletRequest request) {
        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));
        if (userManager.isAdminRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isDoctorRole(userId)) {
            return ResultVo.oK(questionsService.queryList(queryRequest, questions));
        } else if (userManager.isPatientsRole(userId)) {
            return ResultVo.oK(questionsService.queryListByPatient(queryRequest, questions, userId));
        }
        return null;
    }

    @DeleteMapping("/{ids}")
    public ResultVo del(@PathVariable Integer[] ids) {
        for (Integer id : ids) {
            questionsService.removeById(id);
            LambdaQueryWrapper<Questions> lambdaQueryWrapper = new LambdaQueryWrapper<>();

            lambdaQueryWrapper.eq(Questions::getParentId, id);
            questionsService.remove(lambdaQueryWrapper);
        }
        return ResultVo.oK();
    }

    @PutMapping("/reply")
    public ResultVo reply(@RequestBody Questions questions, HttpServletRequest request) {

/**
 * <p>
 * 病例表 前端控制器
 * </p>
 *
 */
@RestController
@RequestMapping("/adminApi/case")
public class CaseController {

    @Autowired
    private ICaseService caseService;

    @Autowired
    private IRegistrationService registrationService;

    @Autowired
    private UserManager userManager;

    /**
     * 开处方
     */
    @PostMapping("/makeCase")
    public ResultVo makeCase(@RequestBody Case entity) {
        Integer id = entity.getId();
        caseService.save(entity);
        // 修改挂号状态
        Registration registration = new Registration();
        registration.setStatus(1);
        registration.setId(id);
        registrationService.updateById(registration);

        return ResultVo.oK();
    }

     * 获取科室下拉框
     */
    @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();
    }

    /**
     * 忘记密码
     */
            return ResultVo.oK(registrationService.queryListByPatient(entity, queryRequest, userId));
        }

        return null;

    }

    /**
     * 挂号接口
     */
    @PostMapping
    public ResultVo registration(@RequestBody Registration registration, HttpServletRequest request) {

        String s = DateUtil.parseTimeFormattoDayDate(new Date());
        s = s.replace("-", "");
        s = s + departmentService.getById(registration.getDepId()).getLetter();

        Integer count = registrationService.selectByNow(registration.getDepId());
        int num = count + 1;
        s = s + num;

        registration.setNumber(s);

        // 随机金额
        int min = 30, max = 100;
        BigDecimal v = BigDecimal.valueOf((Math.random() * (max - min)) + min);
        registration.setAmountPayable(v.setScale(2, BigDecimal.ROUND_HALF_UP));

        Integer userId = TokenUtil.getAdminUserId(request.getHeader("Authorization"));

        registration.setPatientsId(userId);
        registrationService.save(registration);
        return ResultVo.oK("已支付" + v.setScale(2, BigDecimal.ROUND_HALF_UP) + "元");

    }

    /**
     * 采纳
     */
    @GetMapping("/accept/{id}")
    public ResultVo accept(@PathVariable Integer id) {
        Registration registration = new Registration();
        registration.setId(id);
        registration.setAccept(1);
        registrationService.updateById(registration);
        return ResultVo.oK();
    }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值