feat: sites表支持多名称/多地址(names/urls JSON列), DTO/Service/前端全部适配

This commit is contained in:
mediabot-pt
2026-06-30 08:53:22 +08:00
parent b37b5cc5de
commit aa1e3e9b28
6 changed files with 122 additions and 77 deletions

View File

@@ -7,6 +7,7 @@ import com.par.core.entity.SiteConfig;
import com.par.core.enums.SiteStatus;
import com.par.core.mapper.SiteConfigMapper;
import com.par.core.mapper.SiteMapper;
import com.par.core.service.SiteService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -31,6 +32,7 @@ public class ManifestController {
private final SiteMapper siteMapper;
private final SiteConfigMapper siteConfigMapper;
private final SiteService siteService;
/**
* 获取全局 Manifest(支持 ETag)
@@ -49,9 +51,11 @@ public class ManifestController {
// 构建 entries 并计算 ETag
StringBuilder etagBuilder = new StringBuilder();
List<Map<String, Object>> entries = sites.stream().map(site -> {
var dto = siteService.toDTO(site);
Map<String, Object> entry = new HashMap<>();
entry.put("siteId", site.getSiteId());
entry.put("name", site.getName());
entry.put("name", dto.getNames() != null && !dto.getNames().isEmpty() ? dto.getNames().get(0) : site.getSiteId());
entry.put("baseUrl", dto.getUrls() != null && !dto.getUrls().isEmpty() ? dto.getUrls().get(0) : null);
entry.put("siteType", site.getSiteType() != null ? site.getSiteType().getValue() : null);
entry.put("schemaVersion", site.getSchemaVersion());
entry.put("status", site.getStatus() != null ? site.getStatus().getValue() : null);