UserReservationOrderMapper.xml 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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.UserReservationOrderMapper">
  4. <resultMap id="ReservationOrderListDtoMap" type="shop.alien.entity.store.vo.ReservationOrderListDto">
  5. <id column="orderId" property="orderId"/>
  6. <result column="orderSn" property="orderSn"/>
  7. <result column="storeId" property="storeId"/>
  8. <result column="storeName" property="storeName"/>
  9. <result column="storeEntranceImageUrl" property="storeEntranceImageUrl"/>
  10. <result column="orderStatus" property="orderStatus"/>
  11. <result column="reservationId" property="reservationId"/>
  12. <result column="depositAmount" property="depositAmount"/>
  13. <result column="createdTime" property="createdTime"/>
  14. <result column="verificationCode" property="verificationCode"/>
  15. <result column="paymentStatus" property="paymentStatus"/>
  16. <result column="merchantCancelReason" property="merchantCancelReason"/>
  17. </resultMap>
  18. <!-- 预订订单列表:店铺名称模糊搜索(限10字)、按状态筛选 -->
  19. <select id="selectOrderListPage" resultMap="ReservationOrderListDtoMap">
  20. SELECT
  21. o.id AS orderId,
  22. o.order_sn AS orderSn,
  23. o.store_id AS storeId,
  24. s.store_name AS storeName,
  25. img.img_url AS storeEntranceImageUrl,
  26. o.order_status AS orderStatus,
  27. o.payment_status AS paymentStatus,
  28. o.reservation_id AS reservationId,
  29. o.deposit_amount AS depositAmount,
  30. o.created_time AS createdTime,
  31. o.verification_code AS verificationCode,
  32. r.reason AS merchantCancelReason
  33. FROM user_reservation_order o
  34. LEFT JOIN store_info s ON o.store_id = s.id AND s.delete_flag = 0
  35. LEFT JOIN store_img img ON img.store_id = s.id AND img.img_type = 1 AND img.delete_flag = 0
  36. LEFT JOIN user_reservation r ON o.reservation_id = r.id AND r.delete_flag = 0
  37. WHERE o.delete_flag = 0
  38. AND o.user_id = #{userId}
  39. <if test="storeName != null and storeName != ''">
  40. AND s.store_name LIKE CONCAT('%', #{storeName}, '%')
  41. </if>
  42. <if test="orderStatus != null">
  43. AND o.order_status = #{orderStatus}
  44. </if>
  45. ORDER BY o.created_time DESC
  46. </select>
  47. <resultMap id="ReservationOrderCountsDtoMap" type="shop.alien.entity.store.vo.ReservationOrderCountsDto">
  48. <result column="countAll" property="countAll"/>
  49. <result column="countToUse" property="countToUse"/>
  50. <result column="countCompleted" property="countCompleted"/>
  51. <result column="countRefunded" property="countRefunded"/>
  52. </resultMap>
  53. <select id="selectOrderCountsByUserId" resultMap="ReservationOrderCountsDtoMap">
  54. SELECT
  55. COUNT(*) AS countAll,
  56. COALESCE(SUM(CASE WHEN o.order_status = 1 THEN 1 ELSE 0 END), 0) AS countToUse,
  57. COALESCE(SUM(CASE WHEN o.order_status = 2 THEN 1 ELSE 0 END), 0) AS countCompleted,
  58. COALESCE(SUM(CASE WHEN o.order_status = 7 THEN 1 ELSE 0 END), 0) AS countRefunded
  59. FROM user_reservation_order o
  60. WHERE o.delete_flag = 0
  61. AND o.user_id = #{userId}
  62. </select>
  63. </mapper>