# han_picture **Repository Path**: violet2018/han_picture ## Basic Information - **Project Name**: han_picture - **Description**: 智能协同云图库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-11-25 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # han_picture ## 项目简介 han_picture 是一个功能丰富的图片管理与处理系统,支持图片上传、编辑、分类、标签管理、空间管理、用户权限控制等功能。项目采用 Spring Boot 框架开发,结合 MyBatis Plus、Redis、WebSocket、COS 等技术,适用于构建多用户图片管理平台。 ## 主要功能 - **图片管理**:支持上传、下载、编辑、删除、批量上传、标签分类、AI 自动识别分类与标签、图片风格重绘等。 - **空间管理**:支持创建个人或团队空间,设置空间配额(图片数量与总大小),并提供空间使用情况分析。 - **用户管理**:支持用户注册、登录、权限管理,以及用户角色与权限配置。 - **权限控制**:基于角色与空间权限模型,支持细粒度的权限控制,如查看、上传、编辑、删除等。 - **WebSocket 实时交互**:支持图片编辑实时协作与 AI 处理状态推送。 - **数据分析**:提供空间使用情况、图片分类统计、标签统计、用户上传行为分析等功能。 ## 技术栈 - 后端框架:Spring Boot + MyBatis Plus - 数据库:MySQL - 缓存:Redis + Kryo 序列化 - 文件存储:腾讯云 COS - 实时通信:WebSocket - 异步处理:Disruptor、Spring Async - AI 处理:调用 DashScope API 实现图片风格重绘与标签识别 - 权限控制:Sa-Token + 自定义注解 - 构建工具:Maven ## 模块结构 - **Controller 层**:提供 RESTful API 接口,涵盖用户、图片、空间、权限、WebSocket 等模块。 - **Service 层**:封装业务逻辑,包括图片处理、空间分析、用户权限、AI 处理等。 - **Mapper 层**:MyBatis Plus 实现数据库操作。 - **Entity/VO/DTO**:数据模型、视图对象、请求响应封装。 - **Utils 工具类**:包括 Redis 缓存管理、WebSocket 消息处理、图片处理、序列化等工具。 - **配置类**:Spring Boot 配置、Redis、WebSocket、Sa-Token、异步任务等配置。 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ - 腾讯云 COS 配置 - DashScope API Key(用于 AI 图片处理) ### 安装步骤 1. 克隆项目: ```bash git clone https://gitee.com/hanser_wei_admin/han_picture.git ``` 2. 配置数据库: - 创建 MySQL 数据库并导入 `sql/SQL.sql` 3. 修改配置文件: - 修改 `application.yml` 中的数据库、Redis、COS、DashScope 等配置 4. 启动项目: ```bash mvn spring-boot:run ``` ## 使用示例 ### 用户管理 - **注册用户**:`POST /user/register` - **用户登录**:`POST /user/login` - **获取当前登录用户信息**:`GET /user/get/login` - **管理员添加用户**:`POST /user/add` ### 图片管理 - **上传图片**:`POST /picture/upload` - **删除图片**:`POST /picture/delete` - **编辑图片信息**:`POST /picture/edit` - **分页获取图片列表**:`POST /picture/list/page/vo` - **AI 风格重绘**:`POST /picture/style_regen` ### 空间管理 - **创建空间**:`POST /space/add` - **编辑空间信息**:`POST /space/edit` - **删除空间**:`POST /space/delete` - **获取空间使用情况**:`POST /spaceAnalyze/usage` ### 权限与协作 - **添加空间成员**:`POST /spaceUser/add` - **删除空间成员**:`POST /spaceUser/delete` - **获取空间成员列表**:`POST /spaceUser/list` ### WebSocket 实时通信 - **WebSocket 连接地址**:`/websocket` - **AI 处理状态推送**:通过 WebSocket 推送图片处理结果 - **图片编辑协作**:多人同时编辑图片时的实时同步 ## API 文档 项目使用 Swagger 注解标注接口,可通过 `/v2/api-docs` 或 `/swagger-ui.html` 查看完整 API 文档。 ## 配置说明 - `application.yml`:主配置文件,包含数据库、Redis、COS、DashScope、WebSocket 等配置 - `pom.xml`:Maven 项目依赖配置 - `sql/SQL.sql`:数据库初始化脚本 - `src/main/resources/biz/spaceUserAuthConfig.json`:空间用户权限配置文件 ## 测试 - 单元测试位于 `src/test/java/` 目录下 - 使用 `@SpringBootTest` 注解进行集成测试 - 使用 `Mockito` 模拟依赖对象进行单元测试 ## 扩展与部署 - 可扩展支持更多 AI 图像处理服务(如 OpenAI、百度 AI 等) - 支持部署到云服务器或容器环境(如 Docker) - 可结合 Nginx 做负载均衡与静态资源代理 ## 开源协议 本项目采用 [MIT License](https://opensource.org/licenses/MIT),欢迎自由使用与贡献代码。