当前位置: 首页 > 编程日记 > 正文

Java项目:医院管理系统(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管理等等。

角色控制层:

/*** <p>* 角色 前端控制器* </p>**/
@RestController
@RequestMapping("/roles")
public class RoleController {@Resourceprivate IRoleService roleService;@GetMappingpublic 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<Role> wrapper = new QueryWrapper<>();InitUtil.initLike(param, wrapper, "name");InitUtil.initEq(param, wrapper, "active");IPage<Role> page = new Page<>(num, limit);return ResultGenerator.getSuccessResult(roleService.page(page, wrapper));}@GetMapping("/all")public Result getAll() {QueryWrapper<Role> wrapper = new QueryWrapper<>();wrapper.eq("active", 1);JSONObject jsonObject = new JSONObject();List<Role> 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<Role> wrapper = new QueryWrapper<>();wrapper.eq("name", name);if (roleService.getOne(wrapper) != null)return ResultGenerator.getFailResult("", "该角色名已存在");return ResultGenerator.getSuccessResult();}@PostMapping()@UserLoginTokenpublic Result save(@RequestBody Role role) {// System.out.println(role);if (roleService.save(role))return ResultGenerator.getSuccessResult("", "添加成功");return ResultGenerator.getFailResult("", "添加失败");}@PutMapping("/{id}")@UserLoginTokenpublic 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}")@UserLoginTokenpublic 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}")@UserLoginTokenpublic Result del(@PathVariable int id) {if (roleService.removeById(id))return ResultGenerator.getSuccessResult("", "删除成功");return ResultGenerator.getFailResult("", "删除失败");}@DeleteMapping("/batchdel")@UserLoginTokenpublic Result batchDel(@RequestParam String ids) {String[] idList = ids.split(",");List<Integer> list = new ArrayList<>(idList.length);for (String id : idList) {list.add(Integer.parseInt(id));}if (roleService.removeByIds(list))return ResultGenerator.getSuccessResult("", "删除成功");return ResultGenerator.getFailResult("", "删除失败");}
}

用户管理控制层:

/*** <p>* 用户 前端控制器* </p>**/
@RestController
@RequestMapping("/users")
public class UserController {@Resourceprivate IUserService userService;@GetMappingpublic 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<User> wrapper = new QueryWrapper<User>();Object name = param.get("name");if (!StringUtils.isEmpty(name)){wrapper.like("username", name).or().like("realname", name);}InitUtil.initEq(param, wrapper, "active");IPage<User> 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<User> 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<User> wrapper = new QueryWrapper<>();InitUtil.initEq(param, wrapper, "user_type","dept_id","active");JSONObject jsonObject = new JSONObject();List<User> list = userService.list(wrapper);for (User i : list) {jsonObject.put(i.getId().toString(),Map.of("name", i.getRealname()));}return ResultGenerator.getSuccessResult(jsonObject);}@PostMapping()@UserLoginTokenpublic 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}")@UserLoginTokenpublic 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}")@UserLoginTokenpublic 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}")@UserLoginTokenpublic Result del(@PathVariable int id) {if(userService.removeById(id)) return ResultGenerator.getSuccessResult("","删除成功");return ResultGenerator.getFailResult("","删除失败");}@DeleteMapping("/batchdel")@UserLoginTokenpublic Result batchDel(@RequestParam String ids) {String[] idList = ids.split(",");List<Integer> 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 {@Resourceprivate IUserService userService;@PostMapping("/login")public Result login(@RequestBody Map<String,Object> param){System.out.println(param);QueryWrapper<User> 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);}}

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

相关文章:

任意阶幻方..

1 /*coder Gxjun*/2 #include<stdio.h>3 #include<string.h>4 #include<stdlib.h>5 #define maxn 1006 int map[maxn][maxn] ;7 void creat_magic(int n,int x,int y ,int sn) //奇阶幻方构造8 {9 int i,j,k;10 i0;11 jn/2;12 for(kn;k<…

UML与软件建模 第三次作业

1.单元测试的任务有哪些&#xff1f; 单元测试是对软件基本组成单元进行的测试,而且软件单元是与程序的其他部分相隔离的情况下进行独立的测试. 任务主要包括对单元功能、逻辑控制、数据和安全性等各方面进行必要的测试。具体地说&#xff0c;包括单元中所有独立执行路径、数据…

Pliops XDP(Extreme Data Processor)数据库存储设计的新型加速硬件

文章目录0 前言1 核心问题1.1 引擎的各方面性能受限于数据结构的选择1.2 压缩功能 导致的CPU瓶颈1.3 Crash-safe 崩溃异常的无奈选择1.4 当前主流 加速硬件 较难满足存储性能提升的要求2 XDP 设计原则2.1 数据结构上的优化2.2 解决 压缩引入的CPU消耗2.3 异常恢复的设计2.4 易于…

