feat: 新增 /api/v1/sites/{siteId}/info 站点信息反馈接口, 支持多名称/多地址/状态/备注

This commit is contained in:
mediabot-pt
2026-06-30 00:16:05 +08:00
parent a4d5c9aa4f
commit 48d0e6a247
3 changed files with 104 additions and 0 deletions

View File

@@ -66,4 +66,33 @@ public class SiteController {
Site site = siteService.submitSite(siteId, name, description, baseUrl, iconUrl, siteType, submitterId);
return ApiResponse.success(siteService.toDTO(site));
}
/**
* 提交站点信息反馈(需 HMAC 鉴权)
* 接收站点状态、多名称、多地址、备注等信息
*/
@PostMapping("/{siteId}/info")
public ApiResponse<SiteDTO> submitSiteInfo(
@PathVariable("siteId") String siteId,
@RequestBody Map<String, Object> payload,
HttpServletRequest request) {
String status = (String) payload.getOrDefault("status", "正常");
@SuppressWarnings("unchecked")
List<String> names = payload.get("names") instanceof List<?> l
? l.stream().filter(o -> o instanceof String).map(o -> (String) o).toList()
: List.of();
@SuppressWarnings("unchecked")
List<String> urls = payload.get("urls") instanceof List<?> l
? l.stream().filter(o -> o instanceof String).map(o -> (String) o).toList()
: List.of();
String notes = (String) payload.get("notes");
Long submitterId = (Long) request.getAttribute("accountId");
Site site = siteService.updateSiteInfo(siteId, status, names, urls, notes, submitterId);
return ApiResponse.success(siteService.toDTO(site));
}
}