feat : 모든 태그 조회 기능 추가.
This commit is contained in:
parent
aa0d531399
commit
93914e13f9
@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
@ -151,8 +152,10 @@ public class AnalyticsController {
|
|||||||
@Parameter(description = "AI 피드백 ID", required = true)
|
@Parameter(description = "AI 피드백 ID", required = true)
|
||||||
@PathVariable @NotNull Long feedbackId,
|
@PathVariable @NotNull Long feedbackId,
|
||||||
@RequestBody ActionPlanCreateRequest request,
|
@RequestBody ActionPlanCreateRequest request,
|
||||||
|
@AuthenticationPrincipal long id,
|
||||||
HttpServletRequest httpRequest) {
|
HttpServletRequest httpRequest) {
|
||||||
|
|
||||||
|
System.out.println("test => " + id);
|
||||||
|
|
||||||
// validation 체크
|
// validation 체크
|
||||||
if (request.getActionPlanSelect() == null || request.getActionPlanSelect().isEmpty()) {
|
if (request.getActionPlanSelect() == null || request.getActionPlanSelect().isEmpty()) {
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package com.ktds.hi.store.biz.service;
|
|||||||
import com.ktds.hi.store.biz.usecase.in.TagUseCase;
|
import com.ktds.hi.store.biz.usecase.in.TagUseCase;
|
||||||
import com.ktds.hi.store.biz.usecase.out.TagRepositoryPort;
|
import com.ktds.hi.store.biz.usecase.out.TagRepositoryPort;
|
||||||
import com.ktds.hi.store.domain.Tag;
|
import com.ktds.hi.store.domain.Tag;
|
||||||
|
import com.ktds.hi.store.infra.dto.response.AllTagResponse;
|
||||||
import com.ktds.hi.store.infra.dto.response.TopClickedTagResponse;
|
import com.ktds.hi.store.infra.dto.response.TopClickedTagResponse;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -28,6 +29,24 @@ public class TagService implements TagUseCase {
|
|||||||
|
|
||||||
private final TagRepositoryPort tagRepositoryPort;
|
private final TagRepositoryPort tagRepositoryPort;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AllTagResponse> getAllTags() {
|
||||||
|
log.info("모든 활성화된 태그 목록 조회 시작");
|
||||||
|
|
||||||
|
List<Tag> tags = tagRepositoryPort.findAllActiveTags();
|
||||||
|
|
||||||
|
List<AllTagResponse> responses = tags.stream()
|
||||||
|
.map(tag -> AllTagResponse.builder()
|
||||||
|
.id(tag.getId())
|
||||||
|
.tagCategory(tag.getTagCategory().name())
|
||||||
|
.tagName(tag.getTagName())
|
||||||
|
.build())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
log.info("모든 활성화된 태그 목록 조회 완료: count={}", responses.size());
|
||||||
|
return responses;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<TopClickedTagResponse> getTopClickedTags() {
|
public List<TopClickedTagResponse> getTopClickedTags() {
|
||||||
log.info("가장 많이 클릭된 상위 5개 태그 조회 시작");
|
log.info("가장 많이 클릭된 상위 5개 태그 조회 시작");
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.ktds.hi.store.biz.usecase.in;
|
package com.ktds.hi.store.biz.usecase.in;
|
||||||
|
|
||||||
|
import com.ktds.hi.store.infra.dto.response.AllTagResponse;
|
||||||
import com.ktds.hi.store.infra.dto.response.TopClickedTagResponse;
|
import com.ktds.hi.store.infra.dto.response.TopClickedTagResponse;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -13,6 +14,13 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface TagUseCase {
|
public interface TagUseCase {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 모든 활성화된 태그 목록 조회
|
||||||
|
*
|
||||||
|
* @return 모든 태그 목록
|
||||||
|
*/
|
||||||
|
List<AllTagResponse> getAllTags();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 가장 많이 클릭된 상위 5개 태그 조회
|
* 가장 많이 클릭된 상위 5개 태그 조회
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.ktds.hi.store.infra.controller;
|
package com.ktds.hi.store.infra.controller;
|
||||||
|
|
||||||
import com.ktds.hi.store.biz.usecase.in.TagUseCase;
|
import com.ktds.hi.store.biz.usecase.in.TagUseCase;
|
||||||
|
import com.ktds.hi.store.infra.dto.response.AllTagResponse;
|
||||||
import com.ktds.hi.store.infra.dto.response.TopClickedTagResponse;
|
import com.ktds.hi.store.infra.dto.response.TopClickedTagResponse;
|
||||||
import com.ktds.hi.common.dto.ApiResponse;
|
import com.ktds.hi.common.dto.ApiResponse;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@ -26,6 +27,18 @@ public class TagController {
|
|||||||
|
|
||||||
private final TagUseCase tagUseCase;
|
private final TagUseCase tagUseCase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 모든 활성화된 태그 목록 조회 API
|
||||||
|
*/
|
||||||
|
@GetMapping
|
||||||
|
@Operation(summary = "모든 태그 조회", description = "활성화된 모든 태그 목록을 조회합니다.")
|
||||||
|
public ResponseEntity<ApiResponse<List<AllTagResponse>>> getAllTags() {
|
||||||
|
|
||||||
|
List<AllTagResponse> tags = tagUseCase.getAllTags();
|
||||||
|
|
||||||
|
return ResponseEntity.ok(ApiResponse.success(tags));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 가장 많이 클릭된 상위 5개 태그 조회 API
|
* 가장 많이 클릭된 상위 5개 태그 조회 API
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
package com.ktds.hi.store.infra.dto.response;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 모든 태그 응답 DTO
|
||||||
|
* 태그 기본 정보를 담는 응답 클래스
|
||||||
|
*
|
||||||
|
* @author 하이오더 개발팀
|
||||||
|
* @version 1.0.0
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Builder
|
||||||
|
public class AllTagResponse {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 태그 ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 태그 카테고리
|
||||||
|
*/
|
||||||
|
private String tagCategory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 태그명
|
||||||
|
*/
|
||||||
|
private String tagName;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user