From eabb4c6aa64093ed1be84f7d6cac2e85f7f87d04 Mon Sep 17 00:00:00 2001 From: Timi Date: Sat, 12 Sep 2026 00:11:07 +0800 Subject: [PATCH] fix event record CONTINUOUS_DAYS rank --- .../timi-server/gao/GaoEventRecordMapper.xml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml b/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml index 55ee1e1..6cfed79 100644 --- a/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml +++ b/src/main/resources/mapper/timi-server/gao/GaoEventRecordMapper.xml @@ -348,10 +348,23 @@ FROM `daily_stat` d JOIN `open_calendar` o ON d.`registeredDateValue` = o.`dateValue` ), + `customer_stat` AS ( + SELECT + d.`customerId`, + MAX(CASE WHEN d.`registeredDateValue` = #{todayDateValue} THEN 1 ELSE 0 END) AS `hasToday` + FROM `daily_stat` d + GROUP BY d.`customerId` + ), `anchor_date` AS ( SELECT - MAX(`openIndex`) AS `anchorOpenIndex` - FROM `open_calendar` + s.`customerId`, + CASE + WHEN s.`hasToday` = 1 THEN MAX(CASE WHEN c.`dateValue` = #{todayDateValue} THEN c.`openIndex` END) + ELSE MAX(CASE WHEN c.`dateValue` < #{todayDateValue} THEN c.`openIndex` END) + END AS `anchorOpenIndex` + FROM `customer_stat` s + CROSS JOIN `open_calendar` c + GROUP BY s.`customerId`, s.`hasToday` ), `continuous_stat` AS ( SELECT @@ -361,7 +374,7 @@ ELSE COUNT(1) END AS `recentContinuousEventDays` FROM `continuous_ordered` o - JOIN `anchor_date` a + JOIN `anchor_date` a ON o.`customerId` = a.`customerId` WHERE o.`openIndex` + o.`dayIndex` = a.`anchorOpenIndex` + 1