提交图

91 次代码提交

作者 SHA1 备注 提交日期
XuqmGroup
afb57a5d5f feat: ops应用列表支持租户筛选 + 返回租户名称 + 服务按类型展示
- AppRepository: 新增 JOIN 查询,返回应用+租户名称
- OpsService: listApps 支持 tenantId 筛选,getAppDetail 按 serviceType 去重
- OpsController: listApps 新增 tenantId 可选参数

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 00:24:10 +08:00
XuqmGroup
805ef3900b fix: Jenkins checkout 使用 BRANCH 参数而非 scm 默认分支
checkout scm 忽略 BRANCH 参数,使用 Jenkins 任务配置的 SCM 分支。
改为显式 checkout 并引用 params.BRANCH,确保构建最新代码。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 23:56:34 +08:00
XuqmGroup
10f0043f15 License服务改造:平台无关、ops管理最大设备数、有效期不可变
- LICENSE审批只创建1条FeatureServiceEntity记录(不分平台)
- FeatureServiceManager扩展平台无关查询到LICENSE
- LicenseServiceClient新增getAppLicenseStatus/updateMaxDevices方法
- OpsController新增license管理接口(GET状态、PUT最大设备数)
- AppLicenseService.update中expiresAt一旦设置不可修改
- 审批流程支持传入expiresAt参数

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 22:38:46 +08:00
XuqmGroup
0ed09a8229 一大波改动 2026-05-15 22:11:03 +08:00
XuqmGroup
bc1165d22e Align license service with app model 2026-05-15 21:42:10 +08:00
XuqmGroup
4f59fead0a Store license check user info 2026-05-15 21:29:48 +08:00
XuqmGroup
d5b8f03996 Fix license service activation visibility 2026-05-15 21:25:58 +08:00
XuqmGroup
7ce4d728cc Use auth domain for license files 2026-05-15 21:09:24 +08:00
XuqmGroup
acfc2cbfbe Add license service and tenant integration 2026-05-15 21:00:24 +08:00
XuqmGroup
b24e3669cb 一大波改动 2026-05-15 16:47:22 +08:00
XuqmGroup
fb8a9d453d fix(update): 修复华为上传URL响应格式 urlInfo 单对象处理
华为实际返回格式为 urlInfo (单对象) 而非 urlList (列表),
代码需同时支持两种格式:
- urlList: 列表形式(旧版API)
- urlInfo: 单对象形式(当前API,含 url/objectId/headers/method)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 00:16:19 +08:00
XuqmGroup
2b975c990a fix(docker): 移除 BuildKit cache mount,兼容无 buildx 的标准 Docker
--mount=type=cache 语法需要 BuildKit/buildx 支持,
生产服务器无 buildx 插件导致每次构建实际使用旧缓存层。
移除该指令后可用标准 docker build 正常编译。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 00:06:36 +08:00
XuqmGroup
ac35f7e2fb fix(update): 修复华为上传URL NPE及提交批次超时限制
- submitToHuawei: urlList 字段做防御性处理,找不到时降级到 data,
  同时输出实际响应内容方便排查
- executeSubmitAsync: allOf.join() 改为 get(20, MINUTES),
  防止大文件上传卡住时批次线程永久阻塞

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 23:58:10 +08:00
XuqmGroup
1a18925034 feat: 厂商应用商店提交功能完善及push用户管理
update-service:
- 修复华为 appId 解析 NPE(支持直接从响应体顶层读取 value 字段)
- 修复 OPPO 更新描述不足5字符时自动补空格
- 修复 VIVO 签名中文字符需 URL 编码
- 修复 RestTemplate 无超时(30s连接/5min读取)
- AppVersionEntity 添加 grayCallbackUrl 字段

tenant-service:
- FeatureServiceController switch 添加 FILE 分支(修复编译错误)
- FeatureServiceManager 添加 buildFileConfig 方法
- AppController 添加应用用户列表代理端点
- AppUserClient 新增 IM/Push 用户列表客户端

push-service:
- 新增 PushUserEntity/PushUserRepository/PushAccountService
- 新增 PushAuthController(内部鉴权接口)
- PushManagementController 添加用户管理接口
- PushAppSecretClient 对接 tenant-service 鉴权

