diff --git a/par-api/src/main/java/com/par/api/controller/SiteController.java b/par-api/src/main/java/com/par/api/controller/SiteController.java index 33884f6..0fe9acd 100644 --- a/par-api/src/main/java/com/par/api/controller/SiteController.java +++ b/par-api/src/main/java/com/par/api/controller/SiteController.java @@ -126,9 +126,10 @@ public class SiteController { : List.of(); String notes = (String) payload.get("notes"); + String siteType = (String) payload.get("siteType"); Long submitterId = (Long) request.getAttribute("accountId"); - siteService.submitSiteInfo(siteId, status, names, urls, notes, submitterId); + siteService.submitSiteInfo(siteId, status, names, urls, notes, siteType, submitterId); return ApiResponse.success(Map.of("message", "站点信息已提交审核")); } } diff --git a/par-core/src/main/java/com/par/core/service/SiteService.java b/par-core/src/main/java/com/par/core/service/SiteService.java index 95ff067..ab97d59 100644 --- a/par-core/src/main/java/com/par/core/service/SiteService.java +++ b/par-core/src/main/java/com/par/core/service/SiteService.java @@ -38,7 +38,7 @@ public interface SiteService { * @param suggestedSiteId 建议的 siteId,为 null 时自动从名称生成 */ void submitSiteInfo(String suggestedSiteId, String status, List names, - List urls, String notes, Long submitterId); + List urls, String notes, String siteType, Long submitterId); /** * 管理员编辑站点基本信息 diff --git a/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java index b2a8b34..7825983 100644 --- a/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java +++ b/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java @@ -129,8 +129,8 @@ public class SiteServiceImpl implements SiteService { @Override public void submitSiteInfo(String suggestedSiteId, String status, List names, - List urls, String notes, Long submitterId) { - // 尝试匹配已有站点 + List urls, String notes, String siteType, + Long submitterId) { String resolvedSiteId = resolveSiteId(suggestedSiteId, names, urls); Map raw = new LinkedHashMap<>(); @@ -138,6 +138,7 @@ public class SiteServiceImpl implements SiteService { raw.put("urls", urls != null ? urls : List.of()); raw.put("notes", notes != null ? notes : ""); raw.put("siteStatus", status != null ? status : "正常"); + raw.put("siteType", siteType != null ? siteType : "unknown"); SiteChange entry = new SiteChange(); entry.setSiteId(resolvedSiteId); @@ -265,6 +266,11 @@ public class SiteServiceImpl implements SiteService { if (notes != null && !notes.isBlank()) existing.setNotes(notes); if (reviewerSiteType != null) { try { existing.setSiteType(SiteType.fromValue(reviewerSiteType)); } catch (Exception ignored) {} + } else { + String rawSiteType = (String) raw.getOrDefault("siteType", null); + if (rawSiteType != null) { + try { existing.setSiteType(SiteType.fromValue(rawSiteType)); } catch (Exception ignored) {} + } } if (reviewerStatus != null) { try { existing.setStatus(SiteStatus.fromValue(reviewerStatus)); } catch (Exception ignored) {} @@ -279,7 +285,8 @@ public class SiteServiceImpl implements SiteService { site.setNamesJson(toJsonArray(names)); site.setUrlsJson(toJsonArray(urls)); site.setNotes(notes); - site.setSiteType(reviewerSiteType != null ? SiteType.fromValue(reviewerSiteType) : SiteType.UNKNOWN); + String rawSiteType = (String) raw.getOrDefault("siteType", "unknown"); + site.setSiteType(reviewerSiteType != null ? SiteType.fromValue(reviewerSiteType) : SiteType.fromValue(rawSiteType)); site.setSchemaVersion("1.0.0"); site.setStatus(reviewerStatus != null ? SiteStatus.fromValue(reviewerStatus) : SiteStatus.ACTIVE); site.setSubmitterId(entry.getSubmitterId());