1
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
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.digglike.business;
35
36 import fr.paris.lutece.plugins.digglike.service.CommentSubmitService;
37 import fr.paris.lutece.plugins.digglike.service.search.DigglikeIndexer;
38 import fr.paris.lutece.plugins.digglike.utils.DiggIndexerUtils;
39 import fr.paris.lutece.portal.business.indexeraction.IndexerAction;
40 import fr.paris.lutece.portal.service.plugin.Plugin;
41 import fr.paris.lutece.portal.service.search.IndexationService;
42 import fr.paris.lutece.portal.service.spring.SpringContextService;
43 import fr.paris.lutece.portal.service.util.AppPropertiesService;
44
45 import java.util.ArrayList;
46 import java.util.List;
47
48
49
50
51
52 public final class DiggSubmitHome
53 {
54
55 private static IDiggSubmitDAO _dao = SpringContextService.getBean( "digglike.diggSubmitDAO" );
56
57
58
59
60 private DiggSubmitHome( )
61 {
62 }
63
64
65
66
67
68
69
70
71
72 public static int create( DiggSubmit diggSubmit, Plugin plugin )
73 {
74 return _dao.insert( diggSubmit, plugin );
75 }
76
77
78
79
80
81
82
83
84 public static void update( DiggSubmit diggSubmit, Plugin plugin )
85 {
86 update( diggSubmit, true, plugin );
87 }
88
89
90
91
92
93
94
95 public static void update( DiggSubmit diggSubmit, boolean bUpdateIndex, Plugin plugin )
96 {
97 if ( bUpdateIndex )
98 {
99 DiggSubmit diggSubmitStored = findByPrimaryKey( diggSubmit.getIdDiggSubmit( ), plugin );
100
101
102 if ( diggSubmit.getDiggSubmitState( ).getIdDiggSubmitState( ) != diggSubmitStored.getDiggSubmitState( )
103 .getIdDiggSubmitState( ) )
104 {
105 String strIdDiggSubmit = Integer.toString( diggSubmit.getIdDiggSubmit( ) );
106
107 if ( diggSubmit.getDiggSubmitState( ).getIdDiggSubmitState( ) == DiggSubmit.STATE_PUBLISH )
108 {
109 DiggIndexerUtils.addIndexerAction( strIdDiggSubmit, IndexerAction.TASK_CREATE );
110 }
111 else
112 {
113 DiggIndexerUtils.addIndexerAction( strIdDiggSubmit, IndexerAction.TASK_DELETE );
114 }
115 }
116
117 IndexationService.addIndexerAction( Integer.toString( diggSubmit.getIdDiggSubmit( ) ),
118 AppPropertiesService.getProperty( DigglikeIndexer.PROPERTY_INDEXER_NAME ), IndexerAction.TASK_MODIFY );
119 }
120
121 _dao.store( diggSubmit, plugin );
122 }
123
124
125
126
127
128
129
130 public static void remove( int nIdDiggSubmit, Plugin plugin )
131 {
132 SubmitFilter filter = new SubmitFilter( );
133 filter.setIdDiggSubmit( nIdDiggSubmit );
134
135 List<Response> listResponses = ResponseHome.getResponseList( filter, plugin );
136
137 for ( Response response : listResponses )
138 {
139 if ( response.getIdImageResource( ) != null )
140 {
141 ImageResourceHome.remove( response.getIdImageResource( ), plugin );
142 }
143
144 ResponseHome.remove( response.getIdResponse( ), plugin );
145 }
146
147 List<CommentSubmit> listComments = CommentSubmitService.getService( ).getCommentSubmitList( filter, plugin );
148
149 for ( CommentSubmit comment : listComments )
150 {
151 CommentSubmitService.getService( ).remove( comment.getIdCommentSubmit( ), plugin );
152 }
153
154
155 ReportedMessageHome.removeByDiggSubmit( nIdDiggSubmit, plugin );
156
157 DiggSubmit diggSubmit = DiggSubmitHome.findByPrimaryKey( nIdDiggSubmit, plugin );
158
159 if ( diggSubmit.getDiggSubmitState( ).getIdDiggSubmitState( ) == DiggSubmit.STATE_PUBLISH )
160 {
161 String strIdDiggSubmit = Integer.toString( nIdDiggSubmit );
162 IndexationService.addIndexerAction( strIdDiggSubmit + "_" + DigglikeIndexer.SHORT_NAME,
163 AppPropertiesService.getProperty( DigglikeIndexer.PROPERTY_INDEXER_NAME ), IndexerAction.TASK_DELETE );
164
165 DiggIndexerUtils.addIndexerAction( strIdDiggSubmit, IndexerAction.TASK_DELETE );
166 }
167
168 _dao.delete( nIdDiggSubmit, plugin );
169 }
170
171
172
173
174
175
176
177
178
179
180
181
182 public static DiggSubmit findByPrimaryKey( int nKey, Plugin plugin )
183 {
184 DiggSubmit diggSubmit = _dao.load( nKey, plugin );
185
186 if ( diggSubmit != null )
187 {
188 if ( diggSubmit.getDiggSubmitType( ) != null )
189 {
190 diggSubmit.setDiggSubmitType( DiggSubmitTypeHome.findByPrimaryKey(
191 diggSubmit.getDiggSubmitType( ).getIdType( ), plugin ) );
192 }
193
194 if ( diggSubmit.getCategory( ) != null )
195 {
196 diggSubmit.setCategory( CategoryHome.findByPrimaryKey( diggSubmit.getCategory( ).getIdCategory( ),
197 plugin ) );
198 }
199 }
200
201 return diggSubmit;
202 }
203
204
205
206
207
208
209
210 public static List<DiggSubmit> getDiggSubmitList( SubmitFilter filter, Plugin plugin )
211 {
212 List<DiggSubmit> listDiggSubmit = _dao.selectListByFilter( filter, plugin );
213
214 if ( listDiggSubmit != null )
215 {
216 SubmitFilter submmitFilterComment = new SubmitFilter( );
217
218 for ( DiggSubmit diggSubmit : listDiggSubmit )
219 {
220 submmitFilterComment.setIdDiggSubmit( diggSubmit.getIdDiggSubmit( ) );
221 submmitFilterComment.setIdCommentSubmitState( CommentSubmit.STATE_ENABLE );
222 diggSubmit.setComments( CommentSubmitService.getService( )
223 .getCommentSubmitList( submmitFilterComment, plugin ) );
224
225 if ( diggSubmit.getDiggSubmitType( ) != null )
226 {
227 diggSubmit.setDiggSubmitType( DiggSubmitTypeHome.findByPrimaryKey(
228 diggSubmit.getDiggSubmitType( ).getIdType( ), plugin ) );
229 }
230
231 if ( diggSubmit.getCategory( ) != null )
232 {
233 diggSubmit.setCategory( CategoryHome.findByPrimaryKey(
234 diggSubmit.getCategory( ).getIdCategory( ), plugin ) );
235 }
236 }
237 }
238
239 return listDiggSubmit;
240 }
241
242
243
244
245
246
247
248 public static List<Integer> getDiggSubmitListId( SubmitFilter filter, Plugin plugin )
249 {
250 return _dao.selectIdListByFilter( filter, plugin );
251 }
252
253
254
255
256
257
258
259
260 public static List<DiggSubmit> getDiggSubmitList( SubmitFilter filter, Plugin plugin, int nNumberMaxDiggSubmit )
261 {
262 List<Integer> diggSubmitListId = getDiggSubmitListId( filter, plugin );
263 List<DiggSubmit> diggSubmitList = new ArrayList<DiggSubmit>( );
264 DiggSubmit diggSubmit = null;
265 Object[] diggSubmitArrayId = diggSubmitListId.toArray( );
266
267 for ( int cpt = 0; cpt < diggSubmitArrayId.length; cpt++ )
268 {
269 if ( cpt < nNumberMaxDiggSubmit )
270 {
271 diggSubmit = findByPrimaryKey( (Integer) diggSubmitArrayId[cpt], plugin );
272
273 if ( diggSubmit != null )
274 {
275 diggSubmitList.add( diggSubmit );
276 }
277 }
278 else
279 {
280 break;
281 }
282 }
283
284 return diggSubmitList;
285 }
286
287
288
289
290
291
292
293 public static int getCountDiggSubmit( SubmitFilter filter, Plugin plugin )
294 {
295 return _dao.selectCountByFilter( filter, plugin );
296 }
297
298
299
300
301
302
303
304 public static void updateDiggSubmitOrder( int nNewOrder, int nIdDiggSubmit, Plugin plugin )
305 {
306 _dao.storeDiggSubmitOrder( nNewOrder, nIdDiggSubmit, plugin );
307 }
308
309
310
311
312
313
314
315 public static int getMaxOrderList( int nIdDigg, boolean bListPinned, Plugin plugin )
316 {
317 return _dao.maxOrderDiggSubmit( nIdDigg, bListPinned, plugin );
318 }
319 }