im-service:
- ImAccountRepository/ImAccountService 添加用户搜索接口
- ImAdminController 添加管理端用户列表
- InternalPresenceController 完善在线状态接口

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 23:40:35 +08:00
XuqmGroup
340a54623b fix: add --platform to docker pull and handle pull failure 2026-05-14 15:37:19 +08:00
XuqmGroup
11092165b5 fix: add --platform=linux/amd64 to Jenkinsfile for cross-platform build 2026-05-14 15:29:19 +08:00
XuqmGroup
0a245d21bf fix: add --platform=linux/amd64 to Dockerfile for cross-platform build 2026-05-14 15:22:18 +08:00
XuqmGroup
780f7310a8 fix: add im-sdk module to parent pom.xml to fix Maven build 2026-05-14 14:39:08 +08:00
XuqmGroup
71929fef67 docs(deploy): 添加完整的部署文档和配置示例
- 新增 compose.production.yaml 和 compose.production.server.yaml 部署配置
- 添加 nginx.dev.xuqinmin.com.conf 和 nginx.sentry.xuqinmin.com.conf 反向代理配置
- 创建详细的部署指南文档 deploy/README.md,涵盖架构设计和部署步骤
- 添加前端访问文档 web/README.md,包含线上地址和接口说明
- 补充平台文档总览 README.md,整合各模块文档入口
- 配置多服务容器化部署,包括 tenant-service、im-service、push-service 等
- 设置外部数据库和 Redis 连接配置,确保服务间正确通信
- 配置 WebSocket 和 API 路由转发规则,支持实时通信和版本更新服务
2026-05-09 14:53:42 +08:00
Jenkins CI
d54bfe25f1 ci(jenkins): optimize Jenkinsfile for Windows node 2026-05-08 18:47:01 +08:00
XuqmGroup
cf2013a52d feat(im): 添加平台事件通知功能支持应用审核状态实时更新
- 新增 ImPlatformEventController 提供令牌获取接口
- 新增 InternalImPlatformEventController 处理内部通知请求
- 实现 ImPlatformEventService 核心服务逻辑包括令牌签发和消息推送
- 添加 StoreReviewImNotifier 在更新服务中触发审核状态变更通知
- 在前端平台中集成实时审核状态更新功能
- 配置各项目环境版本管理文件 (.java-version, .nvmrc)
- 更新 Docker 忽略文件和 Maven 配置以优化构建流程
2026-05-08 18:32:46 +08:00
XuqmGroup
dc1ada94ea docs(deploy): 添加部署文档和安全设计规范
- 新增 XuqmGroup 部署文档,包含部署方案、架构建议和部署步骤
- 添加安全设计规范,涵盖密码安全、AppSecret验证和服务端API认证
- 补充平台REST API规范,定义Server-to-Server调用接口和错误码
- 创建Java IM服务端SDK计划文档,规划Maven包发布和接口实现
2026-05-08 18:32:00 +08:00
XuqmGroup
0385b2010a feat(update): 添加应用更新检查功能支持用户ID参数
- 在UpdateApi接口中新增可选的userId查询参数
- 新增UpdateSDK对象用于统一管理应用更新逻辑
- 实现应用版本检查、下载安装和APK文件处理功能
- 添加下载URL规范化处理逻辑
- 在Flutter SDK中新增update模块实现跨平台更新功能
- 在iOS SDK中新增UpdateSDK类提供应用更新检查接口
- 支持Android和iOS平台的应用商店跳转功能
- 添加React Native SDK的更新检查和插件注册功能
- 实现RN Bundle的检查、下载和缓存机制
2026-05-08 12:00:33 +08:00
XuqmGroup
3e55e9d9b6 fix: expose appKey on service activation requests 2026-05-08 10:22:39 +08:00
XuqmGroup
9bb9868d31 docs: align api guide with appKey identity 2026-05-08 10:18:20 +08:00
XuqmGroup
493bb73f5a feat: use appKey as app identifier in tenant service 2026-05-08 10:09:22 +08:00
XuqmGroup
77dafd76bf chore: sync local changes 2026-05-07 19:39:42 +08:00
XuqmGroup
9cb352bb99 fix(push): 修复小米推送 restricted_package_name 硬编码问题
从推送配置中读取 Android 包名,配置缺失时记录警告并跳过推送,
不再使用 com.example.app 占位值导致推送无法送达。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 08:22:57 +08:00
XuqmGroup
538022b5f0 feat(im/push): 互踢配置与推送可达设备精选
新增三种多端登录模式(MULTI_DEVICE_FREE / SAME_PLATFORM_ONE /
SINGLE_DEVICE),在 WebSocketConfig CONNECT 时提取 appId 并存入
auth details;ImSessionKickListener 监听 SessionConnectedEvent,
向已有会话发送 KICKED 系统消息实现服务端告知踢线。

