|
@@ -3,57 +3,52 @@
|
|
|
<mapper namespace="org.jeecg.modules.system.app.mapper.AppSitePriceRulesMapper">
|
|
|
<select id="theGymnasiumIsCharteredInfo" resultType="org.jeecg.modules.app.vo.PlaceInfoVO$theGymnasiumIsCharteredInfoVO">
|
|
|
WITH RECURSIVE dates AS (
|
|
|
+ SELECT
|
|
|
+ 0 AS offset_day,
|
|
|
+ CURDATE() AS date_val,
|
|
|
+ DAYOFWEEK(CURDATE()) - 1 AS dow
|
|
|
+ UNION ALL
|
|
|
+ SELECT
|
|
|
+ offset_day + 1,
|
|
|
+ date_val + INTERVAL 1 DAY,
|
|
|
+ DAYOFWEEK(date_val + INTERVAL 1 DAY) - 1
|
|
|
+ FROM dates
|
|
|
+ WHERE offset_day < 6
|
|
|
+ ),
|
|
|
+ earliest_slots AS (
|
|
|
SELECT
|
|
|
- 0 AS offset_day,
|
|
|
- CURDATE() AS date_val,
|
|
|
- DAYOFWEEK(
|
|
|
- CURDATE()) - 1 AS dow UNION ALL
|
|
|
+ sp.site_id,
|
|
|
+ r.start_time,
|
|
|
+ r.end_time,
|
|
|
+ r.selling_price,
|
|
|
+ r.day_of_week,
|
|
|
+ ROW_NUMBER() OVER (PARTITION BY r.day_of_week ORDER BY r.start_time) AS rn
|
|
|
+ FROM nm_site_peice_rules r
|
|
|
+ LEFT JOIN nm_site_place sp ON r.site_place_id = sp.id
|
|
|
+ WHERE r.view_status = 0
|
|
|
+ AND r.org_code = #{orgCode}
|
|
|
+ AND r.category_id = #{categoryId}
|
|
|
+ )
|
|
|
SELECT
|
|
|
- offset_day + 1,
|
|
|
- date_val + INTERVAL 1 DAY,
|
|
|
- DAYOFWEEK( date_val + INTERVAL 1 DAY ) - 1
|
|
|
- FROM
|
|
|
- dates
|
|
|
- WHERE
|
|
|
- offset_day <6
|
|
|
- ),
|
|
|
- earliest_slots AS (
|
|
|
- SELECT
|
|
|
- r.id,
|
|
|
- r.start_time,
|
|
|
- r.end_time,
|
|
|
- r.selling_price,
|
|
|
- r.day_of_week
|
|
|
- FROM
|
|
|
- nm_site_peice_rules r
|
|
|
- JOIN ( SELECT day_of_week, MIN( start_time ) AS min_start_time FROM nm_site_peice_rules WHERE view_status = 0 GROUP BY day_of_week ) AS grouped ON r.day_of_week = grouped.day_of_week
|
|
|
- AND r.start_time = grouped.min_start_time
|
|
|
- WHERE
|
|
|
- r.view_status = 0
|
|
|
- AND r.org_code = #{orgCode} AND r.category_id = #{categoryId}
|
|
|
- ) SELECT
|
|
|
- es.id,
|
|
|
- es.start_time,
|
|
|
- CONCAT( es.start_time, '-', es.end_time ) AS time_range,
|
|
|
- es.selling_price,
|
|
|
- CASE
|
|
|
-
|
|
|
- WHEN dm.offset_day = 0 THEN
|
|
|
- CONCAT( '今天(', DATE_FORMAT( dm.date_val, '%m-%d' ), ')' )
|
|
|
- WHEN dm.offset_day = 1 THEN
|
|
|
- CONCAT( '明天(', DATE_FORMAT( dm.date_val, '%m-%d' ), ')' )
|
|
|
- WHEN dm.offset_day = 2 THEN
|
|
|
- CONCAT( '后天(', DATE_FORMAT( dm.date_val, '%m-%d' ), ')' ) ELSE CONCAT(
|
|
|
- ELT( dm.dow + 1, '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日' ),
|
|
|
- '(',
|
|
|
- DATE_FORMAT( dm.date_val, '%m-%d' ),
|
|
|
- ')'
|
|
|
- )
|
|
|
- END AS date_label
|
|
|
- FROM
|
|
|
- earliest_slots es
|
|
|
- JOIN ( SELECT offset_day, date_val, dow FROM dates ) AS dm ON es.day_of_week = dm.dow
|
|
|
- ORDER BY
|
|
|
- dm.offset_day;
|
|
|
+ es.site_id AS id,
|
|
|
+ es.start_time AS startTime,
|
|
|
+ CONCAT(es.start_time, '-', es.end_time) AS time_range,
|
|
|
+ es.selling_price AS sellingPrice,
|
|
|
+ CASE
|
|
|
+ WHEN dm.offset_day = 0 THEN CONCAT('今天(', DATE_FORMAT(dm.date_val, '%m-%d'), ')')
|
|
|
+ WHEN dm.offset_day = 1 THEN CONCAT('明天(', DATE_FORMAT(dm.date_val, '%m-%d'), ')')
|
|
|
+ WHEN dm.offset_day = 2 THEN CONCAT('后天(', DATE_FORMAT(dm.date_val, '%m-%d'), ')')
|
|
|
+ ELSE CONCAT(
|
|
|
+ ELT(dm.dow + 1, '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'),
|
|
|
+ '(', DATE_FORMAT(dm.date_val, '%m-%d'), ')'
|
|
|
+ )
|
|
|
+ END AS date_label
|
|
|
+ FROM earliest_slots es
|
|
|
+ JOIN (
|
|
|
+ SELECT offset_day, date_val, dow
|
|
|
+ FROM dates
|
|
|
+ ) AS dm ON es.day_of_week = dm.dow
|
|
|
+ WHERE es.rn = 1
|
|
|
+ ORDER BY dm.offset_day;
|
|
|
</select>
|
|
|
</mapper>
|