This commit is contained in:
root
2025-12-20 00:17:53 +05:00
parent 3e56f565dc
commit 2f834770a7
@@ -1599,21 +1599,47 @@ public class MarketingAnalysisService {
}
break;
case "swot":
// Новая структура: strategyAnalysis.globalSwot
if (fullJson.containsKey("swot")) {
context.put("swot", fullJson.get("swot"));
} else if (fullJson.containsKey("strategyAnalysis")) {
@SuppressWarnings("unchecked")
Map<String, Object> strategyAnalysis = (Map<String, Object>) fullJson.get("strategyAnalysis");
if (strategyAnalysis != null && strategyAnalysis.get("globalSwot") != null) {
context.put("swot", strategyAnalysis.get("globalSwot"));
}
}
break;
case "channels":
// Новая структура: strategyAnalysis.channelsPotential (List)
if (fullJson.containsKey("channels")) {
context.put("channels", fullJson.get("channels"));
}
if (fullJson.containsKey("channelsPotential")) {
context.put("channelsPotential", fullJson.get("channelsPotential"));
} else if (fullJson.containsKey("strategyAnalysis")) {
@SuppressWarnings("unchecked")
Map<String, Object> strategyAnalysis = (Map<String, Object>) fullJson.get("strategyAnalysis");
if (strategyAnalysis != null && strategyAnalysis.get("channelsPotential") != null) {
Object channelsPotential = strategyAnalysis.get("channelsPotential");
context.put("channelsPotential", channelsPotential);
// Alias: чтобы текущие промпты (про channels) работали даже без старого ключа
if (!context.containsKey("channels")) {
context.put("channels", channelsPotential);
}
}
}
break;
case "funnel":
// Новая структура: strategyAnalysis.funnel (Map со stages)
if (fullJson.containsKey("funnel")) {
context.put("funnel", fullJson.get("funnel"));
} else if (fullJson.containsKey("strategyAnalysis")) {
@SuppressWarnings("unchecked")
Map<String, Object> strategyAnalysis = (Map<String, Object>) fullJson.get("strategyAnalysis");
if (strategyAnalysis != null && strategyAnalysis.get("funnel") != null) {
context.put("funnel", strategyAnalysis.get("funnel"));
}
}
if (fullJson.containsKey("conversionFunnel")) {
context.put("conversionFunnel", fullJson.get("conversionFunnel"));
@@ -4057,8 +4083,9 @@ public class MarketingAnalysisService {
// Паттерн для поиска следующего раздела: может быть markdown заголовок или
// римская цифра
java.util.regex.Pattern nextSectionPattern = java.util.regex.Pattern
.compile("^(##+\\s*[IVX]+\\.|\\s*[IVX]+\\.\\s+[А-Я])", java.util.regex.Pattern.MULTILINE);
java.util.regex.Pattern nextSectionPattern = java.util.regex.Pattern.compile(
"^(##+\\s*[IVX]+\\.|\\s*[IVX]+\\.\\s+[A-ZА-Я])",
java.util.regex.Pattern.MULTILINE);
java.util.regex.Matcher nextSectionMatcher = nextSectionPattern.matcher(remainingText);
String blocks = blocksToInsert.toString();
@@ -4070,7 +4097,7 @@ public class MarketingAnalysisService {
} else {
// Ищем следующий раздел по римской цифре
java.util.regex.Pattern romanNumeralPattern = java.util.regex.Pattern
.compile("\\n\\s*[IVX]+\\.\\s+[А-Я]", java.util.regex.Pattern.MULTILINE);
.compile("\\n\\s*[IVX]+\\.\\s+[A-ZА-Я]", java.util.regex.Pattern.MULTILINE);
java.util.regex.Matcher romanMatcher = romanNumeralPattern.matcher(remainingText);
if (romanMatcher.find()) {