提交图

28 次代码提交

作者 SHA1 备注 提交日期
XuqmGroup
c217e96482 feat(im): 添加即时通讯服务端SDK
- 实现用户登录认证功能,支持签名验证
- 添加消息发送、撤回及历史记录查询功能
- 实现会话管理功能,包括置顶、静音、已读标记等
- 添加好友系统功能,支持好友申请、同意、删除操作
- 实现群组管理功能,包括创建、解散、成员管理等
- 添加黑名单管理功能
- 实现推送服务集成,支持消息推送注册和发送
- 添加应用版本更新功能,支持Android应用和RN Bundle更新
- 实现关键词过滤和全局禁言管理功能
- 添加管理员消息查询和管理功能
- 集成Webhook配置管理功能
- 实现多服务器URL配置支持,包括基础服务、推送服务和更新服务
- 添加multipart表单数据上传支持,用于文件传输
- 实现统一的API请求处理和响应解析机制
2026-04-28 17:43:46 +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
201f3d566f feat(sdk): 添加认证仓库和登录会话管理功能
- 新增 AuthRepository 处理用户认证和加密存储
- 实现 SDK 登录会话管理和自动通知模块
- 添加 IM SDK 登录集成和会话传递
- 更新 API 响应结构支持 userSig 字段
- 添加文件存储服务和上传功能
- 完善文档说明 SDK 架构和集成方式
2026-04-27 19:23:11 +08:00
XuqmGroup
8f95100c7a feat(sample): 添加示例应用的核心功能模块
- 集成依赖管理配置文件 libs.versions.toml,统一管理项目依赖版本
- 实现演示 API 接口定义,包含登录、注册、用户管理等 RESTful 端点
- 创建认证仓库 AuthRepository,处理用户会话管理和加密存储
- 开发登录和注册界面,实现用户身份验证流程
- 构建聊天界面 ChatScreen,支持消息收发和历史记录显示
- 实现联系人管理功能,包含好友搜索和添加删除操作
- 添加会话列表界面,展示最近聊天记录和未读消息提示
2026-04-27 19:00:54 +08:00
XuqmGroup
74faf6ffc0 feat(sdk): 初始化 Android SDK 核心功能模块
- 添加 SDK 配置管理、网络请求客户端和令牌存储功能
- 实现即时通讯 IM 模块,包括消息收发、群组管理和会话功能
- 集成推送服务和应用更新功能模块
- 创建示例应用演示 SDK 使用方法
- 配置项目依赖管理和构建设置
2026-04-27 17:18:55 +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
6ce29edb4c fix: remove findBySecretKey from FeatureServiceRepository
secretKey field was removed from FeatureServiceEntity in the previous
refactor, but the repository method was left behind, crashing startup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 07:18:46 +08:00
XuqmGroup
193c7906cf fix(ci): use full service name in deploy to match compose service names
SERVICE param is already 'tenant-service' etc., compose services are named
the same. Removing the replace() that was stripping the '-service' suffix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 07:09:41 +08:00
XuqmGroup
5bd6d56436 ci: switch sh to bat — Windows Jenkins has no sh in process PATH
docker and ssh are both natively available on Windows. Credential vars
(%ACR_PASS%, %SSH_KEY%) use bat syntax; Groovy vars use GString.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 06:50:01 +08:00
XuqmGroup
b13820032d feat(ops): add service activation request review endpoints
OpsController: GET /api/ops/service-requests (with optional status filter),
POST /api/ops/service-requests/{id}/approve, POST .../reject.
OpsService: listServiceRequests() delegates to existing repository queries.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 06:40:27 +08:00
XuqmGroup
ef9b43417e ci: simplify pipeline — docker build handles full Maven build internally
Remove separate Maven stage. The multi-stage Dockerfile already runs mvn
inside a Linux container, so Windows Jenkins just runs docker build/push.
Server-side docker login pre-configured; deploy only needs docker pull.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 06:35:49 +08:00
XuqmGroup
8d97ebf8d8 ci: use Docker agent for Maven build stage on Windows Jenkins
Run mvn inside maven:3.9-eclipse-temurin-21 Linux container via Docker
Pipeline plugin; Docker/SSH deploy stages remain on native agent so
Docker Desktop socket is available for image push and SSH for deploy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 21:42:52 +08:00
XuqmGroup
1d49d97b01 chore: fill real ACR config and fix email SMTP settings
- Jenkinsfile: set ACR registry to crpi-n44qjpuucgjt8e8c.cn-beijing.personal.cr.aliyuncs.com
- tenant-service: fix email SMTP to smtp.sina.com port 465 with SSL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 21:01:20 +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
f79a27862f feat(sample): 集成 Sentry 异常监控功能
- 添加 Sentry Android SDK 依赖 (版本 8.39.1)
- 在 sample-app 中集成 Sentry 监控插件
- 添加 Sentry 初始化配置到应用 Application 类
- 在 MainActivity 中添加异常上报测试按钮
- 添加闪退测试功能用于验证 Sentry 监控
- 更新 AndroidManifest.xml 配置应用入口点
- 添加新的 gradle wrapper 文件支持项目构建
- 创建 sdk-core、sdk-im、sdk-push、sdk-update 模块基础结构
- 配置各 SDK 模块的 build.gradle.kts 文件
- 更新 libs.versions.toml 添加 Sentry 版本定义
2026-04-24 16:46:38 +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
05c9639523 config: use remote MySQL(39.107.53.187) and Redis(redisdev.xuqinmin.com) 2026-04-21 23:11:05 +08:00
XuqmGroup
3e81034c11 docs: add detailed documentation 2026-04-21 22:25:31 +08:00
XuqmGroup
a719c08a5a chore: initial commit 2026-04-21 22:07:29 +08:00