提交图

24 次代码提交

作者 SHA1 备注 提交日期
XuqmGroup
3f4d78f175 feat: 补充后端API对齐腾讯IM
新增API:
- GET /api/im/admin/users/state - 查询用户在线状态
- POST /api/im/admin/users/kick - 强制用户下线
- POST /api/im/admin/messages/batch-send - 批量发消息
- POST /api/im/admin/messages/read - 管理员设置消息已读
- POST /api/im/admin/messages/import - 导入历史消息
- POST /api/im/friends/check - 校验好友关系
- PUT /api/im/groups/{groupId}/members/{userId}/info - 修改群成员资料

新增字段:
- ImGroupEntity.memberInfo - 群成员资料(JSON)

修复编译import错误
2026-05-01 23:13:09 +08:00
XuqmGroup
83cf9541e7 feat: 简化 IM 登录接口,JWT 永久有效,离线推送同步化
- /api/im/auth/login 移除 nickname/avatar 参数
- AppRequestSignatureUtil.payload 简化签名(不含 nickname/avatar)
- JwtUtil 默认过期时间改为极大值(≈100年)
- ImAccountService.validateSignature/loginOrRegister 适配
- DemoAuthService.callImServiceLogin 不传 nickname
- XuqmImServerSdk.login() 签名方法同步简化
- ImPushBridge 改为批量同步调用 /api/push/internal/notify
- PushDispatcher 移除 @Async
2026-05-01 22:18:54 +08:00
XuqmGroup
dd465becea feat(sdk): 更新 SDK 设计文档和 API 重构
- 添加 expiresAt 和 refreshUserSig 参数支持自动续签
- 修改 PushSDK 初始化方式,自动完成设备注册和厂商初始化
- 调整过期续签策略,从提前 15 分钟改为提前 5 分钟触发
- 重构 RN SDK 文档结构,简化安装和使用方式
- 更新统一登录流程,支持 profile 信息传递
- 添加 IM 数据库自动隔离功能
- 修复 Android 群消息聚合问题
- 补充自动化测试验证和错误处理机制
2026-05-01 21:27:39 +08:00
XuqmGroup
8c7528c3e9 docs(testing): 添加测试文档和修复多个平台SDK问题
- 新增 BUG_TRACKER.md 记录已修复和开放的bug
- 新增 TEST_EXECUTION_2026-04-30.md 自动化测试执行报告
- 新增 TEST_PROGRESS.md 测试进度跟踪文档
- 修复 Android SDK connectedCheck 内存不足问题
- 修复 Android sample-app CAMERA 权限 lint 失败
- 修复 Android UpdateSDK longVersionCode minSdk lint 失败
- 修复 RN Chat Demo Jest 无法解析本地 SDK 源码包
- 修复 Python Server SDK 回调消息解析与顶层导出错误
- 修复 Vue3 SDK package exports 条件顺序警告
- 修复 im-service 群消息不进入会话聚合列表问题
- 修复 im-service 对外时间字段单位不一致问题
- 修复 RN SDK 历史消息 upsert 丢失回推状态问题
- 修复 Android 黑名单操作静默失败问题
- 修复 AppSecret 调用无鉴权安全问题
- 修复 IM Token 无过期信息问题
- 修复 RN SDK 草稿同步服务端数据污染问题
- 修复 Vue3 SDK 撤回编辑后依赖 WS 刷新延迟问题
- 修复 im-service 消息摘要不支持媒体类型问题
2026-04-30 16:54:10 +08:00
XuqmGroup
f6c06db04b feat(deploy): 添加生产环境部署配置和联调环境切换功能
- 新增 .env.production.example 配置文件,包含所有微服务的数据库和Redis配置
- 添加 compose.production.yaml Docker Compose部署文件,定义web和各服务容器
- 实现Android SDK环境切换功能,支持外部服务和本地联调模式切换
- 添加推送注册状态管理和接收开关设置界面
- 集成演示服务的应用密钥客户端和认证服务实现
- 完善文档说明各SDK模块的集成和使用方法
2026-04-30 11:47:01 +08:00
XuqmGroup
d7f5fd02c2 docs(server): 添加服务器信息记录和联调接口文档
- 创建信息记录文档,包含项目管理要求、产物范围、Git仓库、制品仓库信息
- 添加服务器部署信息,包括应用服务器、MySQL/Redis服务器、Jenkins服务配置
- 记录邮件服务、DNS/HTTPS证书配置及安全备注
- 创建API联调文档,包含线上入口、ID约定、初始化管理员账号信息
- 添加统一响应格式、常见错误码、鉴权规则说明
- 提供核心接口清单,涵盖tenant-service、im-service、push-service等服务
- 补充curl示例,包含运营平台登录、IM登录、会话管理等操作示例
- 实现会话控制器,支持置顶、免打扰、标记已读、草稿等功能
- 添加全局异常处理器,统一处理业务异常和参数校验错误
- 创建IM管理控制器,提供用户管理、好友请求、黑名单等管理功能
2026-04-29 12:33:25 +08:00
XuqmGroup
b89cd35b15 feat(im): add tenant admin edit flows 2026-04-29 10:04:17 +08:00
XuqmGroup
eae18723a5 feat(update): add app store distribution — store config, server-side submission, scheduled publish, webhook
feat(im): expand IM API with friends, groups, admin ops, operation logging

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 00:34:17 +08:00
XuqmGroup
73060518f0 feat(im): 添加即时通讯SDK核心功能
- 实现IM API接口定义,包括消息、群组、好友、黑名单等功能
- 定义IM消息相关数据模型,包含聊天类型、消息类型、用户资料等
- 实现ImSDK单例类,提供登录、消息发送、群组管理、好友管理等核心功能
- 添加WebSocket连接管理,支持自动重连机制
- 实现历史消息查询、群组操作、用户资料管理等API调用
- 添加会话状态管理,支持置顶、静音、草稿等功能
- 集成文件上传结果,支持多媒体消息发送
- 实现连接状态监听和事件回调机制
2026-04-28 21:05:06 +08:00
XuqmGroup
1e395171a3 feat(chat): 添加聊天界面和文件更新SDK功能
- 实现完整的聊天界面UI组件,支持文本、图片、视频、音频、文件等多种消息类型
- 集成IM消息收发功能,实现消息气泡显示和用户头像占位符
- 添加媒体文件选择和拍摄功能,支持相册图片、视频及相机拍照录像
- 实现语音录制和播放功能,包含按住说话交互和权限处理
- 添加群组提及功能,支持@用户和提及候选列表显示
- 实现消息回复和引用功能,支持消息长按回复操作
- 添加本地消息搜索功能,支持搜索当前会话的历史消息
- 实现文件上传下载功能,集成FileSDK进行文件传输管理
- 添加应用更新检查功能,集成UpdateSDK支持版本更新
- 实现消息状态显示,包括发送、送达、已读等状态标识
- 添加群组已读人数统计,显示消息在群聊中的阅读情况
- 实现草稿保存和恢复功能,支持断点续聊体验
- 添加连接状态横幅,实时显示IM服务连接状态
- 实现滚动加载更多历史消息,优化大量消息的性能表现
- 添加多媒体文件下载保存功能,支持保存到应用专属目录
2026-04-28 20:11:38 +08:00
XuqmGroup
bbf1fd0769 docs(server): 添加平台文档总览并实现 IM 服务端 SDK
- 新增 PLATFORM_OVERVIEW.md 文档,包含仓库索引、整体架构、核心概念等
- 实现 XuqmImServerSdk 类,提供完整的 IM 功能接口
- 添加登录认证、消息发送、会话管理、好友关系等核心功能
- 实现群组管理、关键词过滤、全局禁言等高级功能
- 提供配置管理和统计查询等管理功能
2026-04-28 17:29:17 +08:00
XuqmGroup
ec23b9890b feat(im): 添加即时通讯功能模块
- 添加了 IM API 接口定义,包含登录、消息、群组、好友等接口
- 实现了 ImSDK 核心功能,支持发送各类消息和管理会话
- 集成了 WebSocket 连接管理和自动重连机制
- 添加了本地联系人缓存并优化对话标题显示逻辑
- 实现了 HarmonyOS 平台 HTTP 客户端基础功能
2026-04-28 16:55:12 +08:00
XuqmGroup
962e1dc722 feat(sample): 添加示例应用的核心功能模块
- 实现环境配置管理,支持外部和本地主机模式切换
- 集成Demo API接口,包含登录、注册、文件上传等功能
- 构建附件处理仓库,支持图片、视频、音频和文件发送
- 开发认证仓库,管理用户会话和IM令牌刷新机制
- 添加语音录制功能,支持实时音频消息录制
- 创建依赖注入容器,统一管理应用组件实例
- 实现登录界面,提供用户认证交互功能
- 开发聊天界面,集成消息收发和媒体处理功能
2026-04-28 16:08:07 +08:00
XuqmGroup
763c097289 feat(chat): 添加聊天功能相关API接口、本地缓存和数据仓库
- 添加DemoApi接口定义用户认证和资料管理API
- 实现LocalImCache用于本地存储IM对话和消息历史
- 添加MessageContent模型处理多媒体消息内容
- 创建AttachmentRepository处理图片视频音频文件发送
- 实现AuthRepository管理用户登录注册和会话
- 添加VoiceRecorder支持语音录制功能
- 创建AppDependencies依赖注入容器
- 添加ChatScreen界面组件实现聊天UI逻辑
2026-04-28 09:45:20 +08:00
XuqmGroup
bc329ec566 feat(chat): 添加聊天界面和会话管理功能
- 实现了本地IM缓存功能,支持会话、消息历史和草稿的存储
- 开发了聊天界面UI组件,包含消息列表、输入框和搜索功能
- 创建了聊天相关的ViewModel,处理消息收发和状态管理
- 构建了会话列表界面,支持置顶、免打扰和删除操作
- 集成了群组功能,实现群聊管理和群设置界面
- 添加了实时消息推送和会话状态同步机制
2026-04-27 23:41:58 +08:00
XuqmGroup
624554a173 fix: group history endpoint, user-only group list, reset-password, change-password path
- im-service: add GET /messages/group-history/{groupId} for group message history
- im-service: add findGroupHistory query to ImMessageRepository
- im-service: listGroups now filters by user membership (JSON_CONTAINS on member_ids)
- im-service: add groupHistory/listUserGroups/addGroupMember/removeGroupMember methods
- demo-service: add POST /auth/reset-password (unauthenticated forgot-password flow)
- demo-service: rename /user/reset-password → /user/change-password to match client

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 11:57:46 +08:00
XuqmGroup
8011fe591a feat(im-service): add friend system and conversations endpoint
- Add im_friends table with bi-directional add/remove (FriendController)
- Add GET /api/im/conversations: returns per-conversation latest message summaries
  using UNION of SINGLE/GROUP queries with correct peer ID computation