Java项目:潜艇大战项目(java+swing)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; Java swing实现的一款小游戏潜艇大战的项目源码 游戏界面&#xff1a; SuppressWarnings({ "unused", "serial" }) public class GameGUI extends JPanel {//卡…

可以发张图片做链接用吗

转载于:https://www.cnblogs.com/wasss/p/4466492.html

更改显示器的分辨率

1.桌面右击&#xff0c;如图1-1所示。2.点击屏幕分辩率&#xff0c;选择分辨率调大小&#xff0c;确定&#xff0c;如图1-2所示。转载于:https://blog.51cto.com/qikai/1367734

Java 处理0x00特殊字符

Java 处理0x00特殊字符 一、0x00字符 1&#xff0c;0x00是ascii码的0值&#xff1a;NUL 2&#xff0c;0x00在windows系统中显示&#xff1a; 3&#xff0c;0x00在Linux中显示&#xff1a; ctrlV ctrl可以打出此字符 二、Java解决0x00字符 str.replaceAll("\\u0000",&…

关于 并查集(union find) 算法基本原理 以及 其 在分布式图场景的应用

二月的最后一篇水文…想写一些有意思的东西。 文章目录环检测在图数据结构中的应用深度/广度优先 检测环并查集数据结构 (Union-Find)基本概念初始化合并 union查找祖先优化1: 合并过程 利用 rank 优化路径优化2: 路径压缩(Path Compression)并查集 解决图中检测环问题环检测在…

Java项目:智能制造生产管理平台(java+SSM+mysql+Maven+Easyui+JSP)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 运行环境&#xff1a;jdk1.8、tomcat7.0/8.5、Mysql5.7/5.1、Maven3.6/3.5、 eclipse/STS 功能简介&#xff1a;计划进度、设备管理、工艺监控、物料监控、质量监控、人员监控等 访问注册控制层&#xff1a;…

JAVA-Eclipse快捷键

Ctrl1&#xff1a;快速修复。CtrlD:快速删除行。ShiftEnter&#xff1a;快速调到下一行。CtrlF11:快速运行。Alt上下方向键&#xff1a;快速移动。CtrlM:光标所在视图最大化。Alt/:智能补全。Ctrl/&#xff1a;快速注释代码。 转载于:https://www.cnblogs.com/bluewhy/p/44669…

Android RelativeLayout属性

// 相对于给定ID控件android:layout_above 将该控件的底部置于给定ID的控件之上;android:layout_below 将该控件的底部置于给定ID的控件之下;android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘…

详解Azure的权限控制

注意&#xff1a;本文档仅限于Azure国际版&#xff0c;国内版略有不同Azure中的角色分配相对来说是比较复杂的的&#xff0c;对于任何云组织来说&#xff0c;云的资源访问管理权限都是一项非常重要的功能&#xff0c;azure中的授权系统叫做基于角色的访问控制&#xff08;RBAC&…

SNMP introduction

简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。许多人认为 SNMP在IP上运行的原因是Internet运行的是TCP/IP协议&#xff0c;然而事实并不是这样。 SNMP被设计成与协议无…

Java项目:在线考试系统(java+SSM+mysql+JSP)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 运行环境&#xff1a;jdk1.8、Mysql5.7、Tomcat8.5、IDEA/Eclipse 功能简介&#xff1a;在线考试、历史回顾、个人成绩查询等。 管理员和教师功能有&#xff1a;学院管理、班级管理、课程管理、教师、学生…

Keil中使用宏编译来定义DEBUG输出

使用宏编译来格式化调试信息&#xff0c;是一个不错的方法&#xff0c;即可以在需要的时候打印出信息&#xff0c;还可以格式化我们所需要的输出。 #define DEBUG 1 #if (DEBUG 1) #define DBG(Args...) printf(##Args) #define DBGFL(s, Args...) printf("[%s:%d]&qu…

解决用户使用临时配置文件登陆WIN7的问题

用户登录Win7后&#xff0c;经常会遇到 “您已使用临时配置文件登陆” 的提示,忽略此提示的用户通常在桌面上保留的文件再次重启进入后发现文件丢失了&#xff0c;或者原有桌面上的文件不见了&#xff0c;这样一定程度上降低了工作的效率.这里主要说一下如何解决此问题。用户登…

chosen.jquery.js 有搜索功能、多选功能的下拉框插件

chosen.jquery.js 有搜索功能、多选功能的下拉框插件 官方源码&#xff1a; https://github.com/harvesthq/chosen 该源码中的样例index.html有该插件的详细使用介绍posted on 2019-05-09 14:40 三天打鱼&#xff0c;两天晒网 阅读(...) 评论(...) 编辑 收藏 转载于:https://w…

MIB in SNMP

