This commit is contained in:
qinyong@9artedu.com 2026-06-25 09:50:12 +08:00
parent 3435428b71
commit a3deee09fa

View File

@ -414,6 +414,61 @@ public class ArchiveMessageController {
return vo;
}
/**
* 历史数据刷新
*/
@GetMapping("/messages/recent-two-days")
public Result getRecentTwoDaysMessages() {
long twoDaysAgo = System.currentTimeMillis() - 2 * 24 * 60 * 60 * 1000L;
LambdaQueryWrapper<ArchiveMessage> wrapper = new LambdaQueryWrapper<>();
wrapper.ge(ArchiveMessage::getMsgtime, twoDaysAgo);
wrapper.orderByDesc(ArchiveMessage::getMsgtime);
List<ArchiveMessage> messages = archiveMessageMapper.selectList(wrapper);
log.info("历史刷新数据总数:{}", messages.size());
for (int i = 0; i < messages.size(); i++) {
ArchiveMessage message = messages.get(i);
log.info("刷新第:{}个, {}",i, message.getId());
String msgtype = message.getMsgtype();
String mediaData = message.getMediaData();
if (mediaData == null || mediaData.isEmpty()) {
continue;
}
// 从 mediaData 解析 sdkfileid
String sdkfileid = null;
try {
Map<String, Object> mediaMap = JsonUtils.fromJsonMap(mediaData);
if (mediaMap != null) {
sdkfileid = (String) mediaMap.get("sdkfileid");
}
} catch (Exception e) {
log.error("解析 mediaData 失败: id={}, mediaData={}", message.getId(), mediaData);
}
if (sdkfileid == null || sdkfileid.isEmpty()) {
continue;
}
// 构建缓存路径
String ext = getMediaExtension(msgtype);
String cacheFileName = message.getMsgid().replaceAll("[^a-zA-Z0-9_-]", "_") + ext;
File cacheFile = new File(MEDIA_CACHE_DIR, cacheFileName);
// 如果缓存不存在,下载媒体
if (!cacheFile.exists()) {
boolean success = archivePullService.downloadMedia(sdkfileid, cacheFile.getAbsolutePath());
if (!success) {
log.error("下载媒体 失败: id={}, mediaData={}", message.getId(), mediaData);
}else{
log.info("下载媒体 成功: id={}, 文件地址={}", message.getId(), cacheFile.getAbsolutePath());
}
}
}
return Result.success();
}
@lombok.Data
public static class ArchiveStatsVO {
private Long totalCount;