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