| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="shop.alien.mapper.UserReservationOrderMapper">
- <resultMap id="ReservationOrderListDtoMap" type="shop.alien.entity.store.vo.ReservationOrderListDto">
- <id column="orderId" property="orderId"/>
- <result column="orderSn" property="orderSn"/>
- <result column="storeId" property="storeId"/>
- <result column="storeName" property="storeName"/>
- <result column="storeEntranceImageUrl" property="storeEntranceImageUrl"/>
- <result column="orderStatus" property="orderStatus"/>
- <result column="reservationId" property="reservationId"/>
- <result column="depositAmount" property="depositAmount"/>
- <result column="createdTime" property="createdTime"/>
- <result column="verificationCode" property="verificationCode"/>
- <result column="paymentStatus" property="paymentStatus"/>
- <result column="merchantCancelReason" property="merchantCancelReason"/>
- </resultMap>
- <!-- 预订订单列表:店铺名称模糊搜索(限10字)、按状态筛选 -->
- <select id="selectOrderListPage" resultMap="ReservationOrderListDtoMap">
- SELECT
- o.id AS orderId,
- o.order_sn AS orderSn,
- o.store_id AS storeId,
- s.store_name AS storeName,
- img.img_url AS storeEntranceImageUrl,
- o.order_status AS orderStatus,
- o.payment_status AS paymentStatus,
- o.reservation_id AS reservationId,
- o.deposit_amount AS depositAmount,
- o.created_time AS createdTime,
- o.verification_code AS verificationCode,
- r.reason AS merchantCancelReason
- FROM user_reservation_order o
- LEFT JOIN store_info s ON o.store_id = s.id AND s.delete_flag = 0
- LEFT JOIN store_img img ON img.store_id = s.id AND img.img_type = 1 AND img.delete_flag = 0
- LEFT JOIN user_reservation r ON o.reservation_id = r.id AND r.delete_flag = 0
- WHERE o.delete_flag = 0
- AND o.user_id = #{userId}
- <if test="storeName != null and storeName != ''">
- AND s.store_name LIKE CONCAT('%', #{storeName}, '%')
- </if>
- <if test="orderStatus != null">
- AND o.order_status = #{orderStatus}
- </if>
- ORDER BY o.created_time DESC
- </select>
- <resultMap id="ReservationOrderCountsDtoMap" type="shop.alien.entity.store.vo.ReservationOrderCountsDto">
- <result column="countAll" property="countAll"/>
- <result column="countToUse" property="countToUse"/>
- <result column="countCompleted" property="countCompleted"/>
- <result column="countRefunded" property="countRefunded"/>
- </resultMap>
- <select id="selectOrderCountsByUserId" resultMap="ReservationOrderCountsDtoMap">
- SELECT
- COUNT(*) AS countAll,
- COALESCE(SUM(CASE WHEN o.order_status = 1 THEN 1 ELSE 0 END), 0) AS countToUse,
- COALESCE(SUM(CASE WHEN o.order_status = 2 THEN 1 ELSE 0 END), 0) AS countCompleted,
- COALESCE(SUM(CASE WHEN o.order_status = 7 THEN 1 ELSE 0 END), 0) AS countRefunded
- FROM user_reservation_order o
- WHERE o.delete_flag = 0
- AND o.user_id = #{userId}
- </select>
- </mapper>
|