diff --git a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java index b2f9c30..ec2ba60 100644 --- a/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java +++ b/ai-analytic-center-biz/src/main/java/com/volvo/ai/analytic/center/service/impl/MqMessageRecordServiceImpl.java @@ -6,6 +6,7 @@ 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -167,30 +168,52 @@ public class MqMessageRecordServiceImpl extends ServiceImpl().set("dify_response", difFeedQualityResult.toJSONString()) - .eq("ai_analysis_request_id", aiAnalysisRequestId)); + //aiAnalysisRequestId 根据查询日志表,获取dify_response,设置到aiAnalysisRequestLogs表中 + updaterDifyResponse(aiAnalysisRequestId, difFeedQualityResult, BusinessTypeEnum.FEEDQUALITY.getCode()); } } catch (Exception e) { saveOrUpdateError(aiAnalysisRequestId, e, BusinessTypeEnum.FEEDQUALITY.getCode()); } } + private void updaterDifyResponse(String aiAnalysisRequestId, JSONObject difFeedQualityResult, String businessType) { + AiAnalysisRequestLogs aiAnalysisRequestLogs = aiAnalysisRequestLogsMapper.selectOne( + new LambdaQueryWrapper() + .eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisRequestId) + .last("for update")); + + if (aiAnalysisRequestLogs == null) { + log.error("未找到对应的 AiAnalysisRequestLogs,请求ID: {}", aiAnalysisRequestId); + throw new RuntimeException("未找到对应的请求日志"); + } + + String difyResponseStr = aiAnalysisRequestLogs.getDifyResponse(); + JSONObject difyResponse = StringUtils.isNotBlank(difyResponseStr) + ? JSONObject.parseObject(difyResponseStr) + : new JSONObject(); + + difyResponse.put(businessType, difFeedQualityResult); + + aiAnalysisRequestLogsMapper.update(null, + new UpdateWrapper() + .set("dify_response", difyResponse.toJSONString()) + .eq("ai_analysis_request_id", aiAnalysisRequestId)); + } @Async protected void processPublicOpinionAutomationDify(DifyCommunityTargetDTO difyCommunityTargetDTO, String user, JSONArray difyResult, String aiAnalysisRequestId) { try { //舆情案件分析 - JSONObject caseResult = callCaseCommunityWorkFlow(difyCommunityTargetDTO,user, caseToken); + JSONObject caseResult = callCaseCommunityWorkFlow(difyCommunityTargetDTO, user, caseToken); // 内容主题关键词打标 - JSONObject keywordResult = callCommunityWorkFlow(difyCommunityTargetDTO,user, keywordToken); + JSONObject keywordResult = callCommunityWorkFlow(difyCommunityTargetDTO, user, keywordToken); // litecrm线索分析 - JSONObject clueAnalysisResult = callCommunityWorkFlow(difyCommunityTargetDTO,user, clueAnalysisToken); + JSONObject clueAnalysisResult = callCommunityWorkFlow(difyCommunityTargetDTO, user, clueAnalysisToken); difyResult.add(caseResult); difyResult.add(keywordResult); @@ -328,13 +351,11 @@ public class MqMessageRecordServiceImpl extends ServiceImpl().set("dify_response", caseResult.toJSONString()) - .eq("ai_analysis_request_id", aiAnalysisRequestId)); + updaterDifyResponse(aiAnalysisRequestId, caseResult, BusinessTypeEnum.PUBLICOPINIONAUTOMATION.getCode()); } } @@ -723,7 +744,7 @@ public class MqMessageRecordServiceImpl extends ServiceImpl() - .eq(AiAnalysisRequestLogs::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId()) - .set(AiAnalysisRequestLogs::getDifyResponse, difyResult.toJSONString())); } else { aiAnalysisErrorsMapper.update(new AiAnalysisErrors(), new LambdaUpdateWrapper() .eq(AiAnalysisErrors::getAiAnalysisRequestId, aiAnalysisError.getAiAnalysisRequestId())