This commit is contained in:
root
2026-01-03 12:30:05 +05:00
parent c0e01d33ea
commit ec87821589
3 changed files with 55 additions and 3 deletions
+32 -3
View File
@@ -86,7 +86,31 @@ Body: { ... }
---
## 3. GET `/api/marketing/analysis/v2/{id}` - Новый эндпойнт
## 3. GET `/api/marketing/analysis/{id}` - Обновлен
### Новое поле в ответе:
Эндпойнт теперь возвращает опциональное поле `v2AnalysisId`:
```json
{
"success": true,
"data": {
"analysisId": "string",
"status": "string",
"createdAt": "2024-01-01T12:00:00",
"completedAt": "2024-01-01T12:00:00",
"v2AnalysisId": "string", // ← НОВОЕ ПОЛЕ (может быть null)
"report": { ... }
}
}
```
**Примечание:** Поле `v2AnalysisId` будет присутствовать только если для данного анализа был создан связанный v2 анализ.
---
## 4. GET `/api/marketing/analysis/v2/{id}` - Новый эндпойнт
### Описание:
@@ -131,7 +155,7 @@ Authorization: Bearer <token>
---
## 4. POST `/api/marketing/analysis/start/v2` - Без изменений
## 5. POST `/api/marketing/analysis/start/v2` - Без изменений
Эндпойнт работает как прежде - создает только v2 анализ без связи с обычным анализом.
@@ -149,7 +173,12 @@ Authorization: Bearer <token>
- Проверяйте наличие поля `v2AnalysisId`
- Если поле присутствует, можно показать кнопку/ссылку для просмотра v2 анализа
3. **При получении v2 анализа:**
3. **При получении конкретного анализа:**
- Поле `v2AnalysisId` доступно в ответе `GET /api/marketing/analysis/{id}`
- Используйте это поле для навигации к v2 анализу
4. **При получении v2 анализа:**
- Используйте `GET /api/marketing/analysis/v2/{id}` для получения полных данных
- Обрабатывайте случаи, когда v2 анализ может быть не найден (404)
@@ -10,6 +10,7 @@ public class MarketingAnalysisResult {
private LocalDateTime createdAt;
private LocalDateTime completedAt;
private MarketingReport report;
private String v2AnalysisId; // ID связанного v2 анализа
public MarketingAnalysisResult() {
}
@@ -63,6 +64,14 @@ public class MarketingAnalysisResult {
this.report = report;
}
public String getV2AnalysisId() {
return v2AnalysisId;
}
public void setV2AnalysisId(String v2AnalysisId) {
this.v2AnalysisId = v2AnalysisId;
}
public static class MarketingReport {
private String summary;
private String fullAnalysis;
@@ -5165,6 +5165,20 @@ public class MarketingAnalysisService {
result.setCreatedAt(analysis.getCreatedAt());
result.setCompletedAt(analysis.getCompletedAt());
// Ищем связанный v2 анализ
String v2AnalysisId = analysis.getV2AnalysisId();
if (v2AnalysisId == null || v2AnalysisId.isEmpty()) {
// Если v2AnalysisId не установлен, пытаемся найти по analysisId
Optional<MarketingAnalysisV2Document> optV2 = v2Repository.findByAnalysisId(analysis.getId());
if (optV2.isPresent()) {
v2AnalysisId = optV2.get().getId();
// Обновляем анализ для сохранения связи
analysis.setV2AnalysisId(v2AnalysisId);
repository.save(analysis);
}
}
result.setV2AnalysisId(v2AnalysisId);
if (analysis.getReportData() != null && "completed".equals(analysis.getStatus())) {
MarketingAnalysisResult.MarketingReport report = buildReportFromData(analysis.getReportData(), analysis);
result.setReport(report);