feat(admin): add admin endpoint to list user devices with JPush registration IDs
All checks were successful
Build Backend / build (push) Successful in 2m32s
Build Backend / build-docker (push) Successful in 6m22s

- Add AdminDeviceTokenResponse DTO including push_token (RegistrationID) for push debugging
- Add DeviceTokenToAdminResponse and DeviceTokensToAdminResponse converters
- Inject PushService into AdminUserHandler for retrieving user devices
- Register GET /api/v1/admin/users/:id/devices route for querying target user's device tokens
This commit is contained in:
lafay
2026-06-18 20:07:24 +08:00
parent 821e066446
commit cb85c62093
10 changed files with 116 additions and 23 deletions

View File

@@ -342,14 +342,9 @@ func (w *PushWorker) handleMsg(streamMsg redis.XMessage) error {
allTargetIDs = append(allTargetIDs, p.UserID)
}
var offlineTargetIDs []string
if w.publisher != nil && len(allTargetIDs) > 0 {
_, offlineTargetIDs = w.publisher.FilterOnline(allTargetIDs)
} else {
offlineTargetIDs = allTargetIDs
}
for _, uid := range offlineTargetIDs {
// 直接对所有参与者推送(不按 WS 在线过滤):
// 多设备场景下某端在线不代表所有端在线,由 PushChatMessage 推送到用户所有移动设备
for _, uid := range allTargetIDs {
if pushErr := w.pushSvc.PushChatMessage(ctx, uid, pushMsg.ConversationID, &sender, conv.Type, convName, message, groupID, groupAvatar); pushErr != nil {
zap.L().Debug("push worker: JPush chat message failed",
zap.String("userID", uid),