基于javaweb的医院管理系统(java+springboot+mybatis+vue+mysql)

news2024/10/6 12:19:27

基于javaweb的医院管理系统(java+springboot+mybatis+vue+mysql)

运行环境

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

开发工具

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

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

20220819220003

20220819220004

20220819220005

20220819220006

20220819220007

基于javaweb+mysql的医院管理系统(java+Springboot+Maven+Mybatis+Vue+Mysql)

一、项目简述本系统功能包括:医院挂号,退号,缴费,退费,检查申请单开立,科室管理,医生开单,挂号级别,检验项目开立,检查项目开立,医生接诊等等功能。

二、项目运行 环境配置:

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

项目技术:

Springboot + Maven + Mybatis + Vue 等等组成,B/S模式 + Maven管理等等。

角色控制层:

/**

  • 角色 前端控制器

*/

@RestController

@RequestMapping(“/roles”)

public class RoleController {

@Resource

private IRoleService roleService;

@GetMapping

public Result getlist(@RequestParam Map<String, Object> param) {

InitUtil.initPage(param);

int num = Integer.parseInt(param.get(“page”).toString());

int limit = Integer.parseInt(param.get(“limit”).toString());

QueryWrapper wrapper = new QueryWrapper<>();

InitUtil.initLike(param, wrapper, “name”);

InitUtil.initEq(param, wrapper, “active”);

IPage page = new Page<>(num, limit);

return ResultGenerator.getSuccessResult(roleService.page(page, wrapper));

@GetMapping(“/all”)

public Result getAll() {

QueryWrapper wrapper = new QueryWrapper<>();

wrapper.eq(“active”, 1);

JSONObject jsonObject = new JSONObject();

List list = roleService.list(wrapper);

for (Role i : list) {

jsonObject.put(i.getId().toString(), Map.of(“name”,i.getName()));

return ResultGenerator.getSuccessResult(jsonObject);

@GetMapping(“/{id}”)

public Result getRole(@PathVariable int id) {

Role role = roleService.getById(id);

if (role == null)

return ResultGenerator.getFailResult(“”, “无该角色记录”);

return ResultGenerator.getSuccessResult(role);

@GetMapping(“/check”)

public Result checkUserName(@RequestParam String name) {

QueryWrapper wrapper = new QueryWrapper<>();

wrapper.eq(“name”, name);

if (roleService.getOne(wrapper) != null)

return ResultGenerator.getFailResult(“”, “该角色名已存在”);

return ResultGenerator.getSuccessResult();

@PostMapping()

@UserLoginToken

public Result save(@RequestBody Role role) {

// System.out.println(role);

if (roleService.save(role))

return ResultGenerator.getSuccessResult(“”, “添加成功”);

return ResultGenerator.getFailResult(“”, “添加失败”);

@PutMapping(“/{id}”)

@UserLoginToken

public Result update(@RequestBody Role role, @PathVariable int id) {

role.setId(id);

// System.out.println(role);

if (roleService.updateById(role))

return ResultGenerator.getSuccessResult(“”, “更新成功”);

return ResultGenerator.getFailResult(“”, “更新失败”);

@PutMapping(“/{id}/state/{active}”)

@UserLoginToken

public Result changeActive(@PathVariable int id, @PathVariable int active) {

Role role = new Role();

role.setActive(active);

role.setId(id);

if (roleService.updateById(role))

return ResultGenerator.getSuccessResult(“”, “激活状态修改成功”);

return ResultGenerator.getFailResult(“”, “激活状态修改失败”);

@DeleteMapping(“/{id}”)

@UserLoginToken

public Result del(@PathVariable int id) {

if (roleService.removeById(id))

return ResultGenerator.getSuccessResult(“”, “删除成功”);

return ResultGenerator.getFailResult(“”, “删除失败”);

@DeleteMapping(“/batchdel”)

@UserLoginToken

public Result batchDel(@RequestParam String ids) {

String[] idList = ids.split(“,”);

List list = new ArrayList<>(idList.length);

for (String id : idList) {

list.add(Integer.parseInt(id));

if (roleService.removeByIds(list))

return ResultGenerator.getSuccessResult(“”, “删除成功”);

return ResultGenerator.getFailResult(“”, “删除失败”);

用户管理控制层:

/**

  • 用户 前端控制器

*/

@RestController

@RequestMapping(“/users”)

public class UserController {

@Resource

private IUserService userService;

@GetMapping

public Result getList(@RequestParam Map<String, Object> param) {

InitUtil.initPage(param);

int num = Integer.parseInt(param.get(“page”).toString());

int limit = Integer.parseInt(param.get(“limit”).toString());

QueryWrapper wrapper = new QueryWrapper();

Object name = param.get(“name”);

if (!StringUtils.isEmpty(name)){

wrapper.like(“username”, name).or().like(“realname”, name);

InitUtil.initEq(param, wrapper, “active”);

IPage page = new Page<>(num, limit);// 参数一是当前页,参数二是每页个数

return ResultGenerator.getSuccessResult(userService.page(page, wrapper));

@GetMapping(“/{id}”)

public Result getUser(@PathVariable int id) {

User user = userService.getById(id);

if (user == null) return ResultGenerator.getFailResult(“”,“无用户记录”);

return ResultGenerator.getSuccessResult(user);

@GetMapping(“/check”)

public Result checkUserName(@RequestParam String name) {

QueryWrapper wrapper = new QueryWrapper<>();

wrapper.eq(“username”, name);

if (userService.getOne(wrapper) != null)

return ResultGenerator.getFailResult(“”, “该用户名已存在”);

return ResultGenerator.getSuccessResult();

@GetMapping(“/list”)

public Result getListBy(@RequestParam Map<String, Object> param) {

QueryWrapper wrapper = new QueryWrapper<>();

InitUtil.initEq(param, wrapper, “user_type”,“dept_id”,“active”);

JSONObject jsonObject = new JSONObject();

List list = userService.list(wrapper);

for (User i : list) {

jsonObject.put(i.getId().toString(),Map.of(“name”, i.getRealname()));

return ResultGenerator.getSuccessResult(jsonObject);

@PostMapping()

@UserLoginToken

public Result save(@RequestBody User user){

//System.out.println(user);

user.setPassword(ShaUtil.getSHA256(user.getPassword()));

if(userService.save(user)) return ResultGenerator.getSuccessResult(“”,“添加成功”);

return ResultGenerator.getFailResult(“”,“添加失败”);

@PutMapping(“/{id}”)

@UserLoginToken

public Result update(@RequestBody User user,@PathVariable int id){

user.setId(id);

//System.out.println(user);

if(userService.updateById(user)) return ResultGenerator.getSuccessResult(“”,“更新成功”);

return ResultGenerator.getFailResult(“”,“更新失败”);

/**

  • 修改用户的状态,相当于修改用户的激活状态

*/

@PutMapping(“/{id}/state/{active}”)

@UserLoginToken

public Result changeActive(@PathVariable int id, @PathVariable int active) {

User user = new User();

user.setActive(active);

user.setId(id);

if (userService.updateById(user))

return ResultGenerator.getSuccessResult(“”, “激活状态修改成功”);

return ResultGenerator.getFailResult(“”, “激活状态修改失败”);

@DeleteMapping(“/{id}”)

@UserLoginToken

public Result del(@PathVariable int id) {

if(userService.removeById(id)) return ResultGenerator.getSuccessResult(“”,“删除成功”);

return ResultGenerator.getFailResult(“”,“删除失败”);

@DeleteMapping(“/batchdel”)

@UserLoginToken

public Result batchDel(@RequestParam String ids) {

String[] idList = ids.split(“,”);

List list = new ArrayList<>(idList.length);

for (String id : idList) {

list.add(Integer.parseInt(id));

if (userService.removeByIds(list))

return ResultGenerator.getSuccessResult(“”, “删除成功”);

return ResultGenerator.getFailResult(“”, “删除失败”);

登录控制层:

@RestController

public class LoginController {

@Resource

private IUserService userService;

@PostMapping(“/login”)

public Result login(@RequestBody Map<String,Object> param){

System.out.println(param);

QueryWrapper wrapper = new QueryWrapper<>();

wrapper.eq(“telephone”, param.get(“telephone”)).eq(“password”, ShaUtil.getSHA256(param.get(“password”).toString()));

User user = userService.getOne(wrapper);

if (user == null){

return ResultGenerator.getFailResult(null,“手机号或密码错误”);

if (user.getActive() == 0) {

return ResultGenerator.getFailResult(null,“请联系管理员帮你激活”);

user.setLastlogin(LocalDateTime.now());

updateLoginTime(user.getId());

JSONObject jsonObject = new JSONObject();

jsonObject.put(“token”, JwtUtil.create(user));

jsonObject.put(“id”,user.getId());

jsonObject.put(“deptId”,user.getDeptId());

return ResultGenerator.getSuccessResult(jsonObject,“登录成功”);

private void updateLoginTime(int id){

User user = new User();

user.setId(id);

user.setLastlogin(LocalDateTime.now());

userService.updateById(user);


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对于一个即将上线的网站,如何测试

web应用&#xff1a;也叫做网站&#xff0c;相对于客户端应用来说&#xff0c;web应用无需单独安装&#xff0c;在浏览器上即可使用其功能。 web应用的主要开发流程如下&#xff1a; 在网站开发的整个流程中&#xff0c;测试验收是上线发布前的最后一个环节&#xff0c;测试是…

Linux环境下安装Jenkins

首先安装Jenkins之前&#xff0c;linux中必须安装好了JDK和Maven&#xff0c;如果还没有安装过&#xff0c;下面准备好安装教程 Linux环境安装JDK: https://www.cnblogs.com/xuliangxing/p/7066913.html Linux环境安装Maven: https://blog.csdn.net/qq_35868412/article/detail…

【数据库04】中级开发需要掌握哪些SQL进阶玩法

前 言 &#x1f349; 作者简介&#xff1a;半旧518&#xff0c;长跑型选手&#xff0c;立志坚持写10年博客&#xff0c;专注于java后端 ☕专栏简介&#xff1a;相当硬核&#xff0c;黑皮书《数据库系统概念》读书笔记&#xff0c;讲解&#xff1a; 1.数据库系统的基本概念(数据…

Unicode云对象对接代码Demo

实现点击按钮&#xff0c;获取云对象返回内容&#xff0c;例下图 新建云对象-co1 index.obj.js代码 // 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj // jsdoc语法提示教程&#xff1a;https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129 mo…

深入理解计算机系统:内存越界引用和缓冲区溢出

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录原因造成后果缓冲区溢出执行攻击代码exploit code蠕虫和病毒的区别原因 C对数组引用不进行任何边界检查&#xff0c;而且局部变量和状态信息&#xff08;寄存器值&#xff0c;返回地址&#xff09;都放在栈…

2.1 Python 解释器

1. 什么是 Python 解释器 Python 解释器是解释 Python 脚本执行的程序. 开发者在编写 Python 代码保存后, 就会得到一个以.py为扩展名的文本文件, 若要运行此文件, 就需要Python解释器去执行.2. Python 解释器的种类 Python 有好几种版本的解释器:CPython: 官方版本的解释器,…

猿创征文|技术成长之各进制之间的转换

目录 一.非十进制转十进制 方法&#xff1a; 示例 解释 二进制转十进制 八进制转十进制 十六进制转十进制 二.十进制转非十进制 整数部分 方法 示例 十进制整数转二进制 十进制整数转八进制 十进制整数转十六进制 小数部分 方法 十进制小数转二进制 十进制小数转…

反应性叠氮化物N3-PEG-NH2,Azide-PEG-Amine,叠氮-聚二乙醇-胺

一&#xff1a;产品描述 1、名称 英文&#xff1a;N3-PEG-NH2&#xff0c;Azide-PEG-Amine 中文&#xff1a;叠氮-聚二乙醇-胺 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Amine PEG Azide PEG 4、分子量&#xff1a;可定制&#xff0c;叠氮-聚二乙醇-胺10k、叠氮…

Allegro DFM Ravel Rule检查工具介绍

Allegro DFM Ravel Rule检查工具介绍 Allegro任何一个版本都支持DFM Ravel Rule检查,即便是166的版本 打开后的界面如下所示 可以检查项目 测试点,阻焊,走线,丝印,过孔,milling,装配,outline相关的DFM检查 可以让违反规则的设计处以DRC的形式报出来 避免加工问题 首…

Spring+SpringMVC+Mybatis SSM框架详解

一、JDBC编程 1、JDBC 简介 JDBC其实就是 Java 官方提供的一套规范&#xff08;接口&#xff09;&#xff0c;用于帮助开发人员快速实现不同关系型数据库的连接。 程序运行的时候&#xff0c;数据都是在内存中的。当程序终止的时候&#xff0c;通常都需要将数据保存到磁盘上…

VScode 官网下载太慢解决方法

用惯了HBuilder 和 WebStorm&#xff0c;发现身边很多人也在用 VSCode&#xff0c;就像尝试下。 但是&#xff0c;官网下载太慢了。https://code.visualstudio.com/ 我可是 500M 的宽带啊~&#xff01;&#xff01;&#xff01; 有小道消息说&#xff0c;VSCode 对中国大陆用…

【Linux】软件包管理器 --- yum

目录&#x1f308;前言Linux 软件包管理器 yum&#x1f681;1、什么是软件包&#x1f682;2、yum指令&#x1f683;3、关于 rzsz&#x1f308;前言 本篇文章进行开发工具的学习&#xff01;&#xff01;&#xff01; Linux 软件包管理器 yum &#x1f681;1、什么是软件包 源…

heapdump 攻击面利用

点击上方蓝字关注我们 一、heapdump案例 1.1 项目中的分析 这个是项目中遇到的一个例子&#xff0c;发现了heapdump泄露&#xff0c;但没有找到可用session&#xff0c;当时就想着内存中应该是有账号密码的&#xff0c;于是就开始找了起来。 用OQL进行搜索&#xff0c;先找…

异地远程群晖NAS教程【cpolar内网穿透】

公网/外网访问群晖NAS&#xff0c;虽然品牌NAS都会有自带DDNS服务&#xff0c;但是公网IPV4很难申请&#xff0c;所以很多用户都会转战内网穿透。网上也有很多教程&#xff0c;比如frp…&#xff0c;但是需要有公网服务器支持来进行搭建&#xff0c;有一定的要求。 cpolar内网穿…

Graphviz安装教程

Graphviz安装教程 官网下载graphviz的安装包 &#xff0c;网址&#xff1a; https://graphviz.org/download/ 进入下面页面。此处我选择这个版本进行下载&#xff0c; 后面就是安装和配置环境变量问题 安装的时候记住安装路径(最好放到anaconda文件夹下&#xff0c;即**\An…

通讯录的实现(静态版本和动态版本和文件版本)

为什们要实现通讯录&#xff1f; 主要是为了让我们将结构体的知识&#xff0c;了解的更加深刻&#xff0c;将结构体应用一下&#xff0c;我们先将静态的通讯录实现&#xff0c;在进行改良&#xff0c;用动态内存的知识再将通讯录改造一边&#xff0c;将动态内容的知识也运用一…

C++ Reference: Standard C++ Library reference: C Library: cstring: strncat

C官网参考链接&#xff1a;https://cplusplus.com/reference/cstring/strncat/ 函数 <cstring> strncat char * strncat ( char * destination, const char * source, size_t num ); 从字符串中追加字符 将source的第一个num个字符追加到destination&#xff0c;并追加…

重型机床热误差补偿温度敏感测点的识别与优化选择

重型机床热误差补偿温度敏感测点的识别与优化选择 动机与主要贡献 ● 热误差预测的性能主要取决于预测模型的准确性和鲁棒性以及输入的温度变量 ● 在大型数控机床热误差补偿方案中&#xff0c;由于温度敏感点的结构和发热机理复杂&#xff0c;目前仍缺乏有效的温度敏感点识别…

java---贪心---区间分组(每日一道算法2022.10.28)

题目&#xff1a; 给定 N 个闭区间 [ai,bi]&#xff0c;请你将这些区间分成若干组&#xff0c;使得每组内部的区间两两之间&#xff08;包括端点&#xff09;没有交集&#xff0c;并使得组数尽可能小 输出最小组数 第一行包含整数 N&#xff0c;表示区间数 接下来 N 行&#x…

Redis篇(2)——main函数

众所周知&#xff0c;redis是C语言写的。那么main函数来一波 int main(int argc, char **argv) {struct timeval tv;int j;//运行测试方法 #ifdef REDIS_TESTif (argc 3 && !strcasecmp(argv[1], "test")) {if (!strcasecmp(argv[2], "ziplist")…