# 智能协同云图库平台 **Repository Path**: normalbykai/smart-teamwork-platform ## Basic Information - **Project Name**: 智能协同云图库平台 - **Description**: 智能协同云图库平台,致力于提供高效、灵活的云端协作解决方案,支持多用户实时编辑与数据共享,助力团队高效协同工作。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2025-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 正常图片管理系统后端 一个基于领域驱动设计(DDD)架构的图片管理后端系统,提供图片上传、管理、空间共享等功能。 ## 项目简介 本项目是一个企业级的图片管理后端服务,采用现代化的技术栈和清晰的架构设计,支持用户管理、图片上传下载、空间共享、权限控制等核心功能。 ## 技术架构 ### 核心技术栈 - **框架**: Spring Boot 3.4.4 - **Java版本**: Java 17 - **构建工具**: Maven - **数据库**: MySQL 8.0 - **缓存**: Redis + Caffeine - **ORM**: MyBatis Plus 3.5.11 - **权限认证**: Sa-Token 1.44.0 - **文档**: Knife4j 4.5.0 (Swagger增强) ### 架构模式 项目采用领域驱动设计(DDD)的分层架构: ``` interfaces(接口层) → application(应用层) → domain(领域层) → infrastructure(基础设施层) ``` - **接口层**: REST API控制器、DTO、VO - **应用层**: 应用服务、用例协调 - **领域层**: 核心业务实体、领域服务 - **基础设施层**: 数据持久化、外部服务集成 - **共享层**: 通用组件、工具类 ## 核心功能 ### 1. 用户管理 - 用户注册与登录 - 基于角色的权限控制(RBAC) - 用户信息管理 ### 2. 图片管理 - 图片上传与下载 - 图片元数据管理(尺寸、格式、大小等) - 图片审核状态管理 - 批量图片操作 ### 3. 空间管理 - 创建和管理图片空间 - 空间成员权限管理 - 空间图片共享 ### 4. 高级功能 - 图片搜索API集成 - WebSocket实时通信 - 多级缓存架构 - 分布式会话管理 - 事件驱动架构 ## 快速开始 ### 环境要求 - Java 17+ - MySQL 8.0+ - Redis 6.0+ - Maven 3.6+ ### 数据库初始化 1. 创建数据库 ```sql CREATE DATABASE `normal_picture` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 执行SQL脚本 ```bash # 在项目根目录执行 mysql -u your_username -p normal_picture < sql/create_table.sql ``` ### 配置文件 1. 复制配置文件模板 ```bash cp src/main/resources/application-local.yml.template src/main/resources/application-local.yml ``` 2. 修改配置 编辑 `application-local.yml` 文件,配置数据库、Redis、COS等信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/normal_picture username: your_username password: your_password redis: host: localhost port: 6379 password: your_redis_password # 腾讯云COS配置 cos: client: accessKey: your_access_key secretKey: your_secret_key region: your_region ``` ### 启动项目 ```bash # 开发环境启动 mvn spring-boot:run -Dspring.profiles.active=local # 或者直接运行jar包 mvn clean package java -jar target/normal-picture-backend-ddd-1.0-SNAPSHOT.jar --spring.profiles.active=local ``` ### 访问API文档 项目启动后,可以通过以下地址访问API文档: ``` http://localhost:8333/api/doc.html ``` ## 项目结构 ``` normal-picture-backend-ddd/ ├── src/main/java/com/normal/picturebackend/ │ ├── application/ # 应用层 │ │ ├── dto/ # 数据传输对象 │ │ ├── service/ # 应用服务 │ │ └── utils/ # 工具类 │ ├── domain/ # 领域层 │ │ ├── picture/ # 图片域 │ │ ├── space/ # 空间域 │ │ └── user/ # 用户域 │ ├── infrastructure/ # 基础设施层 │ │ ├── config/ # 配置类 │ │ ├── cos/ # 腾讯云COS集成 │ │ ├── mapper/ # MyBatis映射器 │ │ └── websocket/ # WebSocket配置 │ ├── interfaces/ # 接口层 │ │ ├── controller/ # REST控制器 │ │ ├── vo/ # 视图对象 │ │ └── interceptor/ # 拦截器 │ └── shared/ # 共享层 │ ├── common/ # 通用常量 │ ├── event/ # 事件处理 │ └── exception/ # 异常处理 ├── src/main/resources/ │ ├── mapper/ # MyBatis XML映射文件 │ └── application*.yml # 配置文件 └── sql/ # 数据库脚本 ``` ## 核心模块详解 ### 图片上传流程 1. 客户端发起上传请求 2. 系统校验用户权限和空间配额 3. 生成唯一文件名和访问URL 4. 上传到腾讯云COS(或本地存储) 5. 保存图片元数据到数据库 6. 更新缓存和索引 ### 权限控制 - 采用RBAC(基于角色的访问控制)模型 - 支持用户、角色、权限三级控制 - 空间级别的细粒度权限管理 - 使用Sa-Token实现无状态认证 ### 缓存策略 - L1缓存:Caffeine本地缓存(应用级) - L2缓存:Redis分布式缓存(服务级) - 缓存穿透保护:布隆过滤器 - 缓存雪崩防护:随机过期时间 ## 部署说明 ### 生产环境部署 1. 配置生产环境配置文件 `application-prod.yml` 2. 设置JVM参数: ```bash -Xms2g -Xmx4g -XX:+UseG1GC -XX:+PrintGCDetails ``` 3. 使用Docker部署: ```dockerfile FROM openjdk:17-jre-slim COPY target/normal-picture-backend-ddd-1.0-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"] ``` ### 监控与运维 - 集成Spring Boot Actuator进行健康检查 - 使用Micrometer进行指标监控 - 日志使用Logback,支持异步日志 - 支持分布式链路追踪 ## 开发规范 ### 代码规范 - 遵循阿里巴巴Java开发规范 - 使用Lombok简化代码 - 统一异常处理 - 接口返回统一包装 ### 命名规范 - 包名:全小写,点分隔 - 类名:UpperCamelCase - 方法名:lowerCamelCase - 常量:UPPER_SNAKE_CASE ### Git提交规范 ``` feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式调整 refactor: 代码重构 test: 测试相关 chore: 构建过程或辅助工具的变动 ``` ## 性能优化 ### 数据库优化 - 使用MyBatis Plus分页插件 - 关键字段建立索引 - 读写分离支持 - 连接池参数优化 ### 缓存优化 - 多级缓存架构 - 缓存预热机制 - 缓存更新策略 - 大Key监控 ### 异步处理 - 使用@Async注解实现异步方法 - Disruptor高性能队列处理事件 - 线程池隔离 ## 安全考虑 ### 认证授权 - JWT Token认证 - 接口签名验证 - 防SQL注入 - XSS攻击防护 ### 数据安全 - 敏感信息脱敏 - 数据库连接加密 - 文件存储安全 - 审计日志记录 ## 扩展功能 ### 计划功能 - 图片AI识别标签 - CDN加速支持 - 图片压缩处理 - 批量导入导出 ### 集成方案 - 支持MinIO对象存储 - 支持阿里云OSS - 支持华为云OBS - 支持本地文件系统 ## 问题反馈 如有问题或建议,欢迎提交Issue或Pull Request。 ## 许可证 本项目采用MIT许可证,详见 [LICENSE](LICENSE) 文件。