target fix
This commit is contained in:
@@ -10,7 +10,7 @@ import java.util.Optional;
|
||||
@Repository
|
||||
public interface MarketingStrategyRepository extends MongoRepository<MarketingStrategy, String> {
|
||||
Optional<MarketingStrategy> findById(String id);
|
||||
Optional<MarketingStrategy> findByAnalysisId(String analysisId);
|
||||
Optional<MarketingStrategy> findFirstByAnalysisIdOrderByCreatedAtDesc(String analysisId);
|
||||
List<MarketingStrategy> findByUserIdOrderByCreatedAtDesc(String userId);
|
||||
List<MarketingStrategy> findByUserIdAndAnalysisId(String userId, String analysisId);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public class MarketingStrategyService {
|
||||
throw new IllegalStateException("Анализ еще не завершен. Статус: " + analysisResult.getStatus());
|
||||
}
|
||||
|
||||
Optional<MarketingStrategy> existingStrategy = repository.findByAnalysisId(analysisId);
|
||||
Optional<MarketingStrategy> existingStrategy = repository.findFirstByAnalysisIdOrderByCreatedAtDesc(analysisId);
|
||||
if (existingStrategy.isPresent()) {
|
||||
logger.info("Стратегия для анализа {} уже существует: {}", analysisId, existingStrategy.get().getId());
|
||||
return existingStrategy.get();
|
||||
@@ -710,7 +710,7 @@ public class MarketingStrategyService {
|
||||
}
|
||||
|
||||
public MarketingStrategyResponse getStrategyByAnalysisId(String analysisId) {
|
||||
Optional<MarketingStrategy> optStrategy = repository.findByAnalysisId(analysisId);
|
||||
Optional<MarketingStrategy> optStrategy = repository.findFirstByAnalysisIdOrderByCreatedAtDesc(analysisId);
|
||||
if (optStrategy.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class MarketingStrategyV3Service {
|
||||
}
|
||||
|
||||
public Optional<MarketingStrategy> getStrategyByAnalysisId(String analysisId) {
|
||||
return repository.findByAnalysisId(analysisId);
|
||||
return repository.findFirstByAnalysisIdOrderByCreatedAtDesc(analysisId);
|
||||
}
|
||||
|
||||
public List<MarketingStrategy> getUserStrategies(String userId) {
|
||||
|
||||
@@ -42,8 +42,16 @@ public class TargetingCampaignService {
|
||||
private final MarketingStrategyRepository strategyRepository;
|
||||
|
||||
public TargetingCampaign createCampaign(TargetingCampaignRequest req, String userId) {
|
||||
if (req.getAnalysisId() == null || req.getAnalysisId().isBlank()) {
|
||||
throw new IllegalArgumentException("analysisId is required");
|
||||
if ((req.getAnalysisId() == null || req.getAnalysisId().isBlank()) && (req.getStrategyId() == null || req.getStrategyId().isBlank())) {
|
||||
throw new IllegalArgumentException("analysisId or strategyId is required");
|
||||
}
|
||||
|
||||
if (req.getStrategyId() != null && !req.getStrategyId().isBlank()) {
|
||||
MarketingStrategy strategy = strategyRepository.findById(req.getStrategyId())
|
||||
.orElseThrow(() -> new IllegalArgumentException("Strategy not found: " + req.getStrategyId()));
|
||||
if (req.getAnalysisId() == null || req.getAnalysisId().isBlank()) {
|
||||
req.setAnalysisId(strategy.getAnalysisId());
|
||||
}
|
||||
}
|
||||
if (req.getTotalBudgetKzt() == null || req.getTotalBudgetKzt() <= 0) {
|
||||
throw new IllegalArgumentException("Valid budget is required");
|
||||
@@ -104,7 +112,7 @@ public class TargetingCampaignService {
|
||||
if (req.getStrategyId() != null) {
|
||||
strategy = strategyRepository.findById(req.getStrategyId()).orElse(null);
|
||||
} else {
|
||||
strategy = strategyRepository.findByAnalysisId(campaign.getAnalysisId()).orElse(null);
|
||||
strategy = strategyRepository.findFirstByAnalysisIdOrderByCreatedAtDesc(campaign.getAnalysisId()).orElse(null);
|
||||
}
|
||||
if (strategy == null) {
|
||||
failCampaign(campaign, "Marketing Strategy containing media assets not found.");
|
||||
|
||||
Reference in New Issue
Block a user