Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit cf99206

Browse files
committed
populate userIds field
1 parent bee72cf commit cf99206

File tree

6 files changed

+80
-4
lines changed

6 files changed

+80
-4
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.appirio.service.challengefeeder.api;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnore;
4+
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
8+
public class UserIdData {
9+
10+
/**
11+
* The challengeId field
12+
*/
13+
@Getter
14+
@Setter
15+
@JsonIgnore
16+
private Long challengeId;
17+
18+
/**
19+
* The user Id field
20+
*/
21+
@Getter
22+
@Setter
23+
private Long userId;
24+
25+
}

src/main/java/com/appirio/service/challengefeeder/api/challengelisting/ChallengeListingData.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@
66
import java.util.Date;
77
import java.util.List;
88

9-
import com.fasterxml.jackson.annotation.JsonFormat;
10-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
11-
import com.appirio.service.challengefeeder.api.challengelisting.EventData;
129
import com.appirio.service.challengefeeder.api.FileTypeData;
1310
import com.appirio.service.challengefeeder.api.IdentifiableData;
1411
import com.appirio.service.challengefeeder.api.PhaseData;
15-
import com.appirio.service.challengefeeder.api.challengelisting.WinnerData;
1612
import com.appirio.service.challengefeeder.helper.CustomDateDeserializer;
1713
import com.appirio.supply.constants.SubTrack;
14+
import com.fasterxml.jackson.annotation.JsonFormat;
15+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
1816

1917
import lombok.Getter;
2018
import lombok.Setter;
@@ -437,6 +435,13 @@ public class ChallengeListingData extends IdentifiableData {
437435
@Setter
438436
private Long challengeId;
439437

438+
/**
439+
* The userIds field
440+
*/
441+
@Getter
442+
@Setter
443+
private List<Long> userIds;
444+
440445
/**
441446
* Setter for {@link #subTrack}
442447
* @param subTrack

src/main/java/com/appirio/service/challengefeeder/dao/ChallengeListingFeederDAO.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.List;
77
import java.util.Map;
88

9+
import com.appirio.service.challengefeeder.api.UserIdData;
910
import com.appirio.service.challengefeeder.api.challengelisting.ChallengeListingData;
1011
import com.appirio.service.challengefeeder.api.challengelisting.EventData;
1112
import com.appirio.service.challengefeeder.api.challengelisting.WinnerData;
@@ -60,4 +61,13 @@ public interface ChallengeListingFeederDAO {
6061
*/
6162
@SqlQueryFile("sql/challenge-feeder/get_winners_for_challenge_listing.sql")
6263
List<WinnerData> getWinnersForChallengeListing(@ApiQueryInput QueryParameter queryParameter);
64+
65+
/**
66+
* Get user Id
67+
*
68+
* @param queryParameter the queryParameter to use
69+
* @return the List<UserIdData> result
70+
*/
71+
@SqlQueryFile("sql/challenge-feeder/get_challenge-userids.sql")
72+
List<UserIdData> getChallengeUserIds(@ApiQueryInput QueryParameter queryParameter);
6373
}

src/main/java/com/appirio/service/challengefeeder/manager/ChallengeListingFeederManager.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.appirio.service.challengefeeder.api.FileTypeData;
1919
import com.appirio.service.challengefeeder.api.PhaseData;
2020
import com.appirio.service.challengefeeder.api.PrizeData;
21+
import com.appirio.service.challengefeeder.api.UserIdData;
2122
import com.appirio.service.challengefeeder.api.challengelisting.ChallengeListingData;
2223
import com.appirio.service.challengefeeder.api.challengelisting.EventData;
2324
import com.appirio.service.challengefeeder.api.challengelisting.WinnerData;
@@ -161,6 +162,9 @@ public void pushChallengeFeeder(ChallengeFeederParam param) throws SupplyExcepti
161162

162163
List<Map<String, Object>> checkpointsSubmissions = this.challengeListingFeederDAO.getCheckpointsSubmissions(queryParameter);
163164
List<Map<String, Object>> groupIds = this.challengeFeederDAO.getGroupIds(queryParameter);
165+
166+
List<UserIdData> userIds = this.challengeListingFeederDAO.getChallengeUserIds(queryParameter);
167+
associateAllUserIds(challenges, userIds);
164168

165169
// set other field
166170
for (ChallengeListingData data : challenges) {
@@ -374,4 +378,28 @@ private static void associateAllPhases(List<ChallengeListingData> challenges, Li
374378
aPhase.setFixedStartTime(null);
375379
}
376380
}
381+
382+
383+
/**
384+
* Associate all user ids
385+
*
386+
* @param challenges the challenges to use
387+
* @param userIds the userIds to use
388+
*/
389+
private static void associateAllUserIds(List<ChallengeListingData> challenges, List<UserIdData> userIds) {
390+
for (UserIdData item : userIds) {
391+
for (ChallengeListingData challenge : challenges) {
392+
if (challenge.getId().equals(item.getChallengeId())) {
393+
if (challenge.getUserIds() == null) {
394+
challenge.setUserIds(new ArrayList<Long>());
395+
}
396+
challenge.getUserIds().add(item.getUserId());
397+
break;
398+
}
399+
}
400+
}
401+
for (UserIdData item : userIds) {
402+
item.setChallengeId(null);
403+
}
404+
}
377405
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
filter.challengeIds.template=p.project_id in (<challengeIds>)
2+
filter.challengeIds.type=List
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
SELECT distinct
2+
p.project_id AS challengeId,
3+
r.user_id AS userId
4+
FROM RESOURCE r
5+
INNER JOIN project p ON p.project_id = r.project_id
6+
WHERE p.project_category_id NOT IN (27,37) AND {filter}

0 commit comments

Comments
 (0)