StoreReservationMapper.xml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="shop.alien.mapper.StoreReservationMapper">
  4. <!-- 商家端预约信息列表结果映射 -->
  5. <resultMap id="StoreReservationListVoMap" type="shop.alien.entity.store.vo.StoreReservationListVo">
  6. <id column="id" property="id" />
  7. <result column="reservation_no" property="reservationNo" />
  8. <result column="reservation_date" property="reservationDate" />
  9. <result column="week_day" property="weekDay" />
  10. <result column="category_id" property="categoryId" />
  11. <result column="category_name" property="categoryName" />
  12. <result column="guest_count" property="guestCount" />
  13. <result column="table_numbers" property="tableNumbers" />
  14. <result column="start_time" property="startTime" />
  15. <result column="end_time" property="endTime" />
  16. <result column="time_slot" property="timeSlot" />
  17. <result column="user_id" property="userId" />
  18. <result column="customer_name" property="customerName" />
  19. <result column="contact_phone" property="contactPhone" />
  20. <result column="remark" property="remark" />
  21. <result column="reason" property="reason" />
  22. <result column="status" property="status" />
  23. <result column="status_text" property="statusText" />
  24. <result column="refund_amount" property="refundAmount" />
  25. <result column="deposit_amount" property="depositAmount" />
  26. <result column="order_status" property="orderStatus" />
  27. <result column="order_status_text" property="orderStatusText" />
  28. <result column="order_cost_type" property="orderCostType" />
  29. <result column="out_trade_no" property="outTradeNo" />
  30. <result column="payment_method" property="paymentMethod" />
  31. <result column="actual_arrival_time" property="actualArrivalTime" />
  32. <result column="created_time" property="createdTime" />
  33. </resultMap>
  34. <!-- 查询商家端预约信息列表 -->
  35. <select id="getStoreReservationList" resultMap="StoreReservationListVoMap">
  36. SELECT
  37. ur.id,
  38. ur.reservation_no,
  39. ur.reservation_date,
  40. CASE DAYOFWEEK(ur.reservation_date)
  41. WHEN 1 THEN '周日'
  42. WHEN 2 THEN '周一'
  43. WHEN 3 THEN '周二'
  44. WHEN 4 THEN '周三'
  45. WHEN 5 THEN '周四'
  46. WHEN 6 THEN '周五'
  47. WHEN 7 THEN '周六'
  48. END AS week_day,
  49. ur.category_id,
  50. sbc.category_name,
  51. ur.guest_count,
  52. GROUP_CONCAT(sbt.table_number ORDER BY urt.sort ASC SEPARATOR ',') AS table_numbers,
  53. ur.start_time,
  54. ur.end_time,
  55. CONCAT(IFNULL(ur.start_time, ''), '-', IFNULL(ur.end_time, '')) AS time_slot,
  56. ur.user_id,
  57. -- IFNULL(lu.real_name, lu.user_name) AS customer_name,
  58. -- lu.user_phone AS contact_phone,
  59. ur.reservation_user_phone AS contact_phone,
  60. ur.reservation_user_name AS customer_name,
  61. ur.remark,
  62. IFNULL(ur.reason, '') AS reason,
  63. ur.status,
  64. CASE ur.status
  65. WHEN 0 THEN '待确认'
  66. WHEN 1 THEN '待使用'
  67. WHEN 2 THEN '已完成'
  68. WHEN 3 THEN '已取消'
  69. WHEN 4 THEN '未到店'
  70. WHEN 5 THEN '用餐结束'
  71. ELSE '未知'
  72. END AS status_text,
  73. uro.refund_amount,
  74. uro.deposit_amount,
  75. uro.order_status,
  76. uro.order_cost_type,
  77. IFNULL(uro.out_trade_no, '') AS out_trade_no,
  78. IFNULL(uro.payment_method, '') AS payment_method,
  79. CASE uro.order_status
  80. WHEN 0 THEN '待支付'
  81. WHEN 1 THEN '待使用'
  82. WHEN 2 THEN '已完成'
  83. WHEN 3 THEN '已过期'
  84. WHEN 4 THEN '已取消'
  85. WHEN 5 THEN '已关闭'
  86. WHEN 6 THEN '退款中'
  87. WHEN 7 THEN '退款成功'
  88. WHEN 8 THEN '商家预订'
  89. ELSE '未知'
  90. END AS order_status_text,
  91. ur.actual_arrival_time,
  92. ur.created_time
  93. FROM
  94. user_reservation ur
  95. LEFT JOIN store_booking_category sbc ON ur.category_id = sbc.id
  96. LEFT JOIN user_reservation_table urt ON ur.id = urt.reservation_id AND urt.delete_flag = 0
  97. LEFT JOIN store_table sbt ON urt.table_id = sbt.id
  98. LEFT JOIN life_user lu ON ur.user_id = lu.id AND lu.delete_flag = 0
  99. LEFT JOIN user_reservation_order uro ON ur.id = uro.reservation_id AND uro.delete_flag = 0
  100. WHERE
  101. ur.delete_flag = 0
  102. AND ur.type = 0
  103. AND ur.store_id = #{storeId}
  104. <if test="status != null">
  105. AND ur.status = #{status}
  106. </if>
  107. <if test="dateFrom != null">
  108. AND ur.reservation_date &gt;= #{dateFrom}
  109. </if>
  110. <if test="dateTo != null">
  111. AND ur.reservation_date &lt;= #{dateTo}
  112. </if>
  113. <if test="reservationUserName != null and reservationUserName != ''">
  114. AND ur.reservation_user_name LIKE CONCAT('%', #{reservationUserName}, '%')
  115. </if>
  116. <choose>
  117. <when test="orderStatus != null">
  118. AND uro.order_status = #{orderStatus}
  119. </when>
  120. <otherwise>
  121. AND uro.order_status NOT IN (0, 5)
  122. </otherwise>
  123. </choose>
  124. GROUP BY
  125. ur.id
  126. ORDER BY
  127. CASE WHEN ur.status = 1 THEN 0 ELSE 1 END ASC,
  128. ur.reservation_date ASC,
  129. ur.start_time ASC
  130. </select>
  131. </mapper>