XuqmGroup
c3968e808d
docs(sdk): 添加 Android SDK 文档和 API 设计规范
...
- 新增 Android SDK 使用文档,包含模块结构、集成方式和快速开始指南
- 添加 SDK API 重设计规范,统一初始化和登录接口设计
- 补充安全设计规范,完善 UserSig 鉴权和敏感数据处理方案
- 创建平台 REST API 规范,定义服务端到服务端的调用接口
- 添加离线推送架构设计,集成各大厂商推送服务与 IM 联动方案
2026-04-29 15:46:40 +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
30a9f71eac
feat(chat): 添加聊天界面视图模型和联系人管理功能
...
- 实现 ChatViewModel 处理消息收发、历史记录加载和状态管理
- 添加消息搜索、草稿保存、引用回复等功能
- 实现多媒体附件发送包括图片、视频、音频和文件
- 添加群组提及用户功能和消息撤回机制
- 实现联系人管理功能包括好友搜索、添加、删除和黑名单管理
- 添加好友请求处理和实时消息监听
- 实现会话列表管理包含未读消息统计和实时更新
- 集成 IM SDK 的连接状态管理和事件监听
- 添加消息状态跟踪和超时处理机制
- 实现数据缓存机制优化用户体验
2026-04-28 22:32:21 +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
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