target fix
This commit is contained in:
@@ -13,6 +13,7 @@ import org.springframework.util.StringUtils;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/marketing/targeting")
|
@RequestMapping("/api/marketing/targeting")
|
||||||
@@ -205,10 +206,22 @@ public class TargetingCampaignController {
|
|||||||
@RequestHeader(value = "Authorization", required = false) String authHeader,
|
@RequestHeader(value = "Authorization", required = false) String authHeader,
|
||||||
@PathVariable String id) {
|
@PathVariable String id) {
|
||||||
String userId = resolveUserId(userIdHeader, authHeader);
|
String userId = resolveUserId(userIdHeader, authHeader);
|
||||||
campaignService.getCampaignById(id, userId); // проверка прав
|
// Проверяем существование кампании и права доступа
|
||||||
return predictionService.getLatest(id)
|
TargetingCampaign campaign = campaignService.getCampaignById(id, userId);
|
||||||
.map(ResponseEntity::ok)
|
|
||||||
.orElse(ResponseEntity.notFound().build());
|
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")
|
@PostMapping("/campaigns/{id}/predict")
|
||||||
|
|||||||
Reference in New Issue
Block a user