PushDispatcher.selectTargets 按登录模式精选推送设备:自由模式取
每厂商最新设备,相同平台踢旧模式取每平台最新设备,单设备模式只
取全局最新设备。TenantImConfigClient / ImFeatureConfigClient 同步
支持新配置字段,并向后兼容旧 allowMultiDeviceLogin boolean。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 07:16:39 +08:00
XuqmGroup
7dc00f18bf feat(push): 添加租户侧推送管理接口
新增 PushManagementController,提供 /api/push/admin/** 接口供
租户平台查询用户设备在线状态、设备登录日志及发送测试离线推送。
在 PushDiagnosticsService 增加 searchByUserId 方法。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 23:17:57 +08:00
XuqmGroup
a408b2b39a feat(push): 添加推送服务功能支持
- 新增推送相关的类型定义,包括消息类型、聊天类型、推送配置等接口
- 实现 HarmonyOS 推送 SDK,集成 HarmonyOS NEXT Push Kit 服务
- 实现 iOS 推送 SDK,支持 APNS 推送注册和消息接收
- 添加服务器端 APNS 推送提供商,支持 JWT 认证和推送消息发送
- 添加服务器端 HarmonyOS 推送提供商基础框架
- 集成推送配置加载和路由功能,支持多渠道推送分类管理
2026-05-05 22:26:32 +08:00
XuqmGroup
824f11c7ea feat(push): 添加推送SDK和消息服务实现
- 实现了 Android 推送 SDK,支持华为、小米、Oppo、Vivo、荣耀、FCM 等厂商推送
- 添加了推送配置管理和设备注册功能
- 实现了推送令牌管理和用户绑定功能
- 添加了消息发送、撤回、编辑等核心消息服务功能
- 实现了单聊和群聊消息历史记录管理
- 添加了消息读取回执和群组消息状态同步
- 实现了消息过滤、黑名单和权限控制
- 添加了离线消息推送和消息预览功能
- 实现了消息 Webhook 回调机制
2026-05-05 22:16:11 +08:00
XuqmGroup
249da309a3 feat(push): 添加推送服务功能支持
- 实现了 ConversationViewModel 来管理对话列表的刷新和状态
- 集成了 FCM 推送服务支持并实现了自动令牌获取机制
- 构建了完整的 PushSDK 推送系统,支持华为、小米、OPPO、VIVO、荣耀等厂商推送
- 添加了推送配置管理和设备注册/注销功能
- 实现了跨平台推送令牌管理和服务绑定逻辑
- 扩展了服务器端功能服务管理器以支持推送服务激活请求流程
2026-05-05 22:02:47 +08:00
XuqmGroup
af4492e3aa feat(push): add GlobalExceptionHandler to expose actual error details
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 19:05:41 +08:00
XuqmGroup
99d6a8d6a4 feat(push): 添加多厂商推送集成支持
- 实现了华为 HMS 推送服务集成
- 实现了小米推送服务集成
- 实现了 OPPO 推送服务集成
- 实现了 vivo 推送服务集成
- 实现了荣耀推送服务集成
- 实现了 FCM 推送服务集成
- 添加了统一的厂商推送接口和检测机制
- 添加了推送配置 API 和存储管理
- 添加了推送令牌管理和设备注册功能
- 添加了模拟器环境的推送测试用例
2026-05-05 17:54:59 +08:00
XuqmGroup
1baa020b74 fix(im): separate SockJS endpoint to /ws/im/sockjs to avoid conflicting with native WebSocket on /ws/im 2026-05-03 12:56:40 +08:00
XuqmGroup
3adffb5897 fix(im): allow tenant admin to access IM admin APIs (kick, batch-send, read, import, user-state)
- Change @PreAuthorize from hasAuthority('ROLE_OPS') to hasAnyAuthority('ROLE_OPS', 'ROLE_TENANT') for 5 daily-operation endpoints
- Keep sensitive endpoints (delete, config, webhook) ROLE_OPS only
2026-05-03 11:23:15 +08:00
XuqmGroup
a8293bb4c4 feat: Java SDK baseUrl 内置默认值;fix: update-service 大文件APK解析、file-service hash去重 2026-05-03 11:00:12 +08:00
XuqmGroup
d2dea0c332 feat(android-sdk): 添加完整的IM客户端SDK实现
- 实现了Android SDK的完整IM功能接口,包括消息、群组、好友、会话等核心功能
- 添加了消息收发、历史记录、撤回编辑等完整的消息操作能力
- 实现了群组管理功能,包括创建、成员管理、权限设置等操作
- 添加了好友关系链管理,支持添加、删除、分组等操作
- 实现了会话管理功能,包括置顶、免打扰、已读状态等
- 添加了黑名单、资料管理、搜索等辅助功能
- 补齐了批量操作接口,提升客户端操作效率
- 实现了WebSocket连接管理和事件监听机制
- 添加了离线消息同步和状态管理功能
2026-05-02 22:57:55 +08:00
XuqmGroup
d27607d14e fix: update-service actuator config; align login model 2026-05-02 12:53:15 +08:00
XuqmGroup
d22d5f7687 docs(project): 更新需求与开发进度对比报告并完善Android SDK接口定义
- 添加了完整的XuqmGroup平台需求与开发进度对比报告
- 实现了Android SDK的ImApi接口定义,涵盖群组、好友、黑名单等完整功能
- 定义了IM消息、会话、群组、用户资料等核心数据模型
- 实现了Android SDK的ImSDK核心功能类,包括连接管理和消息处理
2026-05-02 12:30:31 +08:00
XuqmGroup
15466d4e2b docs: 添加 SDK API 重设计、安全设计规范和测试进度跟踪文档
- 新增 SDK API 重设计规范文档,统一各端 SDK 初始化、登录、消息接口
- 新增安全设计规范文档,涵盖密码安全、AppSecret 验证、令牌存储等安全要点
- 新增 Bug 跟踪记录文档,记录已修复问题和开放问题
- 新增测试进度跟踪文档,记录各模块测试覆盖情况和验证结果
2026-05-02 11:45:43 +08:00
XuqmGroup
6d1d2ec634 docs(deploy): 添加部署文档并更新SDK API设计规范
- 新增完整的XuqmGroup部署文档,包含服务器配置、Docker Compose部署策略
- 更新SDK API重设计规范至V2.0,统一各端SDK初始化和登录接口
- 添加安全设计规范文档,涵盖密码安全、AppSecret验证等内容
- 新增离线推送架构设计文档,定义厂商推送集成方案
- 重构SDK登录流程,统一使用userId + userSig鉴权模式
- 移除dbName等外部配置参数,实现零感知平台地址配置
- 完善部署架构图和配置示例文件
2026-05-02 11:29:49 +08:00
XuqmGroup
edd2adc5aa feat(sdk): add new admin APIs to Java SDK
- queryUserState
- kickUsers
- batchSendMessage
- adminSetMsgRead
- importMessages
- checkFriends
- modifyGroupMemberInfo

Also add FriendCheckResult and ImportMessageRequest models.
2026-05-01 23:25:57 +08:00
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
b25b4746e9 feat(server-sdk): 移除服务端SDK的login方法,服务端SDK不应包含登录概念 2026-05-01 22:59:28 +08:00
XuqmGroup
1e53a12a46 chore: 更新所有服务的 JWT 过期时间为永久有效(≈100年) 2026-05-01 22:22:37 +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