build guest rating system

This commit is contained in:
androidlover5842
2026-01-26 15:09:20 +05:30
parent 31398d3822
commit de7e293097
8 changed files with 287 additions and 6 deletions

View File

@@ -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>>
}