feat(server): implement chat file TTL cleanup and enhance JPush vendor channel support
All checks were successful
Build Backend / build (push) Successful in 3m1s
Build Backend / build-docker (push) Successful in 2m10s

Add FileCleanupWorker for automatic expiration of chat files with configurable retention period and batch processing. Files uploaded via `/api/v1/uploads/files` are tracked in `uploaded_files` table with expiration timestamps, then deleted from S3 and database upon expiry. Expired file URLs are injected as `"expired": true` in message responses.

Extend JPush push notification configuration with vendor-specific channel_id support (xiaomi, huawei, oppo, vivo, meizu, honor, fcm) for differentiating system vs chat notifications. Add iOS APNs thread-id grouping configuration for notification categorization.
This commit is contained in:
lafay
2026-06-17 20:41:55 +08:00
parent d9aa4b46c3
commit a0e210feab
24 changed files with 1573 additions and 127 deletions

View File

@@ -68,9 +68,10 @@ func ProvideMessageHandler(
messageService service.MessageService,
userService service.UserService,
groupService service.GroupService,
uploadService service.UploadService,
publisher ws.MessagePublisher,
) *handler.MessageHandler {
return handler.NewMessageHandler(chatService, messageService, userService, groupService, publisher)
return handler.NewMessageHandler(chatService, messageService, userService, groupService, uploadService, publisher)
}
// ProvideSystemMessageHandler 提供系统消息处理器