From 617bd2ef247536a85de460d91ff334a0bf34a12c Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 22 Oct 2026 18:13:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=92=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SmHotelAppController.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmHotelAppController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmHotelAppController.java index 677995d9..d3df95d5 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmHotelAppController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmHotelAppController.java @@ -87,7 +87,7 @@ public class SmHotelAppController { private static final String CANDIDATE_CACHE_OVERFLOW = "OVERFLOW"; /** 列表页结果短缓存(同条件重复进入/下拉) */ - private static final String PAGE_CACHE_PREFIX = "sm:hotel:app:page:v6:"; + private static final String PAGE_CACHE_PREFIX = "sm:hotel:app:page:v7:"; private static final long PAGE_CACHE_SECONDS = 45L; @@ -297,9 +297,17 @@ public class SmHotelAppController { } wrapper.in(SmHotelEntity::getId, priceHitIds); } - wrapper.orderByDesc(SmHotelEntity::getScore) - .orderByDesc(SmHotelEntity::getUpdateTime) - .orderByDesc(SmHotelEntity::getId); + // 五星档次优先,同档按产品标价从高到低(无星级/无价格的靠后) + wrapper.last(""" + ORDER BY IFNULL(star_level, 0) DESC, + IFNULL(( + SELECT MIN(p.sell_price) FROM canteen_hotel_product p + WHERE p.del_flag = '0' + AND p.hotel_id = canteen_hotel.id + AND p.sell_price IS NOT NULL + ), 0) DESC, + id DESC + """); raw = pageWithoutCount(page, wrapper); List ids = raw.getRecords().stream().map(SmHotelEntity::getId).filter(Objects::nonNull).toList(); LocalDate priceFrom = stayFrom != null ? stayFrom : LocalDate.now();