File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44import io .swagger .v3 .oas .annotations .Operation ;
55import jakarta .servlet .http .HttpServletResponse ;
66import lombok .RequiredArgsConstructor ;
7- import org .springframework .web .bind .annotation .PostMapping ;
8- import org .springframework .web .bind .annotation .RequestBody ;
9- import org .springframework .web .bind .annotation .RequestMapping ;
10- import org .springframework .web .bind .annotation .RestController ;
7+ import org .springframework .web .bind .annotation .*;
118import umc .tosee .global .common .ApiResponse ;
129import umc .tosee .global .common .SuccessCode ;
1310import umc .tosee .gpt .dto .GptDTO ;
1411import umc .tosee .memory .dto .MemoryDTO ;
12+ import umc .tosee .memory .dto .Res .MemoryRes ;
1513import umc .tosee .memory .service .MemoryService ;
1614
15+ import java .util .List ;
16+
1717@ RestController
1818@ RequiredArgsConstructor
1919@ RequestMapping ("/api/memories" )
@@ -86,5 +86,10 @@ public ApiResponse<GptDTO.GptResponseDTO> saveMemory(
8686
8787 return ApiResponse .onSuccess (result , SuccessCode .CREATED );
8888 }
89+
90+ @ GetMapping ("/random" )
91+ public ApiResponse <List <MemoryRes .MemoryRandomRes >> getRandomMemories () {
92+ return ApiResponse .onSuccess (memoryService .getRandomMemory (), SuccessCode .OK );
93+ }
8994}
9095
Original file line number Diff line number Diff line change 1+ package umc .tosee .memory .converter ;
2+
3+ import lombok .RequiredArgsConstructor ;
4+ import umc .tosee .memory .domain .Memory ;
5+ import umc .tosee .memory .dto .Res .MemoryRes .MemoryRandomRes ;
6+
7+ @ RequiredArgsConstructor
8+ public class MemoryConverter {
9+
10+ public static MemoryRandomRes toRandomRes (Memory memory ) {
11+ return MemoryRandomRes .builder ()
12+ .memoryId (memory .getId ())
13+ .name (memory .getCategory ().getName ())
14+ .sadCount (memory .getSadCount ())
15+ .build ();
16+ }
17+ }
Original file line number Diff line number Diff line change @@ -22,11 +22,11 @@ public class Memory {
2222
2323 private String content ;
2424
25- private int sad_count = 0 ;
25+ private int sadCount = 0 ;
2626
2727 private String summation ;
2828
29- @ OneToOne
29+ @ ManyToOne ( fetch = FetchType . LAZY )
3030 @ JoinColumn (name = "category_id" , nullable = false )
3131 private Category category ;
3232
Original file line number Diff line number Diff line change 1+ package umc .tosee .memory .dto .Res ;
2+ import lombok .Builder ;
3+
4+ public class MemoryRes {
5+
6+ @ Builder
7+ public record MemoryRandomRes (
8+ Long memoryId ,
9+ String name ,
10+ int sadCount
11+ ) {}
12+ }
Original file line number Diff line number Diff line change 22
33
44import org .springframework .data .jpa .repository .JpaRepository ;
5+ import org .springframework .data .jpa .repository .Query ;
56import umc .tosee .memory .domain .Memory ;
67
7- public interface MemoryRepository extends JpaRepository < Memory , Long > {
8+ import java . util . List ;
89
10+ public interface MemoryRepository extends JpaRepository <Memory ,Long > {
11+ @ Query (value = """
12+ SELECT *
13+ FROM (
14+ SELECT *
15+ FROM memories
16+ ORDER BY RAND()
17+ LIMIT 4
18+ ) t
19+ ORDER BY t.sad_count DESC
20+ """ , nativeQuery = true )
21+ List <Memory > findRandomMemoryBySadDesc ();
922}
Original file line number Diff line number Diff line change 99import org .springframework .stereotype .Service ;
1010import umc .tosee .gpt .dto .GptDTO ;
1111import umc .tosee .gpt .service .GptService ;
12+ import umc .tosee .memory .converter .MemoryConverter ;
1213import umc .tosee .memory .domain .Memory ;
1314import umc .tosee .memory .dto .MemoryDTO ;
15+ import umc .tosee .memory .dto .Res .MemoryRes ;
1416import umc .tosee .memory .repository .MemoryRepository ;
1517import umc .tosee .memorycategory .domain .Category ;
1618import umc .tosee .memorycategory .repository .CategoryRepository ;
1719
20+ import java .util .List ;
21+
1822@ RequiredArgsConstructor
1923@ Service
2024public class MemoryService {
@@ -71,5 +75,13 @@ private void saveCategoryCookie(
7175 response .addCookie (cookie );
7276 }
7377
78+ @ Transactional
79+ public List <MemoryRes .MemoryRandomRes > getRandomMemory () {
80+ return memoryRepository .findRandomMemoryBySadDesc ()
81+ .stream ()
82+ .map (MemoryConverter ::toRandomRes )
83+ .toList ();
84+ }
85+
7486
7587}
Original file line number Diff line number Diff line change @@ -21,6 +21,4 @@ public class Category {
2121
2222 private String name ;
2323
24- @ OneToOne (mappedBy = "category" )
25- private Memory memory ;
2624}
You can’t perform that action at this time.
0 commit comments