1 package fr.ifremer.quadrige3.core.service.data.survey;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 import com.google.common.collect.Lists;
27 import fr.ifremer.quadrige3.core.config.QuadrigeConfiguration;
28 import fr.ifremer.quadrige3.core.dao.data.survey.CampaignDao;
29 import fr.ifremer.quadrige3.core.dao.technical.Assert;
30 import fr.ifremer.quadrige3.core.exception.BadUpdateDtException;
31 import fr.ifremer.quadrige3.core.exception.DataLockedException;
32 import fr.ifremer.quadrige3.core.exception.Exceptions;
33 import fr.ifremer.quadrige3.core.vo.data.survey.CampaignVO;
34 import org.apache.commons.collections4.CollectionUtils;
35 import org.springframework.context.annotation.Lazy;
36 import org.springframework.stereotype.Service;
37
38 import javax.annotation.Resource;
39 import java.util.List;
40
41
42
43
44
45
46
47 @Service("campaignService")
48 @Lazy
49 public class CampaignServiceImpl implements CampaignService {
50
51 @Resource
52 private CampaignDao campaignDao;
53
54 @Resource
55 protected QuadrigeConfiguration config;
56
57
58 @Override
59 public List<CampaignVO> save(List<CampaignVO> campaigns) {
60 List<CampaignVO> result = Lists.newArrayList();
61
62 if (CollectionUtils.isNotEmpty(campaigns)) {
63 for (CampaignVO source : campaigns) {
64 CampaignVO target = save(source);
65 result.add(target);
66 }
67 }
68
69 return result;
70 }
71
72
73 @Override
74 public CampaignVO save(CampaignVO source) {
75 Assert.notNull(source);
76 Assert.notNull(source.getQuserId());
77 Assert.notNull(source.getRecDepId());
78 Assert.notNull(source.getCampaignStartDt());
79 Assert.notNull(source.getCampaignNm());
80
81
82 try {
83 return campaignDao.save(source);
84 } catch (RuntimeException e) {
85 Exceptions.rethrowInnerCauseIfExists(e, BadUpdateDtException.class);
86 Exceptions.rethrowInnerCauseIfExists(e, DataLockedException.class);
87 throw e;
88 }
89 }
90
91
92 @Override
93 public CampaignVO getById(int campaignId) {
94 return (CampaignVO) campaignDao.get(CampaignDao.TRANSFORM_CAMPAIGNVO, campaignId);
95 }
96
97
98
99
100 @Override
101 public boolean isCampaignUsedBySurvey(int campaignId) {
102 return campaignDao.countSurveyUsage(campaignId) > 0;
103 }
104
105 @Override
106 public void delete(List<Integer> campaignIds) {
107 if (CollectionUtils.isEmpty(campaignIds)) return;
108 campaignIds.forEach(campaignDao::remove);
109 }
110 }