UserReservationOrderMapper.xml 3.1 KB

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