diff --git a/par-core/src/main/java/com/par/core/service/impl/AccessResultServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/AccessResultServiceImpl.java index 92d5fd5..82c59cd 100644 --- a/par-core/src/main/java/com/par/core/service/impl/AccessResultServiceImpl.java +++ b/par-core/src/main/java/com/par/core/service/impl/AccessResultServiceImpl.java @@ -142,9 +142,32 @@ public class AccessResultServiceImpl implements AccessResultService { @Override public List listSiteSummaries() { - List> rows = mapper.selectPageSummary(); - // 按 siteId 分组聚合 Map siteMap = new LinkedHashMap<>(); + + // 先加有配置版本的站点(即使没有访问结果也显示) + for (SiteConfig sc : siteConfigMapper.selectList( + new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .eq(SiteConfig::getDeleted, 0) + .eq(SiteConfig::getIsLatest, true))) { + SiteAccessSummaryDTO s = new SiteAccessSummaryDTO(); + s.setSiteId(sc.getSiteId()); + s.setPages(new ArrayList<>()); + s.setTotalResults(0); + s.setLatestVersion(sc.getVersion()); + s.setConfigSavedAt(sc.getUpdatedAt()); + s.setConfigPublishedAt(sc.getReviewedAt()); + try { + Site siteObj = siteMapper.selectBySiteId(sc.getSiteId()); + if (siteObj != null) { + s.setNames(siteService.toDTO(siteObj).getNames()); + s.setUrls(siteService.toDTO(siteObj).getUrls()); + } + } catch (Exception ignored) {} + siteMap.put(sc.getSiteId(), s); + } + + // 再合并访问结果数据 + List> rows = mapper.selectPageSummary(); for (Map row : rows) { String siteId = (String) row.get("site_id"); String url = (String) row.get("url");