Skip to content

Conversation

@PicturePark1101
Copy link
Contributor

@PicturePark1101 PicturePark1101 commented May 4, 2025

작업내용

마이노트 API 구현

상세설명_ & 캡쳐

  • 마이노트 API를 구현했습니다.
  • 정렬 조건을 충족하기 위해 구매한 노트의 경우 Application에서 재정렬하도록 구현했습니다.
  • 동적 정렬을 위한 QueryDSL 사용

소유한 노트

  1. usedPencil에서 구매한 노트 createdAt 순으로 조회
  2. 1에서 조회한 usedPencil의 sharedNoteId를 in 절에 넣어 sharedNote 조회
  3. 1의 sharedNote를 Map을 이용해 순서화 -> <sharedNote, 순서>
  4. 3의 map을 이용해 2를 정렬

좋아요한 노트

  1. likedNote에서 Member가 좋아요한 note를 생성 내림차순으로 조회
  2. likedNote의 shatedNote를 가공하여 응답 정보 생성

공유한 노트

  1. sharedNote에서 member 필드로 생성 내림차 순으로 조회
  2. 가공하여 응답정보 생성

쿼리

[공유한 노트]

    select
...[생략]
    from
        shared_note sn1_0 
    join
        limjang l1_0 
            on l1_0.limjang_id=sn1_0.limjang_id 
    join
        limjang_price lp1_0 
            on lp1_0.price_id=l1_0.price_id 
    join
        address ae1_0 
            on ae1_0.address_id=l1_0.address_id 
    left join
        report r1_0 
            on l1_0.limjang_id=r1_0.limjang_id 
    join
        member m1_0 
            on m1_0.member_id=sn1_0.member_id 
    where
        m1_0.member_id=? 
        and sn1_0.deleted_at is null 
    order by
        sn1_0.created_at desc

    select
        ln1_0.shared_note_id 
    from
        liked_note ln1_0 
    where
        ln1_0.member_id=? 
        and 1=0

    select
...[생략]
    from
        image il1_0 
    where
        il1_0.limjang_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

[소장한 노트]

    select
[...생략]
    from
        used_pencil up1_0 
    where
        up1_0.member_id=? 
        and up1_0.type='OWNED' 
    order by
        up1_0.created_at desc

    select
[...생략]
    from
        member m1_0 
    where
        m1_0.member_id=?

    select
  [...생략]
    from
        shared_note sn1_0 
    join
        limjang l1_0 
            on l1_0.limjang_id=sn1_0.limjang_id 
    join
        limjang_price lp1_0 
            on lp1_0.price_id=l1_0.price_id 
    join
        address ae1_0 
            on ae1_0.address_id=l1_0.address_id 
    left join
        report r1_0 
            on l1_0.limjang_id=r1_0.limjang_id 
    join
        member m1_0 
            on m1_0.member_id=sn1_0.member_id 
    where
        sn1_0.shared_note_id in (?, ?)

    select
        ln1_0.shared_note_id 
    from
        liked_note ln1_0 
    where
        ln1_0.member_id=? 
        and ln1_0.shared_note_id in (?, ?)

    select
[...생략]
    from
        image il1_0 
    where
        il1_0.limjang_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

[좋아요한 노트]

    select
  [...생략]
    from
        liked_note ln1_0 
    join
        shared_note sn1_0 
            on sn1_0.shared_note_id=ln1_0.shared_note_id 
    join
        limjang l1_0 
            on l1_0.limjang_id=sn1_0.limjang_id 
    join
        limjang_price lp1_0 
            on lp1_0.price_id=l1_0.price_id 
    join
        address ae1_0 
            on ae1_0.address_id=l1_0.address_id 
    left join
        report r1_0 
            on l1_0.limjang_id=r1_0.limjang_id 
    join
        member m1_0 
            on m1_0.member_id=ln1_0.member_id 
    where
        m1_0.member_id=? 
        and sn1_0.deleted_at is null 
    order by
        ln1_0.liked_note_id desc

    select
        up1_0.shared_note_id 
    from
        used_pencil up1_0 
    where
        up1_0.member_id=? 
        and up1_0.shared_note_id in (?, ?, ?) 
        and up1_0.type='OWNED'

    select
        il1_0.limjang_id,
        il1_0.image_id,
        il1_0.created_at,
        il1_0.image_url,
        il1_0.updated_at 
    from
        image il1_0 
    where
        il1_0.limjang_id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

    select
  [...생략] 
    from
        member m1_0 
    where
        m1_0.member_id=?

@PicturePark1101 PicturePark1101 self-assigned this May 4, 2025
@PicturePark1101 PicturePark1101 added ✨ feature 기능 추가 진이 작업했습니다. 👊🏻 PULL REQUEST pr날릴때 labels May 4, 2025
@PicturePark1101 PicturePark1101 merged commit 3395e79 into dev May 8, 2025
1 check passed
PicturePark1101 added a commit that referenced this pull request Jun 1, 2025
[feat/#362] 마이노트 API 구현
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feature 기능 추가 진이 작업했습니다. 👊🏻 PULL REQUEST pr날릴때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants