build guest rating system
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package com.android.trisolarisserver.db.repo
|
||||
|
||||
import com.android.trisolarisserver.models.booking.GuestRating
|
||||
import org.springframework.data.jpa.repository.Query
|
||||
import org.springframework.data.jpa.repository.JpaRepository
|
||||
import org.springframework.data.repository.query.Param
|
||||
import java.util.UUID
|
||||
|
||||
interface GuestRatingRepo : JpaRepository<GuestRating, UUID> {
|
||||
fun findByGuestIdOrderByCreatedAtDesc(guestId: UUID): List<GuestRating>
|
||||
fun existsByGuestIdAndBookingId(guestId: UUID, bookingId: UUID): Boolean
|
||||
|
||||
@Query(
|
||||
"""
|
||||
select gr.guest.id,
|
||||
avg(case gr.score
|
||||
when com.android.trisolarisserver.models.booking.GuestRatingScore.GOOD then 3
|
||||
when com.android.trisolarisserver.models.booking.GuestRatingScore.OK then 2
|
||||
when com.android.trisolarisserver.models.booking.GuestRatingScore.TROUBLE then 1
|
||||
else null end)
|
||||
from GuestRating gr
|
||||
where gr.guest.id in :guestIds
|
||||
group by gr.guest.id
|
||||
"""
|
||||
)
|
||||
fun findAverageScoreByGuestIds(@Param("guestIds") guestIds: Collection<UUID>): List<Array<Any>>
|
||||
}
|
||||
Reference in New Issue
Block a user