# 仿飞书应用-23班8组 **Repository Path**: grade24-fullstack-class2/fang-feishu-app-class2-group8 ## Basic Information - **Project Name**: 仿飞书应用-23班8组 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2026-07-02 - **Last Updated**: 2026-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 飞书后端项目 一个仿飞书(Lark)的后端系统,支持 Web 端、客户端和微信小程序。 ## 技术栈 - **运行时**: .NET 9 - **Web 框架**: ASP.NET Core 9 - **ORM**: EF Core 9 / Dapper - **数据库**: PostgreSQL 16+ - **缓存**: Redis 7 - **消息队列**: RabbitMQ - **实时通信**: SignalR - **鉴权**: JWT + OAuth 2.0 - **对象存储**: MinIO - **搜索**: Elasticsearch 8 ## 项目结构 ``` feishu/ ├── src/ │ ├── Feishu.Host/ # 启动项目(Web API 入口) │ ├── Feishu.Core/ # 核心层(实体、接口、通用服务) │ ├── Feishu.Infrastructure/ # 基础设施层(数据库、缓存、MQ 实现) │ ├── Feishu.Shared/ # 共享层(通用工具、扩展方法) │ │ │ ├── Modules/ # 业务模块 │ │ ├── Feishu.Auth/ # 认证模块 │ │ ├── Feishu.Organization/ # 组织架构 │ │ ├── Feishu.IM/ # 即时通讯 │ │ ├── Feishu.Document/ # 文档协作 │ │ ├── Feishu.File/ # 文件管理 │ │ └── Feishu.Search/ # 搜索服务 │ │ │ └── Feishu.Gateway/ # API 网关(可选) │ ├── tests/ # 测试项目 ├── docker/ # Docker 配置 └── docs/ # 文档 ``` ## 核心功能 ### 1. 认证模块 - 手机号/邮箱注册登录 - JWT Token 签发与刷新 - OAuth 2.0 第三方登录(微信小程序登录) - 多端登录管理 ### 2. 组织架构模块 - 部门管理(树形结构) - 成员管理 - 角色权限(RBAC) ### 3. 即时通讯模块 - 单聊/群聊 - 消息类型:文字、图片、文件、富文本 - 消息已读状态 - 历史消息查询 - SignalR 实时推送 ### 4. 文档协作模块 - 在线文档(富文本) - 表格 - 知识库空间 - 版本历史 ### 5. 文件管理模块 - 文件上传到 MinIO - 图片/视频/文件分类 - 文件分享链接 ## 快速开始 ### 1. 环境准备 确保已安装以下软件: - .NET 9 SDK - PostgreSQL 16+ - Redis 7 - MinIO(可选,用于文件存储) ### 2. 配置数据库 编辑 `src/Feishu.Host/appsettings.json`,修改数据库连接字符串: ```json { "ConnectionStrings": { "DefaultConnection": "Host=localhost;Port=5432;Database=feishu;Username=postgres;Password=your_password", "Redis": "localhost:6379" } } ``` ### 3. 运行项目 ```bash cd src/Feishu.Host dotnet run ``` 项目启动后,访问 Swagger UI:`https://localhost:5001/swagger` ## API 文档 ### 认证相关 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/refresh` - 刷新令牌 - `POST /api/auth/logout` - 退出登录 ### 用户相关 - `GET /api/user/me` - 获取当前用户信息 - `PUT /api/user/me` - 更新用户信息 - `POST /api/user/me/avatar` - 更新头像 - `POST /api/user/me/password` - 修改密码 - `GET /api/user/search` - 搜索用户 ### 组织相关 - `POST /api/organization` - 创建组织 - `GET /api/organization/my` - 获取我的组织列表 - `GET /api/organization/{id}` - 获取组织详情 - `PUT /api/organization/{id}` - 更新组织信息 - `DELETE /api/organization/{id}` - 删除组织 - `GET /api/organization/{id}/members` - 获取组织成员列表 - `POST /api/organization/{id}/members` - 添加成员 - `DELETE /api/organization/{id}/members/{userId}` - 移除成员 ### 部门相关 - `POST /api/organizations/{organizationId}/department` - 创建部门 - `GET /api/organizations/{organizationId}/department/tree` - 获取部门树 - `GET /api/organizations/{organizationId}/department/{id}` - 获取部门详情 - `PUT /api/organizations/{organizationId}/department/{id}` - 更新部门 - `DELETE /api/organizations/{organizationId}/department/{id}` - 删除部门 - `POST /api/organizations/{organizationId}/department/{id}/move` - 移动部门 - `GET /api/organizations/{organizationId}/department/{id}/members` - 获取部门成员 ### 会话相关 - `POST /api/conversation/private` - 创建单聊会话 - `POST /api/conversation/group` - 创建群聊会话 - `GET /api/conversation/my` - 获取我的会话列表 - `GET /api/conversation/{id}` - 获取会话详情 - `POST /api/conversation/{id}/members` - 添加群成员 - `DELETE /api/conversation/{id}/members/{userId}` - 移除群成员 - `POST /api/conversation/{id}/leave` - 退出会话 ### 消息相关 - `POST /api/message` - 发送消息 - `GET /api/message/conversation/{conversationId}` - 获取会话消息列表 - `GET /api/message/{id}` - 获取消息详情 - `POST /api/message/{id}/recall` - 撤回消息 - `DELETE /api/message/{id}` - 删除消息 - `POST /api/message/read` - 标记已读 - `GET /api/message/unread/{conversationId}` - 获取未读消息数量 ### 文档相关 - `POST /api/document` - 创建文档 - `GET /api/document/{id}` - 获取文档详情 - `PUT /api/document/{id}` - 更新文档 - `DELETE /api/document/{id}` - 删除文档 - `GET /api/document/space/{spaceId}` - 获取空间下的文档列表 - `GET /api/document/{id}/versions` - 获取文档版本历史 - `POST /api/document/{id}/restore/{version}` - 恢复到指定版本 - `GET /api/document/search` - 搜索文档 ### 文件相关 - `POST /api/file/upload` - 上传文件 - `GET /api/file/{id}` - 获取文件详情 - `GET /api/file/{id}/download` - 下载文件 - `GET /api/file/{id}/url` - 获取文件访问 URL - `DELETE /api/file/{id}` - 删除文件 - `GET /api/file/my` - 获取我的文件列表 ## SignalR Hub ### 即时通讯 Hub 连接地址:`/hub/chat` **客户端方法:** - `JoinConversation(conversationId)` - 加入会话 - `LeaveConversation(conversationId)` - 离开会话 - `SendMessage(conversationId, messageType, content, extra, replyToId)` - 发送消息 - `MarkAsRead(conversationId, messageId)` - 标记已读 - `Typing(conversationId)` - 正在输入 - `SendPrivateMessage(targetUserId, messageType, content, extra)` - 发送私聊消息 **服务端事件:** - `ReceiveMessage` - 接收消息 - `MessageRead` - 消息已读通知 - `UserTyping` - 用户正在输入 - `UserOnline` - 用户上线 - `UserOffline` - 用户下线 ### 通知 Hub 连接地址:`/hub/notification` **服务端事件:** - `ReceiveNotification` - 接收通知 ## 开发计划 - [x] Phase 1: 基础框架搭建 - [x] Phase 2: 认证模块 - [x] Phase 3: 组织架构模块 - [x] Phase 4: 即时通讯模块 - [ ] Phase 5: 文件与文档模块 - [ ] Phase 6: 搜索功能 - [ ] Phase 7: 微信小程序登录 - [ ] Phase 8: 性能优化 ## 许可证 MIT License