diff --git a/src/main/resources/mappers/BattleMapper.xml b/src/main/resources/mappers/BattleMapper.xml index 42b8780..053016a 100644 --- a/src/main/resources/mappers/BattleMapper.xml +++ b/src/main/resources/mappers/BattleMapper.xml @@ -116,8 +116,9 @@ , (SELECT @row_number:=0) AS t ) Z ORDER BY - CASE WHEN Z.status = 'STOP' THEN 1 WHEN Z.status = 'END' THEN 2 WHEN Z.status = 'FAIL' OR Z.status = 'CANCEL' THEN 3 ELSE 0 END, - TIME (event_start_dt), + CASE WHEN Z.status = 'STOP' THEN 2 WHEN Z.status = 'END' THEN 3 WHEN Z.status = 'FAIL' OR Z.status = 'CANCEL' THEN 4 WHEN Z.status = 'RUNNING' THEN 0 ELSE 1 END, + CASE WHEN DATE(Z.event_start_dt) <= DATE(NOW()) THEN 0 ELSE 1 END, + CASE WHEN DATE(Z.event_start_dt) <= DATE(NOW()) THEN TIME(Z.event_start_dt) ELSE Z.event_start_dt END, row_num ${orderby} @@ -205,23 +206,37 @@ AND id <> #{id} - AND ( - /* NONE 타입인 경우 */ - (repeat_type = 'NONE' AND DATE (event_start_dt) BETWEEN - DATE (#{eventStartDt}) - AND DATE (#{eventEndDt})) - OR - /* DAY 타입인 경우 - 기간이 조금이라도 겹치면 가져옴 */ - (repeat_type = 'DAY' - AND DATE (event_start_dt) <= DATE (#{eventEndDt}) - AND DATE (event_end_dt) >= DATE (#{eventStartDt})) - OR - /* 요일 타입인 경우 - 기간이 겹치고 같은 요일이 있는 경우만 */ - (repeat_type = #{repeatType} - AND DATE (event_start_dt) <= DATE (#{eventEndDt}) - AND DATE (event_end_dt) >= DATE (#{eventStartDt}) - ) - ) + + +