- Add ConversationSummary projection interface in ImMessageRepository

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 17:27:06 +08:00
XuqmGroup
526f3cf944 feat: add demo-service, file-service; SDK remote config endpoint; IM fuzzy search
- demo-service (port 8085): auth, user profile, demo-to-IM token bridge
- file-service (port 8086): SHA-256 dedup upload, ImageIO thumbnails, 30-day reclaim
- tenant-service: GET /api/sdk/config?appId returns imWsUrl/fileServiceUrl/features
- im-service: GET /api/im/admin/users/search fuzzy match by userId or nickname

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 16:41:10 +08:00
XuqmGroup
161218420c feat: IM admin APIs, appSecret security, remove SecretKey, CI/CD pipeline
- im-service: add admin register user and create group endpoints
- tenant-service: add reveal/reset appSecret with email verification
- tenant-service: remove secretKey from FeatureService (app appKey/appSecret is sufficient)
- tenant-service: service activation now requires ops approval via request-activation
- Add Jenkinsfile for parameterized build → Alibaba Cloud ACR → SSH deploy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 20:53:48 +08:00
XuqmGroup
3285dfe79c feat: admin APIs for IM management and version management
- ImAdminController: list users (paged), ban/unban, list groups, message stats
- ImMessageRepository: countByAppId, countTodayByAppId
- AppVersionController: unpublish + gray release (grayEnabled, grayPercent)
- RnBundleController: list, unpublish, gray release
- AppVersionEntity/RnBundleEntity: add grayEnabled, grayPercent fields

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 16:16:33 +08:00
XuqmGroup
37f34876be feat(im): Redis Pub/Sub 集群广播,支持水平扩展
架构变更:
- 新增 cluster/ClusterMessage.java:消息信封 record
- 新增 cluster/ImClusterPublisher.java:发布到 Redis im:broadcast 频道
- 新增 cluster/ImClusterListener.java:订阅 Redis,转发给本地 WS 会话
- 新增 config/RedisClusterConfig.java:注册 Redis 监听容器
- 修改 MessageService:send/revoke 改用 ImClusterPublisher 替代直接推送

集群路由原理:任意节点收到消息 → 写 DB → 发布 Redis →
所有节点监听并尝试推送 → 只有持有目标 session 的节点实际送达

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 15:08:54 +08:00
XuqmGroup
94aa4001d3 feat(im-service): 添加群组 HTTP API (GroupController)
- POST /api/im/groups:创建群组(含成员列表)
- GET  /api/im/groups:按 appId 列出群组
- POST /api/im/groups/{groupId}/members:添加成员
- DELETE /api/im/groups/{groupId}/members/{targetUserId}:移除成员
ImGroupService 已有实现,仅补充 controller 层

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:14:47 +08:00
XuqmGroup
8fe4ae99cc feat: finalize backend deployment and api docs 2026-04-24 10:42:11 +08:00
XuqmGroup
a719c08a5a chore: initial commit 2026-04-21 22:07:29 +08:00