Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,14 @@ public void saveHighlights(HighlightRequest request, UUID memberId) {
/*
* 2. ํ•˜์ด๋ผ์ดํŠธ ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ
*/
List<HighlightEntity> entities=factory.createHighlightEntities(request.getHighlightUrls(),request.getHighlightIdentifier(),member,backNumber,request.getCreatedAt());
List<HighlightEntity> entities=factory.createHighlightEntities(
request.getHighlightUrls(),
request.getHighlightIdentifier(),
member,
backNumber,
request.getCreatedAt(),
request.getJobId()
);

/*
3. DB ์ €์žฅ
Expand Down Expand Up @@ -114,4 +121,12 @@ public HighlightCalendarResponse fetchCalendar(int year, int month,UUID memberId

return new HighlightCalendarResponse(year,month,daysResponses);
}

public List<HighlightInfoResponse> fetchLatestCreatedHighlights(UUID jobId,UUID memberId){
List<HighlightEntity> highlightList=highlightHelper.fetchLastestCreatedHighlights(jobId,memberId);

return highlightList.stream()
.map(mapper::infoResponseToEntity)
.toList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,12 @@ public ResponseEntity<ApiResponse<HighlightCalendarResponse>> fetchCalendar(
UUID memberId=SecurityUtils.getCurrentMemberId();
return ResponseEntity.ok(ApiResponse.ok(manager.fetchCalendar(year,month,memberId)));
}

@GetMapping("/latest")
public ResponseEntity<ApiResponse<List<HighlightInfoResponse>>> latestCreatedHighlights(
@RequestParam(value = "jobId") UUID jobId
){
UUID memberId=SecurityUtils.getCurrentMemberId();
return ResponseEntity.ok(ApiResponse.ok(manager.fetchLatestCreatedHighlights(jobId,memberId)));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.midas.shootpointer.domain.highlight.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -27,4 +28,6 @@ public class HighlightRequest {
@NotBlank(message = "ํ•˜์ด๋ผ์ดํŠธ ์ƒ์„ฑ ๋‚ ์งœ๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.")
private LocalDateTime createdAt;

@NotNull(message = "ํ•˜์ด๋ผ์ดํŠธ JobId๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.")
private UUID jobId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@
import com.midas.shootpointer.domain.member.entity.Member;
import com.midas.shootpointer.global.entity.BaseEntity;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.annotations.UuidGenerator;

Expand Down Expand Up @@ -53,6 +50,9 @@ public class HighlightEntity extends BaseEntity {
@Column(name = "video_created_at")
private LocalDateTime videoCreatedAt;

@Column(name = "job_id",columnDefinition = "uuid")
private UUID jobId;

/*
=========== [ ๋„๋ฉ”์ธ-ํ–‰์œ„ ] ==============
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ public DateTimeRange getMonthDateTimeRange(int year, int month) {
return highlightUtil.getMonthDateTimeRange(year,month);
}

@Override
public List<HighlightEntity> fetchLastestCreatedHighlights(UUID jobId, UUID memberId) {
return highlightUtil.fetchLastestCreatedHighlights(jobId,memberId);
}

@Override
public boolean filesExist(String directory) {
return highlightValidator.filesExist(directory);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ public interface HighlightUtil {
TreeMap<LocalDate,List<HighlightInfoResponse>> groupingHighlights(List<HighlightInfoResponse> flatHighlightList);
List<HighlightInfoResponse> fetchFlatHighlightList(int year,int month,UUID memberId);
DateTimeRange getMonthDateTimeRange(int year, int month);
List<HighlightEntity> fetchLastestCreatedHighlights(UUID jobId,UUID memberId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -163,5 +163,10 @@ public DateTimeRange getMonthDateTimeRange(int year, int month) {
return new DateTimeRange(start,end);
}

@Override
public List<HighlightEntity> fetchLastestCreatedHighlights(UUID jobId, UUID memberId) {
return highlightQueryRepository.fetchHighlightsByJobId(jobId,memberId);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ public List<HighlightEntity> createHighlightEntities(List<HighlightInfo> highlig
UUID key,
Member member,
BackNumberEntity backNumber,
LocalDateTime createAt
LocalDateTime createAt,
UUID jobId
){
return highlightInfos.stream()
.map(info -> HighlightEntity.builder()
Expand All @@ -32,6 +33,7 @@ public List<HighlightEntity> createHighlightEntities(List<HighlightInfo> highlig
.threePointCount(info.threePointCount())
.backNumber(backNumber)
.videoCreatedAt(createAt)
.jobId(jobId)
.build())
.toList();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,18 @@ SELECT EXISTS(
h.videoCreatedAt ASC
""" )
List<HighlightInfoResponse> fetchFlatHighlights(LocalDateTime startDate,LocalDateTime endDate,UUID memberId);


@Query(value = """
SELECT *
FROM
highlight AS h
INNER JOIN
member AS m ON h.member_id = :memberId
WHERE
h.job_id = :jobId
""",nativeQuery = true)
List<HighlightEntity> fetchHighlightsByJobId(UUID jobId,UUID memberId);
/**
* ===========================
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,10 @@ void createHighlightEntities(){
.backNumber(BackNumber.of(10))
.build();
LocalDateTime now=LocalDateTime.now();
UUID jobId=UUID.randomUUID();

//when
List<HighlightEntity> result=factory.createHighlightEntities(highlightInfos,highlightKey,member,backNumber,now);
List<HighlightEntity> result=factory.createHighlightEntities(highlightInfos,highlightKey,member,backNumber,now,jobId);

//then

Expand Down