提交图

5 次代码提交

作者 SHA1 备注 提交日期
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
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
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