target fix

This commit is contained in:
arys
2026-04-03 12:48:47 +05:00
parent e1bceeea42
commit 0f7462545d
@@ -13,6 +13,7 @@ import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@RestController
@RequestMapping("/api/marketing/targeting")
@@ -205,10 +206,22 @@ public class TargetingCampaignController {
@RequestHeader(value = "Authorization", required = false) String authHeader,
@PathVariable String id) {
String userId = resolveUserId(userIdHeader, authHeader);
campaignService.getCampaignById(id, userId); // проверка прав
return predictionService.getLatest(id)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
// Проверяем существование кампании и права доступа
TargetingCampaign campaign = campaignService.getCampaignById(id, userId);
Optional<CampaignPrediction> predictionOpt = predictionService.getLatest(id);
if (predictionOpt.isPresent()) {
return ResponseEntity.ok(predictionOpt.get());
}
// Если предсказания еще нет — запускаем генерацию автоматически
log.info("[Targeting] Prediction missing for campaign {}, triggering auto-generate", id);
predictionService.generateAsync(campaign);
return ResponseEntity.accepted().body(Map.of(
"status", "PROCESSING",
"message", "Предсказание еще не готово и было запущено автоматически. Попробуйте через 5-10 секунд."
));
}
@PostMapping("/campaigns/{id}/predict")