fix: 列表也显示有脚本但未上报的站点

This commit is contained in:
mediabot-pt
2026-07-02 11:56:14 +08:00
parent 958c1c2c52
commit 841bd2e0ad

View File

@@ -142,9 +142,32 @@ public class AccessResultServiceImpl implements AccessResultService {
@Override
public List<SiteAccessSummaryDTO> listSiteSummaries() {
List<Map<String, Object>> rows = mapper.selectPageSummary();
// 按 siteId 分组聚合
Map<String, SiteAccessSummaryDTO> siteMap = new LinkedHashMap<>();
// 先加有配置版本的站点(即使没有访问结果也显示)
for (SiteConfig sc : siteConfigMapper.selectList(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<SiteConfig>()
.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<Map<String, Object>> rows = mapper.selectPageSummary();
for (Map<String, Object> row : rows) {
String siteId = (String) row.get("site_id");
String url = (String) row.get("url");