| | |
| | | |
| | | @Select({ |
| | | "<script>", |
| | | "SELECT visitor_id AS visitorId, COUNT(*) AS orderCount, ", |
| | | "SELECT visitor_id AS visitorId, COUNT(CASE WHEN status NOT IN ('PENDING_PAYMENT', 'CANCELLED', 'REFUNDED') THEN 1 END) AS orderCount, ", |
| | | "COALESCE(SUM(CASE WHEN status NOT IN ('PENDING_PAYMENT', 'CANCELLED', 'REFUNDED') ", |
| | | "THEN COALESCE(payment_amount, amount) ELSE 0 END), 0) AS totalConsumption ", |
| | | "FROM tour_order WHERE deleted = 0 AND visitor_id IN ", |
| | |
| | | @Param("sessionId") Long sessionId, |
| | | @Param("completedAt") LocalDateTime completedAt); |
| | | |
| | | @Update("UPDATE tour_order SET status = 'CANCELLED', refund_status = 'REFUNDING', updated_at = NOW() " + |
| | | @Update("UPDATE tour_order SET status = 'CANCELLED', cancelled_at = COALESCE(cancelled_at, NOW()), refund_status = 'REFUNDING', updated_at = NOW() " + |
| | | "WHERE id = #{id} AND deleted = 0 AND status = 'PENDING_ACCEPT' " + |
| | | "AND payment_time IS NOT NULL AND (refund_status IS NULL OR refund_status = 'NONE')") |
| | | int claimUnacceptedOrderForRefund(Long id); |
| | | |
| | | @Update("UPDATE tour_order SET status = 'CANCELLED', updated_at = NOW() " + |
| | | @Update("UPDATE tour_order SET status = 'CANCELLED', cancelled_at = COALESCE(cancelled_at, NOW()), updated_at = NOW() " + |
| | | "WHERE id = #{id} AND deleted = 0 AND status = 'PENDING_PAYMENT'") |
| | | int cancelUnpaid(Long id); |
| | | |
| | | @Update("UPDATE tour_order SET status = 'IN_SERVICE', service_started_at = #{startedAt}, updated_at = NOW() " + |
| | | @Update("UPDATE tour_order SET status = 'IN_SERVICE', arrived_at = COALESCE(arrived_at, #{startedAt}), " + |
| | | "service_started_at = #{startedAt}, updated_at = NOW() " + |
| | | "WHERE receiving_session_id = #{sessionId} AND deleted = 0 AND status = 'PENDING_MEETING'") |
| | | int startSessionOrders(@Param("sessionId") Long sessionId, @Param("startedAt") LocalDateTime startedAt); |
| | | } |