管理信息库MIB指明了网络元素所维持的变量&#xff08;即能够被管理进程查询和设置的信息&#xff09;。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构&#xff0c;它的根在最上面&#xff0c;根没有名字。图3画…

Java项目:后台管理系统脚手架项目(java+SpringBoot+FreeMarker+mysql+JSP)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目描述&#xff1a; 这是一个基于SpringBoot框架开发的后台管理系统脚手架项目。之所以称为脚手架项目&#xff0c;是因为这个项目复用性很强&#xff0c;如果以后有其他新的项目要设计后台管理系统的话&…

Extjs4.0.7 MVC Architecture异常

uncaught exception: Ext.Loader is not enabled, so dependencies cannot be resolved dynamically. Missing required class: AM.controller.User 解决方法&#xff1a; 在app.js最上面加上&#xff1a;Ext.Loader.setConfig({ enabled: true }); Ext.Loader.setConfig({ …

Mybatis常见面试题(三)

Mybatis 映射文件中&#xff0c;如果 A 标签通过 include 引用了 B 标签的内容&#xff0c;请问&#xff0c; B 标签能否定义在 A 标签的后面&#xff0c;还是说必须定义在 A 标签的前面&#xff1f; :虽然 Mybatis 解析 Xml 映射文件是按照顺序解析的&#xff0c;但是&#x…

SMI in SNMP

SNMP中&#xff0c;数据类型并不多。这里我们就讨论这些数据类型&#xff0c;而不关心这些数据类型在实际中是如何编码的。INTEGER一个变量虽然定义为整型&#xff0c;但也有多种形式。有些整型变量没有范围限制&#xff0c;有些整型变量定义为特定的数值&#xff08;例如&am…

Java项目:在线拍卖竞价系统(java+SpringBoot+FreeMarker+Mysql+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 超级管理员&#xff1a;系统管理、用户管理&#xff08;冻结等&#xff09;、审批竞拍标的物管理、竞标类型管理、审批机构、个人提现管理&#xff08;审核&#xff09;、企业提现管理&#xff08;审批&…

pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)

pig 脚本运行不需要后缀名 pig脚本名为tempfile&#xff0c;无后缀名 用pig -f tempfile 可直接运行 另外&#xff0c;pig tempfile也可以直接运行这样就可以用python临时文件存储pig脚本内容直接调用 python调用pig脚本的一种方式 将pig脚本用任意文件存储&#xff0c;执行时写…

老谢oracle视频笔记_day02

1:databasea:physical structure1:controlfile控制文件select * from v$controlfile;11g 以三个11g二个互为镜像文件坏了数据库就打不开了..IO一个块 16k一个文件2MB不会太大?10MB数据库名数据文件位置很多的参数.....2:datafile 数据文件select file_name,file_id from dba_d…

WCDMA系统中的扰码规划

摘要&#xff1a;宽带码分多址(WCDMA)系统采用码分多址的无线接入方式&#xff0c;不需频率规划&#xff0c;但需进行相邻小区扰码的规划用以区分各小区。通过WCDMA无线网络的扰码规划&#xff0c;可以确定两个使用相同扰码的小区的复用距离&#xff0c;区分各小区。扰码规划时…

Java项目:宿舍寝室维修上报管理系统(java+SpringBoot+FreeMarker+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 管理员&#xff1a;校园管理&#xff08;楼栋管理、宿舍管理&#xff09;、师生管理&#xff08;学生管理、辅导员管理&#xff09;、维修管理&#xff08;维修工管理、维修进度管理&#xff09;、阅览室管理…

项目需求分析与建议

软件名称&#xff1a;私人助手 1.N(需求)&#xff1a;当今生活节奏迅速&#xff0c;每个人每天都有许多事情要做&#xff0c;堆积成山的事情往往让人感到迷茫&#xff0c;不知道什么时候要做什么事情。私人助手就是为了解决这个烦恼而产生&#xff0c;它会根据最初你添加的事物…

使用面向 iOS 的本机插件扩展 PhoneGap

本文细致探讨了 Xcode&#xff08;以 iOS 设备为目标&#xff09;中的 PhoneGap&#xff08;也称为 Apache Cordova&#xff09;应用程序本机插件。如果您刚开始接触 PhoneGap 或者需要回顾 PhoneGap 基础知识&#xff0c;请先阅读 Xcode for iOS 的 PhoneGap 入门&#xff0c;…

算法总结---最常用的五大算法(算法题思路)

算法总结---最常用的五大算法&#xff08;算法题思路&#xff09; 一、总结 一句话总结&#xff1a; 【明确所求&#xff1a;dijkstra是求点到点的距离&#xff0c;辅助数组就是源点到目标点的数组】 【最简实例分析&#xff1a;比如思考dijkstra&#xff1a;假设先只有三个点】…