From fa1313c0030900d92282d5fad524b19c3cd54da6 Mon Sep 17 00:00:00 2001 From: letskuku Date: Mon, 9 Dec 2024 01:03:16 +0900 Subject: [PATCH 1/5] =?UTF-8?q?#277=20feat:=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=ED=9A=9F=EC=88=98=20=EB=82=B4=EB=A6=BC=EC=B0=A8=EC=88=9C?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EA=B2=80=EC=83=89=EC=96=B4=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8A=94=20=EB=A6=AC?= =?UTF-8?q?=ED=8F=AC=EC=A7=80=ED=86=A0=EB=A6=AC=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharemind/searchWord/repository/SearchWordRepository.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/example/sharemind/searchWord/repository/SearchWordRepository.java b/src/main/java/com/example/sharemind/searchWord/repository/SearchWordRepository.java index 48dce515..d34c857f 100644 --- a/src/main/java/com/example/sharemind/searchWord/repository/SearchWordRepository.java +++ b/src/main/java/com/example/sharemind/searchWord/repository/SearchWordRepository.java @@ -1,6 +1,7 @@ package com.example.sharemind.searchWord.repository; import com.example.sharemind.searchWord.domain.SearchWord; +import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -8,4 +9,6 @@ @Repository public interface SearchWordRepository extends JpaRepository { Optional findByWordAndIsActivatedTrue(String word); + + List findAllByOrderByCountDesc(); } From 2c9f0ceccc5fbac1a0a65e0e23dd20c0550cdab0 Mon Sep 17 00:00:00 2001 From: letskuku Date: Mon, 9 Dec 2024 01:03:32 +0900 Subject: [PATCH 2/5] =?UTF-8?q?#277=20feat:=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=ED=9A=9F=EC=88=98=20=EB=82=B4=EB=A6=BC=EC=B0=A8=EC=88=9C?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EA=B2=80=EC=83=89=EC=96=B4=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8A=94=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharemind/searchWord/application/SearchWordService.java | 3 +++ .../searchWord/application/SearchWordServiceImpl.java | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/com/example/sharemind/searchWord/application/SearchWordService.java b/src/main/java/com/example/sharemind/searchWord/application/SearchWordService.java index 9e6e384b..4e6146ab 100644 --- a/src/main/java/com/example/sharemind/searchWord/application/SearchWordService.java +++ b/src/main/java/com/example/sharemind/searchWord/application/SearchWordService.java @@ -2,6 +2,7 @@ import com.example.sharemind.counselor.dto.response.CounselorGetListResponse; import com.example.sharemind.post.dto.response.PostGetPublicListResponse; +import com.example.sharemind.searchWord.domain.SearchWord; import com.example.sharemind.searchWord.dto.request.SearchWordDeleteRequest; import com.example.sharemind.searchWord.dto.request.SearchWordCounselorFindRequest; @@ -27,4 +28,6 @@ List storeAllSearchWordAndGetPosts(String sortType, List storeSearchWordAndGetPosts(Long customerId, String sortType, SearchWordPostFindRequest searchWordPostFindRequest); + + List getSearchWordsOrderByCount(); } diff --git a/src/main/java/com/example/sharemind/searchWord/application/SearchWordServiceImpl.java b/src/main/java/com/example/sharemind/searchWord/application/SearchWordServiceImpl.java index 7e523cc0..460a1d34 100644 --- a/src/main/java/com/example/sharemind/searchWord/application/SearchWordServiceImpl.java +++ b/src/main/java/com/example/sharemind/searchWord/application/SearchWordServiceImpl.java @@ -117,6 +117,11 @@ public List storeSearchWordAndGetPosts(Long customerI .toList(); } + @Override + public List getSearchWordsOrderByCount() { + return searchWordRepository.findAllByOrderByCountDesc(); + } + @Transactional @Override public void storeSearchWordInDB(String word) { From 8da6bb88fdc187eceb64cc78a4e70b7c5de225a5 Mon Sep 17 00:00:00 2001 From: letskuku Date: Mon, 9 Dec 2024 01:04:06 +0900 Subject: [PATCH 3/5] =?UTF-8?q?#277=20feat:=20=EA=B3=84=EC=B8=B5=20?= =?UTF-8?q?=EA=B0=84=20=EA=B2=80=EC=83=89=EC=96=B4=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EC=9C=84=ED=95=9C=20dto=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/SearchWordGetResponse.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/example/sharemind/admin/dto/response/SearchWordGetResponse.java diff --git a/src/main/java/com/example/sharemind/admin/dto/response/SearchWordGetResponse.java b/src/main/java/com/example/sharemind/admin/dto/response/SearchWordGetResponse.java new file mode 100644 index 00000000..8c91997b --- /dev/null +++ b/src/main/java/com/example/sharemind/admin/dto/response/SearchWordGetResponse.java @@ -0,0 +1,46 @@ +package com.example.sharemind.admin.dto.response; + +import com.example.sharemind.searchWord.domain.SearchWord; +import io.swagger.v3.oas.annotations.media.Schema; +import java.time.LocalDateTime; +import lombok.Builder; +import lombok.Getter; + +@Getter +public class SearchWordGetResponse { + + @Schema(description = "검색어 아이디") + private final Long wordId; + + @Schema(description = "검색어") + private final String word; + + @Schema(description = "검색 횟수") + private final Long count; + + @Schema(description = "최초 검색 일시") + private final LocalDateTime createdAt; + + @Schema(description = "마지막 검색 일시") + private final LocalDateTime updatedAt; + + @Builder + public SearchWordGetResponse(Long wordId, String word, Long count, LocalDateTime createdAt, + LocalDateTime updatedAt) { + this.wordId = wordId; + this.word = word; + this.count = count; + this.createdAt = createdAt; + this.updatedAt = updatedAt; + } + + public static SearchWordGetResponse of(SearchWord searchWord) { + return SearchWordGetResponse.builder() + .wordId(searchWord.getWordId()) + .word(searchWord.getWord()) + .count(searchWord.getCount()) + .createdAt(searchWord.getCreatedAt()) + .updatedAt(searchWord.getUpdatedAt()) + .build(); + } +} From 3e01b83b3e9dddcc31cf197a4e59221d6b6fbde7 Mon Sep 17 00:00:00 2001 From: letskuku Date: Mon, 9 Dec 2024 01:04:34 +0900 Subject: [PATCH 4/5] =?UTF-8?q?#277=20feat:=20=EC=96=B4=EB=93=9C=EB=AF=BC?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=EC=96=B4=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=B9=84=EC=A6=88=EB=8B=88=EC=8A=A4=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharemind/admin/application/AdminService.java | 3 +++ .../sharemind/admin/application/AdminServiceImpl.java | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/com/example/sharemind/admin/application/AdminService.java b/src/main/java/com/example/sharemind/admin/application/AdminService.java index 65693182..b6f54f7f 100644 --- a/src/main/java/com/example/sharemind/admin/application/AdminService.java +++ b/src/main/java/com/example/sharemind/admin/application/AdminService.java @@ -8,6 +8,7 @@ import com.example.sharemind.admin.dto.response.PaymentGetSettlementOngoingResponse; import com.example.sharemind.admin.dto.response.PostGetByIdResponse; import com.example.sharemind.admin.dto.response.PostGetUnpaidPrivateResponse; +import com.example.sharemind.admin.dto.response.SearchWordGetResponse; import com.example.sharemind.counselor.dto.response.CounselorGetProfileResponse; import com.example.sharemind.sms.dto.response.SmsGetResponse; @@ -54,4 +55,6 @@ public interface AdminService { Boolean updateShutdown(Boolean shutdown); Boolean getShutdown(); + + List getSearchWords(); } diff --git a/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java b/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java index d9f741c8..fa62a358 100644 --- a/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java +++ b/src/main/java/com/example/sharemind/admin/application/AdminServiceImpl.java @@ -8,6 +8,7 @@ import com.example.sharemind.admin.dto.response.PaymentGetSettlementOngoingResponse; import com.example.sharemind.admin.dto.response.PostGetByIdResponse; import com.example.sharemind.admin.dto.response.PostGetUnpaidPrivateResponse; +import com.example.sharemind.admin.dto.response.SearchWordGetResponse; import com.example.sharemind.chat.application.ChatService; import com.example.sharemind.chat.content.ChatStatus; import com.example.sharemind.chat.domain.Chat; @@ -40,6 +41,8 @@ import com.example.sharemind.post.domain.Post; import com.example.sharemind.post.exception.PostErrorCode; import com.example.sharemind.post.exception.PostException; +import com.example.sharemind.searchWord.application.SearchWordService; +import com.example.sharemind.searchWord.domain.SearchWord; import com.example.sharemind.sms.application.SmsService; import com.example.sharemind.sms.dto.response.SmsGetResponse; import lombok.RequiredArgsConstructor; @@ -66,6 +69,7 @@ public class AdminServiceImpl implements AdminService { private final PostService postService; private final EmailService emailService; private final SmsService smsService; + private final SearchWordService searchWordService; private final RedisTemplate redisTemplate; @Override @@ -336,4 +340,10 @@ public Boolean getShutdown() { ValueOperations valueOperations = redisTemplate.opsForValue(); return valueOperations.get(SHUT_DOWN_KEY); } + + @Override + public List getSearchWords() { + List searchWords = searchWordService.getSearchWordsOrderByCount(); + return searchWords.stream().map(SearchWordGetResponse::of).toList(); + } } From abd55739d61cb1574dcca46716d05458d572fc45 Mon Sep 17 00:00:00 2001 From: letskuku Date: Mon, 9 Dec 2024 01:04:46 +0900 Subject: [PATCH 5/5] =?UTF-8?q?#277=20feat:=20=EC=96=B4=EB=93=9C=EB=AF=BC?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=EC=96=B4=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=ED=95=98=EB=8A=94=20api=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sharemind/admin/presentation/AdminController.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/example/sharemind/admin/presentation/AdminController.java b/src/main/java/com/example/sharemind/admin/presentation/AdminController.java index 3001fd67..b840ffde 100644 --- a/src/main/java/com/example/sharemind/admin/presentation/AdminController.java +++ b/src/main/java/com/example/sharemind/admin/presentation/AdminController.java @@ -9,6 +9,7 @@ import com.example.sharemind.admin.dto.response.PaymentGetSettlementOngoingResponse; import com.example.sharemind.admin.dto.response.PostGetByIdResponse; import com.example.sharemind.admin.dto.response.PostGetUnpaidPrivateResponse; +import com.example.sharemind.admin.dto.response.SearchWordGetResponse; import com.example.sharemind.counselor.dto.response.CounselorGetProfileResponse; import com.example.sharemind.global.exception.CustomExceptionResponse; import com.example.sharemind.sms.dto.response.SmsGetResponse; @@ -335,4 +336,13 @@ public ResponseEntity updateShutdown(@RequestParam Boolean shutdown) { public ResponseEntity getShutdown() { return ResponseEntity.ok(adminService.getShutdown()); } + + @Operation(summary = "검색어 내림차순 조회", description = "검색어 내림차순 조회") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "조회 성공") + }) + @GetMapping("/search-words") + public ResponseEntity> getSearchWords() { + return ResponseEntity.ok(adminService.getSearchWords()); + } }