feat: 新增 /api/v1/sites/{siteId}/info 站点信息反馈接口, 支持多名称/多地址/状态/备注
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user