diff --git a/src/main/java/org/shop/crop/CropController.java b/src/main/java/org/shop/crop/CropController.java index 05f9bc1..6df2ba2 100644 --- a/src/main/java/org/shop/crop/CropController.java +++ b/src/main/java/org/shop/crop/CropController.java @@ -3,6 +3,7 @@ package org.shop.crop; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tencent.wework.Finance; import lombok.extern.slf4j.Slf4j; import org.shop.crop.constant.GlobalConstants; @@ -55,15 +56,17 @@ public class CropController { @GetMapping("/crop/chatData") public List chatData(Long startSeq, String corpId) throws IOException { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CropConfig::getCropid, corpId); + CropConfig config = cropConfigMapper.selectOne(wrapper); synchronized (SDK_LOCK) { long limit = 50; long slice = Finance.NewSlice(); long sdk = 0; try { - sdk = sdkManager.initSdk(corpId, "mEizahrSF6axdfWtSK_f73a3j6-sV02hhyGG7ogmTpM"); - - int ret = Finance.GetChatData(sdk, startSeq, limit, "", "", 1000, slice); + sdk = sdkManager.initSdk(corpId, config.getMessageSecret()); + int ret = Finance.GetChatData(sdk, config.getLastSeq(), limit, "", "", 2000, slice); if (ret != 0) { System.out.println("调用sdk拉取消息接口失败,失败消息为 ret = " + ret); //Finance.FreeSlice(slice); @@ -212,13 +215,11 @@ public class CropController { cropFileService.saveBatch(mediaFiles); // ✅ 异步触发下载任务(可以轮询数据库) - CompletableFuture.runAsync(() -> { - try { - downloadPendingFiles(mediaFiles, sdk); // 也可以不传参,改为查数据库 - } catch (Exception e) { - log.error("异步下载任务异常", e); - } - }); + try { + downloadPendingFiles(mediaFiles, sdk); // 也可以不传参,改为查数据库 + } catch (Exception e) { + log.error("异步下载任务异常", e); + } } return messageList; } @@ -305,7 +306,8 @@ public class CropController { File tempFile = File.createTempFile(GlobalConstants.DOWNLOAD_TEMP_FILE_NAME_PREFIX, msgType, mediaContext.getTempMergeFileDir()); - String indexbuf = null; // 初始化 indexbuf + + String indexbuf = ""; // 初始化 indexbuf try (FileOutputStream fileOutputStream = new FileOutputStream(tempFile)) { while (true) { long mediaData = Finance.NewMediaData();