LawyerConsultationOrderMapper.xml 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  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.LawyerConsultationOrderMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="shop.alien.entity.store.LawyerConsultationOrder">
  6. <id column="id" property="id" />
  7. <result column="order_number" property="orderNumber" />
  8. <result column="client_user_id" property="clientUserId" />
  9. <result column="lawyer_user_id" property="lawyerUserId" />
  10. <result column="problem_scenario_id" property="problemScenarioId" />
  11. <result column="problem_description" property="problemDescription" />
  12. <result column="order_amount" property="orderAmount" />
  13. <result column="consultation_fee" property="consultationFee" />
  14. <result column="start_time" property="startTime" />
  15. <result column="end_time" property="endTime" />
  16. <result column="order_status" property="orderStatus" />
  17. <result column="payment_status" property="paymentStatus" />
  18. <result column="order_time" property="orderTime" />
  19. <result column="payment_time" property="paymentTime" />
  20. <result column="validity_period" property="validityPeriod" />
  21. <result column="rating" property="rating" />
  22. <result column="comment" property="comment" />
  23. <result column="delete_flag" property="deleteFlag" />
  24. <result column="created_time" property="createdTime" />
  25. <result column="created_user_id" property="createdUserId" />
  26. <result column="updated_time" property="updatedTime" />
  27. <result column="updated_user_id" property="updatedUserId" />
  28. <result column="alipay_no" property="alipayNo" />
  29. <result column="order_str" property="orderStr" />
  30. </resultMap>
  31. <!-- 通用查询结果列 -->
  32. <sql id="Base_Column_List">
  33. id, order_number, client_user_id, lawyer_user_id, problem_scenar_id, problem_description,
  34. order_amount, consultation_fee, start_time, end_time, order_status, payment_status,
  35. order_time,payment_time, validity_period, rating, comment, delete_flag, created_time,
  36. created_user_id, updated_time, updated_user_id, alipay_no, order_str
  37. </sql>
  38. <!-- 訂單VO結果映射,包含律師信息 -->
  39. <resultMap id="OrderVOWithLawyerResultMap" type="shop.alien.entity.store.vo.LawyerConsultationOrderVO">
  40. <!-- 訂單基本信息 -->
  41. <id column="id" property="id" />
  42. <result column="order_number" property="orderNumber" />
  43. <result column="client_user_id" property="clientUserId" />
  44. <result column="lawyer_user_id" property="lawyerUserId" />
  45. <result column="problem_scenario_id" property="problemScenarId" />
  46. <result column="problem_description" property="problemDescription" />
  47. <result column="order_amount" property="orderAmount" />
  48. <result column="consultation_fee" property="consultationFee" />
  49. <result column="start_time" property="startTime" />
  50. <result column="end_time" property="endTime" />
  51. <result column="order_status" property="orderStatus" />
  52. <result column="payment_status" property="paymentStatus" />
  53. <result column="order_time" property="orderTime" />
  54. <result column="payment_time" property="paymentTime" />
  55. <result column="validity_period" property="validityPeriod" />
  56. <result column="rating" property="rating" />
  57. <result column="comment" property="comment" />
  58. <result column="created_time" property="createdTime" />
  59. <!-- 律師信息 -->
  60. <result column="lawyer_name" property="lawyerName" />
  61. <result column="lawyer_phone" property="lawyerPhone" />
  62. <result column="lawyer_email" property="lawyerEmail" />
  63. <result column="lawyer_certificate_no" property="lawyerCertificateNo" />
  64. <result column="law_firm" property="lawFirm" />
  65. <result column="practice_years" property="practiceYears" />
  66. <result column="specialty_fields" property="specialtyFields" />
  67. <result column="certification_status" property="certificationStatus" />
  68. <result column="service_score" property="serviceScore" />
  69. <result column="service_count" property="serviceCount" />
  70. <result column="lawyer_consultation_fee" property="lawyerConsultationFee" />
  71. <result column="province" property="province" />
  72. <result column="city" property="city" />
  73. <result column="district" property="district" />
  74. <result column="address" property="address" />
  75. <result column="head_img" property="headImg" />
  76. <result column="nick_name" property="nickName" />
  77. <result column="personal_introduction" property="personalIntroduction" />
  78. <result column="expertise_area_info" property="expertiseAreaInfo" />
  79. </resultMap>
  80. <!-- 分頁查詢訂單列表,聯查律師信息 -->
  81. <select id="getConsultationOrderListWithLawyer" resultMap="OrderVOWithLawyerResultMap">
  82. SELECT
  83. o.id,
  84. o.order_number,
  85. o.client_user_id,
  86. o.lawyer_user_id,
  87. o.problem_scenario_id,
  88. o.problem_description,
  89. o.order_amount,
  90. o.consultation_fee,
  91. o.start_time,
  92. o.end_time,
  93. o.order_status,
  94. o.payment_status,
  95. o.order_time,
  96. o.payment_time,
  97. o.validity_period,
  98. o.rating,
  99. o.comment,
  100. o.created_time,
  101. -- 律師信息
  102. l.name AS lawyer_name,
  103. l.phone AS lawyer_phone,
  104. l.email AS lawyer_email,
  105. l.lawyer_certificate_no,
  106. l.law_firm,
  107. l.practice_years,
  108. l.specialty_fields,
  109. l.certification_status,
  110. l.service_score,
  111. l.service_count,
  112. l.consultation_fee AS lawyer_consultation_fee,
  113. l.province,
  114. l.city,
  115. l.district,
  116. l.address,
  117. l.head_img,
  118. l.nick_name,
  119. l.personal_introduction
  120. FROM lawyer_consultation_order o
  121. LEFT JOIN lawyer_user l ON o.lawyer_user_id = l.id AND l.delete_flag = 0
  122. WHERE o.delete_flag = 0
  123. <if test="orderNumber != null and orderNumber != ''">
  124. AND o.order_number = #{orderNumber}
  125. </if>
  126. <if test="clientUserId != null">
  127. AND o.client_user_id = #{clientUserId}
  128. </if>
  129. <if test="lawyerUserId != null">
  130. AND o.lawyer_user_id = #{lawyerUserId}
  131. </if>
  132. <if test="lawyerUserIds != null and lawyerUserIds.size() > 0">
  133. AND o.lawyer_user_id IN
  134. <foreach collection="lawyerUserIds" item="id" open="(" separator="," close=")">
  135. #{id}
  136. </foreach>
  137. </if>
  138. <if test="lawyerName != null and lawyerName != '' and (lawyerUserIds == null or lawyerUserIds.size() == 0)">
  139. AND l.name LIKE CONCAT('%', #{lawyerName}, '%')
  140. </if>
  141. <if test="orderStatus != null">
  142. AND o.order_status = #{orderStatus}
  143. </if>
  144. ORDER BY o.created_time DESC
  145. </select>
  146. <!-- 根据用户ID查询订单列表 -->
  147. <select id="getConsultationOrderListById" resultMap="OrderVOWithLawyerResultMap">
  148. SELECT
  149. lco.id,
  150. lco.order_number,
  151. lco.client_user_id,
  152. lco.lawyer_user_id,
  153. lco.problem_scenario_id,
  154. lco.problem_description,
  155. ROUND(IFNULL(lco.order_amount, 0) / 100, 2) as order_amount,
  156. lco.consultation_fee,
  157. lco.start_time,
  158. lco.end_time,
  159. lco.order_status,
  160. lco.payment_status,
  161. lco.order_time,
  162. lco.payment_time,
  163. lco.validity_period,
  164. lco.rating,
  165. lco.comment,
  166. lco.created_time,
  167. lu.name AS lawyer_name,
  168. lu.phone AS lawyer_phone,
  169. lu.email AS lawyer_email,
  170. lu.lawyer_certificate_no,
  171. lu.law_firm,
  172. lu.practice_years,
  173. lu.specialty_fields,
  174. lu.certification_status,
  175. lu.service_score,
  176. lu.service_count,
  177. lu.consultation_fee AS lawyer_consultation_fee,
  178. lu.province,
  179. lu.city,
  180. lu.district,
  181. lu.address,
  182. lu.head_img,
  183. lu.nick_name,
  184. lu.personal_introduction,
  185. lea.expertise_area_info
  186. FROM lawyer_consultation_order lco
  187. LEFT JOIN lawyer_user lu ON lco.lawyer_user_id = lu.id AND lu.delete_flag = 0
  188. left join lawyer_expertise_area lea on lea.id = lu.lawyer_expertise_area_id and lea.delete_flag = 0
  189. WHERE lco.delete_flag = 0
  190. <if test="userId != null and userId !=''">
  191. AND lco.client_user_id = #{userId}
  192. </if>
  193. <if test="lawyerUserIds != null and lawyerUserIds.size() > 0">
  194. AND lco.lawyer_user_id IN
  195. <foreach collection="lawyerUserIds" item="id" open="(" separator="," close=")">
  196. #{id}
  197. </foreach>
  198. </if>
  199. <if test="orderStatus != null and orderStatus !=''">
  200. AND lco.order_status = #{orderStatus}
  201. </if>
  202. ORDER BY lco.created_time DESC
  203. </select>
  204. </mapper>