Skip to content

Commit dbb5885

Browse files
authored
Merge pull request #205 from Moadong/develop/be
[release] BE 1-4차 배포
2 parents fc8b40a + 724567f commit dbb5885

File tree

4 files changed

+51
-48
lines changed

4 files changed

+51
-48
lines changed

backend/src/main/java/moadong/club/entity/Club.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import jakarta.persistence.Enumerated;
66
import jakarta.persistence.Id;
77
import jakarta.validation.constraints.NotNull;
8+
import java.util.List;
89
import lombok.AllArgsConstructor;
910
import lombok.Builder;
1011
import lombok.Getter;
@@ -14,9 +15,6 @@
1415
import org.springframework.data.mongodb.core.mapping.Document;
1516
import org.springframework.data.mongodb.core.mapping.Field;
1617

17-
import java.util.ArrayList;
18-
import java.util.List;
19-
2018
@Document("clubs")
2119
@AllArgsConstructor
2220
@Getter
@@ -44,6 +42,7 @@ public class Club {
4442

4543
@Field("recruitmentInformation")
4644
private ClubRecruitmentInformation clubRecruitmentInformation;
45+
4746
public Club() {
4847
this.name = "";
4948
this.category = "";
@@ -53,7 +52,8 @@ public Club() {
5352
}
5453

5554
@Builder
56-
public Club(String name, String category, String division, ClubRecruitmentInformation clubRecruitmentInformation) {
55+
public Club(String name, String category, String division,
56+
ClubRecruitmentInformation clubRecruitmentInformation) {
5757
this.name = name;
5858
this.category = category;
5959
this.division = division;
@@ -67,25 +67,25 @@ public void update(ClubInfoRequest request) {
6767
this.state = ClubState.AVAILABLE;
6868

6969
this.clubRecruitmentInformation = ClubRecruitmentInformation.builder()
70-
.presidentName(request.clubPresidentName())
71-
.presidentTelephoneNumber(request.telephoneNumber())
72-
.introduction(request.introduction())
73-
.recruitmentStart(request.recruitmentStart())
74-
.recruitmentEnd(request.recruitmentEnd())
75-
.recruitmentTarget(request.recruitmentTarget())
76-
.tags(request.tags())
77-
.build();
70+
.presidentName(request.clubPresidentName())
71+
.presidentTelephoneNumber(request.telephoneNumber())
72+
.introduction(request.introduction())
73+
.recruitmentStart(request.recruitmentStart())
74+
.recruitmentEnd(request.recruitmentEnd())
75+
.recruitmentTarget(request.recruitmentTarget())
76+
.tags(request.tags())
77+
.build();
7878
}
7979

80-
public void update(ClubDescriptionUpdateRequest request){
80+
public void update(ClubDescriptionUpdateRequest request) {
8181
clubRecruitmentInformation.updateDescription(request);
8282
}
8383

84-
public void updateLogo(String logo){
84+
public void updateLogo(String logo) {
8585
this.clubRecruitmentInformation.updateLogo(logo);
8686
}
8787

88-
public void updateFeedImages(List<String> feedImages){
88+
public void updateFeedImages(List<String> feedImages) {
8989
this.clubRecruitmentInformation.updateFeedImages(feedImages);
9090
}
9191
}

backend/src/main/java/moadong/club/entity/ClubRecruitmentInformation.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,7 @@ public class ClubRecruitmentInformation {
5959
@NotNull
6060
private RecruitmentStatus recruitmentStatus;
6161

62-
public void updateInfo(ClubInfoRequest request) {
63-
this.introduction = request.introduction();
64-
this.presidentName = request.clubPresidentName();
65-
this.presidentTelephoneNumber = request.telephoneNumber();
66-
this.recruitmentStart = request.recruitmentStart();
67-
this.recruitmentEnd = request.recruitmentEnd();
68-
this.recruitmentTarget = request.recruitmentTarget();
69-
this.recruitmentStatus = RecruitmentStatus.UPCOMING;
70-
this.tags = request.tags();
71-
}
62+
private String recruitmentForm;
7263

7364
public ClubRecruitmentInformation updateLogo(String logo) {
7465
this.logo = logo;

backend/src/main/java/moadong/club/payload/dto/ClubDetailedResult.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@ public record ClubDetailedResult(
1414
List<String> tags,
1515
String state,
1616
List<String> feeds,
17+
String introduction,
1718
String description,
1819
String presidentName,
1920
String presidentPhoneNumber,
2021
String recruitmentPeriod,
2122
String recruitmentTarget,
23+
String recruitmentStatus,
24+
String recruitmentForm,
2225
String category,
2326
String division
2427
) {
@@ -34,16 +37,20 @@ public static ClubDetailedResult of(Club club) {
3437
return ClubDetailedResult.builder()
3538
.id(club.getId())
3639
.name(club.getName())
40+
.logo(club.getClubRecruitmentInformation().getLogo())
41+
.tags(clubRecruitmentInformation.getTags())
42+
.state(club.getState().getDesc())
43+
.feeds(clubRecruitmentInformation.getFeedImages())
3744
.category(club.getCategory())
3845
.division(club.getDivision())
39-
.state(club.getState().getDesc())
46+
.introduction(clubRecruitmentInformation.getIntroduction())
4047
.description(clubRecruitmentInformation.getDescription())
4148
.presidentName(clubRecruitmentInformation.getPresidentName())
4249
.presidentPhoneNumber(clubRecruitmentInformation.getPresidentTelephoneNumber())
43-
.feeds(clubRecruitmentInformation.getFeedImages())
44-
.tags(clubRecruitmentInformation.getTags())
4550
.recruitmentPeriod(period)
4651
.recruitmentTarget(clubRecruitmentInformation.getRecruitmentTarget())
52+
.recruitmentStatus(clubRecruitmentInformation.getRecruitmentStatus().toString())
53+
.recruitmentForm(clubRecruitmentInformation.getRecruitmentForm())
4754
.build();
4855
}
4956

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package moadong.club.repository;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
35
import lombok.AllArgsConstructor;
46
import moadong.club.enums.ClubState;
57
import moadong.club.payload.dto.ClubSearchResult;
@@ -11,21 +13,20 @@
1113
import org.springframework.data.mongodb.core.query.Criteria;
1214
import org.springframework.stereotype.Repository;
1315

14-
import java.util.ArrayList;
15-
import java.util.List;
16-
1716

1817
@Repository
1918
@AllArgsConstructor
2019
public class ClubSearchRepository {
20+
2121
private final MongoTemplate mongoTemplate;
2222

23-
public List<ClubSearchResult> searchClubsByKeyword(String keyword, String recruitmentStatus, String division, String category) {
23+
public List<ClubSearchResult> searchClubsByKeyword(String keyword, String recruitmentStatus,
24+
String division, String category) {
2425
List<AggregationOperation> operations = new ArrayList<>();
2526

2627
operations.add(Aggregation.match(
27-
new Criteria().andOperator(
28-
Criteria.where("state").is(ClubState.AVAILABLE.getName()))
28+
new Criteria().andOperator(
29+
Criteria.where("state").is(ClubState.AVAILABLE.getName()))
2930
));
3031

3132
Criteria criteria = getMatchedCriteria(recruitmentStatus, division, category);
@@ -36,33 +37,37 @@ public List<ClubSearchResult> searchClubsByKeyword(String keyword, String recrui
3637

3738
if (keyword != null && !keyword.trim().isEmpty()) {
3839
operations.add(Aggregation.match(new Criteria().orOperator(
39-
Criteria.where("name").regex(keyword, "i"),
40-
Criteria.where("recruitmentInformation.introduction").regex(keyword, "i"),
41-
Criteria.where("recruitmentInformation.description").regex(keyword, "i"),
42-
Criteria.where("recruitmentInformation.tags").regex(keyword, "i")
40+
Criteria.where("name").regex(keyword, "i"),
41+
Criteria.where("recruitmentInformation.introduction").regex(keyword, "i"),
42+
Criteria.where("recruitmentInformation.description").regex(keyword, "i"),
43+
Criteria.where("recruitmentInformation.tags").regex(keyword, "i")
4344
)));
4445
}
4546
operations.add(Aggregation.unwind("club_tags", true));
4647

4748
operations.add(
48-
Aggregation.project("name", "state", "category", "division")
49-
.and("recruitmentInformation.introduction").as("introduction")
50-
.and("recruitmentInformation.recruitmentStatus").as("recruitmentStatus")
51-
.and("recruitmentInformation.logo").as("logo")
52-
.and("recruitmentInformation.tags").as("tags"));
49+
Aggregation.project("name", "state", "category", "division")
50+
.and("recruitmentInformation.introduction").as("introduction")
51+
.and("recruitmentInformation.recruitmentStatus").as("recruitmentStatus")
52+
.and("recruitmentInformation.logo").as("logo")
53+
.and("recruitmentInformation.tags").as("tags"));
5354

54-
operations.add(Aggregation.sort(Sort.by(Sort.Order.asc("division"), Sort.Order.asc("category"))));
55+
operations.add(
56+
Aggregation.sort(Sort.by(Sort.Order.asc("division"), Sort.Order.asc("category"))));
5557

5658
Aggregation aggregation = Aggregation.newAggregation(operations);
57-
AggregationResults<ClubSearchResult> results = mongoTemplate.aggregate(aggregation, "clubs", ClubSearchResult.class);
59+
AggregationResults<ClubSearchResult> results = mongoTemplate.aggregate(aggregation, "clubs",
60+
ClubSearchResult.class);
5861
return results.getMappedResults();
5962
}
6063

61-
private Criteria getMatchedCriteria(String recruitmentStatus, String division, String category) {
64+
private Criteria getMatchedCriteria(String recruitmentStatus, String division,
65+
String category) {
6266
List<Criteria> criteriaList = new ArrayList<>();
6367

6468
if (recruitmentStatus != null && !"all".equalsIgnoreCase(recruitmentStatus)) {
65-
criteriaList.add(Criteria.where("recruitmentInformation.recruitmentStatus").is(recruitmentStatus));
69+
criteriaList.add(
70+
Criteria.where("recruitmentInformation.recruitmentStatus").is(recruitmentStatus));
6671
}
6772
if (division != null && !"all".equalsIgnoreCase(division)) {
6873
criteriaList.add(Criteria.where("division").is(division));
@@ -74,6 +79,6 @@ private Criteria getMatchedCriteria(String recruitmentStatus, String division, S
7479
if (!criteriaList.isEmpty()) {
7580
return new Criteria().andOperator(criteriaList.toArray(new Criteria[0]));
7681
}
77-
return null;
82+
return new Criteria();
7883
}
7984
}

0 commit comments

Comments
 (0)