# 诊所医疗系统后端 **Repository Path**: devopsit-regen/clinic-system-backend ## Basic Information - **Project Name**: 诊所医疗系统后端 - **Description**: 给诊所使用的医疗系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 医疗系统后端 这是一个基于Spring Boot的医疗系统后端,实现了完整的用户认证、角色权限管理和部门管理功能。 ## 系统特性 - **用户认证**: JWT token认证 - **动态权限管理**: 基于数据库配置的权限控制,支持细粒度权限管理 - **角色权限管理**: 基于RBAC的权限控制模型 - **部门管理**: 支持多部门数据隔离 - **安全控制**: Spring Security集成 - **权限拦截器**: 自动权限检查和拦截 ## 用户账号 系统预置了以下用户账号: ### 管理员账号 - **用户名**: `admin` - **密码**: `admin123` - **角色**: 系统管理员 - **权限**: 可以查看和管理所有数据 ### 财务部账号 - **用户名**: `zhangsan` - **密码**: `zhangsan123` - **角色**: 财务部用户 - **部门**: 财务部 - **权限**: 只能查看财务部相关数据 ### 人事部账号 - **用户名**: `lisi` - **密码**: `lisi123` - **角色**: 人事部用户 - **部门**: 人事部 - **权限**: 只能查看人事部相关数据 ## 权限说明 ### 管理员权限 - 查看所有用户信息 - 查看所有部门数据 - 创建、修改、删除用户 - 分配用户角色和部门 - 管理角色和部门 ### 财务部权限 - 只能查看财务部相关数据 - 无法查看其他部门数据 - 无法管理用户和角色 ### 人事部权限 - 只能查看人事部相关数据 - 无法查看其他部门数据 - 无法管理用户和角色 ## API接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 ### 管理员接口 (需要相应权限) - `GET /api/admin/users` - 获取所有用户 (需要USER_READ权限) - `GET /api/admin/users/department/{departmentId}` - 根据部门获取用户 (需要USER_READ权限) - `GET /api/admin/users/role/{role}` - 根据角色获取用户 (需要USER_READ权限) - `GET /api/admin/roles` - 获取所有角色 (需要ROLE_READ权限) - `GET /api/admin/departments` - 获取所有部门 (需要DEPARTMENT_READ权限) - `POST /api/admin/users/{userId}/roles` - 分配角色给用户 (需要USER_UPDATE权限) ### 部门接口 - `GET /api/departments` - 获取所有部门 - `GET /api/departments/{id}` - 根据ID获取部门 - `POST /api/departments` - 创建部门 (需要DEPARTMENT_CREATE权限) - `PUT /api/departments/{id}` - 更新部门 (需要DEPARTMENT_UPDATE权限) - `DELETE /api/departments/{id}` - 删除部门 (需要DEPARTMENT_DELETE权限) ### 权限管理接口 - `GET /api/permissions` - 获取所有权限 (需要PERMISSION_READ权限) - `GET /api/permissions/{id}` - 根据ID获取权限 (需要PERMISSION_READ权限) - `GET /api/permissions/code/{code}` - 根据代码获取权限 (需要PERMISSION_READ权限) - `POST /api/permissions` - 创建权限 (需要PERMISSION_CREATE权限) - `PUT /api/permissions/{id}` - 更新权限 (需要PERMISSION_UPDATE权限) - `DELETE /api/permissions/{id}` - 删除权限 (需要PERMISSION_DELETE权限) ## 技术栈 - **框架**: Spring Boot 2.x - **安全**: Spring Security + JWT - **数据库**: MySQL - **ORM**: MyBatis - **构建工具**: Maven ## 运行说明 1. 确保MySQL数据库已启动 2. 执行 `src/main/resources/schema.sql` 创建数据库和表 3. 配置 `application.yml` 中的数据库连接信息 4. 运行 `ClinicSystemApplication.java` 5. 系统启动后会自动创建默认用户账号 ## 数据库结构 ### 用户表 (users) - id: 用户ID - username: 用户名 - password: 密码 (加密) - email: 邮箱 - full_name: 全名 - role: 角色 - department_id: 部门ID - enabled: 是否启用 - create_time: 创建时间 - update_time: 更新时间 ### 部门表 (departments) - id: 部门ID - name: 部门名称 - description: 部门描述 - enabled: 是否启用 - create_time: 创建时间 - update_time: 更新时间 ### 角色表 (roles) - id: 角色ID - name: 角色名称 - description: 角色描述 - permissions: 权限配置 (JSON格式存储) ### 权限表 (permissions) - id: 权限ID - name: 权限名称 - code: 权限代码 - resource: 资源类型 - action: 操作类型 - description: 权限描述 - enabled: 是否启用 - create_time: 创建时间 - update_time: 更新时间 ### 用户角色关联表 (user_roles) - user_id: 用户ID - role_id: 角色ID - department_id: 部门ID ## 注意事项 1. 首次启动系统会自动创建默认用户账号 2. 密码使用BCrypt加密存储 3. JWT token有效期为24小时 4. 所有敏感操作都需要相应的角色权限 5. 部门数据隔离通过用户角色和部门关联实现