feat(admin): add admin endpoint to list user devices with JPush registration IDs
- 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:
@@ -14,12 +14,14 @@ import (
|
||||
// AdminUserHandler 管理端用户处理器
|
||||
type AdminUserHandler struct {
|
||||
adminUserService service.AdminUserService
|
||||
pushService service.PushService
|
||||
}
|
||||
|
||||
// NewAdminUserHandler 创建管理端用户处理器
|
||||
func NewAdminUserHandler(adminUserService service.AdminUserService) *AdminUserHandler {
|
||||
func NewAdminUserHandler(adminUserService service.AdminUserService, pushService service.PushService) *AdminUserHandler {
|
||||
return &AdminUserHandler{
|
||||
adminUserService: adminUserService,
|
||||
pushService: pushService,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,3 +105,22 @@ func (h *AdminUserHandler) UpdateUserStatus(c *gin.Context) {
|
||||
|
||||
response.Success(c, userDetail)
|
||||
}
|
||||
|
||||
// GetUserDevices 获取用户设备列表(含 registration_id)
|
||||
// GET /api/v1/admin/users/:id/devices
|
||||
// 供后台查询目标用户各设备的 JPush RegistrationID(push_token),用于排查推送问题或手动推送测试。
|
||||
func (h *AdminUserHandler) GetUserDevices(c *gin.Context) {
|
||||
userID := c.Param("id")
|
||||
if userID == "" {
|
||||
response.BadRequest(c, "user id is required")
|
||||
return
|
||||
}
|
||||
|
||||
devices, err := h.pushService.GetUserDevices(c.Request.Context(), userID)
|
||||
if err != nil {
|
||||
response.InternalServerError(c, "failed to get user devices")
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c, dto.DeviceTokensToAdminResponse(devices))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user