From c8a260c766226cc383c4fdd45feea8c2845b8703 Mon Sep 17 00:00:00 2001 From: BlackBean99 <54030889+BlackBean99@users.noreply.github.com> Date: Sat, 11 May 2024 16:11:49 +0900 Subject: [PATCH 1/3] =?UTF-8?q?3=EC=A3=BC=EC=B0=A8=20=EA=B3=BC=EC=A0=9C=20?= =?UTF-8?q?=EB=B0=9C=ED=91=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a8787e..d4a57ad 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ Aggregate란, 여러 도메인을 하나로 합치는 과정을 의미합니다. 아래 페이지는 신입모집 어드민 페이지입니다. +image 하나의 API 요청에 모든 데이터를 담을 수 있도록 구성해봅시다. @@ -57,4 +58,4 @@ Aggregate란, 여러 도메인을 하나로 합치는 과정을 의미합니다. 제출지 : ymecca730135@gmail.com -### 마감시간 : 2024:05:11/21:30 \ No newline at end of file +### 마감시간 : 2024:05:11/21:30 From 10038e9065d37743986b5a0ef4d3fbe678e2ca1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EB=AF=BC=EA=B7=9C?= Date: Sun, 12 May 2024 22:03:39 +0900 Subject: [PATCH 2/3] =?UTF-8?q?3=EC=A3=BC=EC=B0=A8=20=EA=B3=BC=EC=A0=9C(?= =?UTF-8?q?=EB=B0=95=EB=AF=BC=EA=B7=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AdminQueryController.java | 8 ++ .../third_project/database/Database.java | 13 ++++ .../dto/response/AdminPageResponse.java | 8 ++ .../third_project/dto/response/HopeField.java | 5 ++ .../third_project/dto/response/Priority.java | 5 ++ .../third_project/service/ApplicantMap.java | 19 +++++ .../third_project/service/GetAdminPage.java | 13 ++++ .../third_project/service/GetApplicant.java | 77 +++++++++++++++++++ .../third_project/service/GetDesiredTime.java | 13 ++++ .../third_project/service/GetMajor.java | 47 +++++++++++ .../third_project/service/GetPath.java | 33 ++++++++ 11 files changed, 241 insertions(+) create mode 100644 src/main/java/com/econovation/third_project/dto/response/AdminPageResponse.java create mode 100644 src/main/java/com/econovation/third_project/dto/response/HopeField.java create mode 100644 src/main/java/com/econovation/third_project/dto/response/Priority.java create mode 100644 src/main/java/com/econovation/third_project/service/ApplicantMap.java create mode 100644 src/main/java/com/econovation/third_project/service/GetAdminPage.java create mode 100644 src/main/java/com/econovation/third_project/service/GetApplicant.java create mode 100644 src/main/java/com/econovation/third_project/service/GetDesiredTime.java create mode 100644 src/main/java/com/econovation/third_project/service/GetMajor.java create mode 100644 src/main/java/com/econovation/third_project/service/GetPath.java diff --git a/src/main/java/com/econovation/third_project/controller/AdminQueryController.java b/src/main/java/com/econovation/third_project/controller/AdminQueryController.java index 4c15adb..498d7a8 100644 --- a/src/main/java/com/econovation/third_project/controller/AdminQueryController.java +++ b/src/main/java/com/econovation/third_project/controller/AdminQueryController.java @@ -2,6 +2,8 @@ import com.econovation.third_project.database.Database; import com.econovation.third_project.database.Registration; +import com.econovation.third_project.dto.response.AdminPageResponse; +import com.econovation.third_project.service.GetAdminPage; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -13,6 +15,7 @@ @RequiredArgsConstructor public class AdminQueryController { private final Database database; + private final GetAdminPage getAdminPage; // 예시 코드 @PostMapping("/registration") @@ -25,4 +28,9 @@ public ResponseEntity getRegistration(String userId) { return ResponseEntity.ok().body(database.getRegistration(userId)); } + @GetMapping("/admin") + public ResponseEntity getAdminPage(){ + return ResponseEntity.ok().body(); + } + } diff --git a/src/main/java/com/econovation/third_project/database/Database.java b/src/main/java/com/econovation/third_project/database/Database.java index 33b8710..0cf4267 100644 --- a/src/main/java/com/econovation/third_project/database/Database.java +++ b/src/main/java/com/econovation/third_project/database/Database.java @@ -25,4 +25,17 @@ public void register(Registration registrationRequest) { public Registration getRegistration(String userId) { return registration.get(userId); } + + public Map getAllRegistration(){ + return this.registration; + } + + public Map getAllPersonalInformation(){ + return this.personalInformation; + } + + public Map getAllPath(){ + return this.path; + } + } \ No newline at end of file diff --git a/src/main/java/com/econovation/third_project/dto/response/AdminPageResponse.java b/src/main/java/com/econovation/third_project/dto/response/AdminPageResponse.java new file mode 100644 index 0000000..60731e8 --- /dev/null +++ b/src/main/java/com/econovation/third_project/dto/response/AdminPageResponse.java @@ -0,0 +1,8 @@ +package com.econovation.third_project.dto.response; + +public class AdminPageResponse { + private HopeField hopeField; + private Priority priority; + + +} diff --git a/src/main/java/com/econovation/third_project/dto/response/HopeField.java b/src/main/java/com/econovation/third_project/dto/response/HopeField.java new file mode 100644 index 0000000..17266d5 --- /dev/null +++ b/src/main/java/com/econovation/third_project/dto/response/HopeField.java @@ -0,0 +1,5 @@ +package com.econovation.third_project.dto.response; + +public class HopeField { + +} diff --git a/src/main/java/com/econovation/third_project/dto/response/Priority.java b/src/main/java/com/econovation/third_project/dto/response/Priority.java new file mode 100644 index 0000000..488de35 --- /dev/null +++ b/src/main/java/com/econovation/third_project/dto/response/Priority.java @@ -0,0 +1,5 @@ +package com.econovation.third_project.dto.response; + +public class Priority { + +} diff --git a/src/main/java/com/econovation/third_project/service/ApplicantMap.java b/src/main/java/com/econovation/third_project/service/ApplicantMap.java new file mode 100644 index 0000000..3e3b203 --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/ApplicantMap.java @@ -0,0 +1,19 @@ +package com.econovation.third_project.service; + + +import com.econovation.third_project.database.Registration; +import java.util.Map; + +public class ApplicantMap { + Map applicantNum; + Map applicantPriority; + + public ApplicantMap(Map applicantNum, Map applicantPriority) { + this.applicantNum = applicantNum; + this.applicantPriority = applicantPriority; + } + + public ApplicantMap getApplicant() { + return new ApplicantMap(applicantNum, applicantPriority); + } +} diff --git a/src/main/java/com/econovation/third_project/service/GetAdminPage.java b/src/main/java/com/econovation/third_project/service/GetAdminPage.java new file mode 100644 index 0000000..055bc04 --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/GetAdminPage.java @@ -0,0 +1,13 @@ +package com.econovation.third_project.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class GetAdminPage { + private final GetApplicant getApplicant; + private final GetDesiredTime getDesiredTime; + private final GetMajor getMajor; + private final GetPath getPath; +} diff --git a/src/main/java/com/econovation/third_project/service/GetApplicant.java b/src/main/java/com/econovation/third_project/service/GetApplicant.java new file mode 100644 index 0000000..5b69cca --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/GetApplicant.java @@ -0,0 +1,77 @@ +package com.econovation.third_project.service; + +import com.econovation.third_project.database.Database; +import com.econovation.third_project.database.Registration; +import java.util.HashMap; +import java.util.Map; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class GetApplicant { + private final Database db; + + public ApplicantMap getAllApplicant(){ + Map allRegistration = db.getAllRegistration(); + + // PG 개발자, PM 기획자, DE 디자이너 + // key = hopeField, value = 몇 명인지 + Map allApplicantNum = new HashMap<>(); + + allApplicantNum.put("PG", 0); + allApplicantNum.put("PM", 0); + allApplicantNum.put("DE", 0); + + // value = Registration + for (String key : allRegistration.keySet()){ + Registration registration = allRegistration.get(key); + allApplicantNum.put(registration.getHopeField(), allApplicantNum.get(registration.getHopeField()) + 1); + } + + // WEB, APP, AI, GAME + // key = firstPriority, secondPriority + Map allApplicantPriority = new HashMap<>(); + + allApplicantPriority.put("WEB", new int[2]); + allApplicantPriority.put("APP", new int[2]); + allApplicantPriority.put("AI", new int[2]); + allApplicantPriority.put("GAME", new int[2]); + + // value = Registration + for (String key : allRegistration.keySet()){ + Registration registration = allRegistration.get(key); + int[] firstPriority = allApplicantPriority.get(registration.getFirstPriority()); + int[] secondPriority = allApplicantPriority.get(registration.getSecondPriority()); + + firstPriority[0] += 1; + secondPriority[1] += 1; + + } + + return new ApplicantMap(allApplicantNum, allApplicantPriority); + } + +// public Map getAllApplicantPriority(){ +// Map allRegistration = db.getAllRegistration(); +// // WEB, APP, AI, GAME +// Map allApplicantPriority = new HashMap<>(); +// +// allApplicantPriority.put("WEB", new int[2]); +// allApplicantPriority.put("APP", new int[2]); +// allApplicantPriority.put("AI", new int[2]); +// allApplicantPriority.put("GAME", new int[2]); +// +// // value = Registration +// for (String key : allRegistration.keySet()){ +// Registration registration = allRegistration.get(key); +// int[] firstPriority = allApplicantPriority.get(registration.getFirstPriority()); +// int[] secondPriority = allApplicantPriority.get(registration.getSecondPriority()); +// +// firstPriority[0] += 1; +// secondPriority[1] += 1; +// +// } +// return allApplicantPriority; +// } +} diff --git a/src/main/java/com/econovation/third_project/service/GetDesiredTime.java b/src/main/java/com/econovation/third_project/service/GetDesiredTime.java new file mode 100644 index 0000000..dd2d34a --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/GetDesiredTime.java @@ -0,0 +1,13 @@ +package com.econovation.third_project.service; + +import com.econovation.third_project.database.Database; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class GetDesiredTime { + private final Database db; + + public +} diff --git a/src/main/java/com/econovation/third_project/service/GetMajor.java b/src/main/java/com/econovation/third_project/service/GetMajor.java new file mode 100644 index 0000000..1989de3 --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/GetMajor.java @@ -0,0 +1,47 @@ +package com.econovation.third_project.service; + +import com.econovation.third_project.database.Database; +import com.econovation.third_project.database.PersonalInformation; +import com.econovation.third_project.database.Registration; +import java.util.HashMap; +import java.util.Map; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class GetMajor { + private final Database db; + + public Map getAllMajor(){ + Map allPersonalInformation = db.getAllPersonalInformation(); + // PG 개발자, PM 기획자, DE 디자이너 + // key = hopeField, value = 몇 명인지 + Map allMajor = new HashMap<>(); + + + for (String key : allPersonalInformation.keySet()){ + PersonalInformation personalInformation = allPersonalInformation.get(key); + + String major = personalInformation.getMajor(); + String doubleMajor = personalInformation.getDoubleMajor(); + String minor = personalInformation.getMinor(); + + // 리팩토링 예정 + if(!allMajor.containsKey(major)){ + allMajor.put(major, 0); + } + if(!allMajor.containsKey(doubleMajor)){ + allMajor.put(doubleMajor, 0); + } + if(!allMajor.containsKey(minor)){ + allMajor.put(minor, 0); + } + + allMajor.put(major, allMajor.get(major) + 1); + allMajor.put(doubleMajor, allMajor.get(doubleMajor) + 1); + allMajor.put(minor, allMajor.get(minor) + 1); + } + return allMajor; + } +} diff --git a/src/main/java/com/econovation/third_project/service/GetPath.java b/src/main/java/com/econovation/third_project/service/GetPath.java new file mode 100644 index 0000000..3d34ec5 --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/GetPath.java @@ -0,0 +1,33 @@ +package com.econovation.third_project.service; + +import com.econovation.third_project.database.Database; +import com.econovation.third_project.database.Path; +import com.econovation.third_project.database.Registration; +import java.util.HashMap; +import java.util.Map; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class GetPath { + private final Database db; + + public Map getAllApplicantNum(){ + Map allPath = db.getAllPath(); + // 홍보 포스터, 학과 공지사항, 지인 소개, 인스타그램, 에브리타임 + // key = supportPath, value = 몇 명인지 + Map allSupportPath = new HashMap<>(); + allSupportPath.put("홍보 포스터", 0); + allSupportPath.put("학과 공지사항", 0); + allSupportPath.put("지인 소개", 0); + allSupportPath.put("지인 인스타그램", 0); + allSupportPath.put("에브리타임", 0); + + for (String key : allPath.keySet()){ + Path path = allPath.get(key); + allSupportPath.put(path.getSupportPath(), allSupportPath.get(path.getSupportPath()) + 1); + } + return allSupportPath; + } +} From d67abaffa36218b58b6a8f7e85739c3f2241490c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EB=AF=BC=EA=B7=9C?= Date: Mon, 20 May 2024 02:18:32 +0900 Subject: [PATCH 3/3] . --- .../third_project/database/Database.java | 3 +++ .../third_project/service/ApplicantMap.java | 19 ------------------- .../service/ApplicantMapper.java | 14 ++++++++++++++ .../service/DesiredTimeMapper.java | 7 +++++++ .../third_project/service/GetApplicant.java | 4 ++-- .../third_project/service/GetDesiredTime.java | 18 +++++++++++++++++- .../third_project/service/GetPath.java | 1 - 7 files changed, 43 insertions(+), 23 deletions(-) delete mode 100644 src/main/java/com/econovation/third_project/service/ApplicantMap.java create mode 100644 src/main/java/com/econovation/third_project/service/ApplicantMapper.java create mode 100644 src/main/java/com/econovation/third_project/service/DesiredTimeMapper.java diff --git a/src/main/java/com/econovation/third_project/database/Database.java b/src/main/java/com/econovation/third_project/database/Database.java index 0cf4267..9c9ef22 100644 --- a/src/main/java/com/econovation/third_project/database/Database.java +++ b/src/main/java/com/econovation/third_project/database/Database.java @@ -38,4 +38,7 @@ public Map getAllPath(){ return this.path; } + public Map getAllDesiredTime(){ + return this.desiredTime; + } } \ No newline at end of file diff --git a/src/main/java/com/econovation/third_project/service/ApplicantMap.java b/src/main/java/com/econovation/third_project/service/ApplicantMap.java deleted file mode 100644 index 3e3b203..0000000 --- a/src/main/java/com/econovation/third_project/service/ApplicantMap.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.econovation.third_project.service; - - -import com.econovation.third_project.database.Registration; -import java.util.Map; - -public class ApplicantMap { - Map applicantNum; - Map applicantPriority; - - public ApplicantMap(Map applicantNum, Map applicantPriority) { - this.applicantNum = applicantNum; - this.applicantPriority = applicantPriority; - } - - public ApplicantMap getApplicant() { - return new ApplicantMap(applicantNum, applicantPriority); - } -} diff --git a/src/main/java/com/econovation/third_project/service/ApplicantMapper.java b/src/main/java/com/econovation/third_project/service/ApplicantMapper.java new file mode 100644 index 0000000..5445be6 --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/ApplicantMapper.java @@ -0,0 +1,14 @@ +package com.econovation.third_project.service; + + +import java.util.Map; + +public class ApplicantMapper { + Map applicantNum; + Map applicantPriority; + + public ApplicantMapper(Map applicantNum, Map applicantPriority) { + this.applicantNum = applicantNum; + this.applicantPriority = applicantPriority; + } +} diff --git a/src/main/java/com/econovation/third_project/service/DesiredTimeMapper.java b/src/main/java/com/econovation/third_project/service/DesiredTimeMapper.java new file mode 100644 index 0000000..1c1447d --- /dev/null +++ b/src/main/java/com/econovation/third_project/service/DesiredTimeMapper.java @@ -0,0 +1,7 @@ +package com.econovation.third_project.service; + +import java.util.Map; + +public class DesiredTimeMapper { + +} diff --git a/src/main/java/com/econovation/third_project/service/GetApplicant.java b/src/main/java/com/econovation/third_project/service/GetApplicant.java index 5b69cca..b14f48c 100644 --- a/src/main/java/com/econovation/third_project/service/GetApplicant.java +++ b/src/main/java/com/econovation/third_project/service/GetApplicant.java @@ -12,7 +12,7 @@ public class GetApplicant { private final Database db; - public ApplicantMap getAllApplicant(){ + public ApplicantMapper getAllApplicant(){ Map allRegistration = db.getAllRegistration(); // PG 개발자, PM 기획자, DE 디자이너 @@ -49,7 +49,7 @@ public ApplicantMap getAllApplicant(){ } - return new ApplicantMap(allApplicantNum, allApplicantPriority); + return new ApplicantMapper(allApplicantNum, allApplicantPriority); } // public Map getAllApplicantPriority(){ diff --git a/src/main/java/com/econovation/third_project/service/GetDesiredTime.java b/src/main/java/com/econovation/third_project/service/GetDesiredTime.java index dd2d34a..585458b 100644 --- a/src/main/java/com/econovation/third_project/service/GetDesiredTime.java +++ b/src/main/java/com/econovation/third_project/service/GetDesiredTime.java @@ -1,13 +1,29 @@ package com.econovation.third_project.service; import com.econovation.third_project.database.Database; +import com.econovation.third_project.database.DesiredTime; +import java.util.Map; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor public class GetDesiredTime { + private final Database db; - public + public DesiredTimeMapper getAllDesiredTime() { + Map allDesiredTime = db.getAllDesiredTime(); + for (String key : allDesiredTime.keySet()){ + DesiredTime desiredTime = allDesiredTime.get(key); + for (int[] times: desiredTime.getDesiredTime()){ + int startTime = times[0]; + int endTime = times[1]; + + + } + + } + } + } diff --git a/src/main/java/com/econovation/third_project/service/GetPath.java b/src/main/java/com/econovation/third_project/service/GetPath.java index 3d34ec5..397fe50 100644 --- a/src/main/java/com/econovation/third_project/service/GetPath.java +++ b/src/main/java/com/econovation/third_project/service/GetPath.java @@ -2,7 +2,6 @@ import com.econovation.third_project.database.Database; import com.econovation.third_project.database.Path; -import com.econovation.third_project.database.Registration; import java.util.HashMap; import java.util.Map; import lombok.RequiredArgsConstructor;