CommentAppealMapper.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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.CommentAppealMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="shop.alien.entity.store.CommentAppeal">
  6. <id column="id" property="id" />
  7. <result column="comment_id" property="commentId" />
  8. <result column="comment_info" property="commentInfo" />
  9. <result column="appeal_reason" property="appealReason" />
  10. <result column="status" property="status" />
  11. <result column="delete_flag" property="deleteFlag" />
  12. <result column="created_time" property="createdTime" />
  13. <result column="created_user_id" property="createdUserId" />
  14. <result column="updated_time" property="updatedTime" />
  15. <result column="updated_user_id" property="updatedUserId" />
  16. <result column="appeal_time" property="appealTime" />
  17. </resultMap>
  18. <!-- 申诉历史列表查询结果映射 -->
  19. <resultMap id="CommentAppealVoResultMap" type="shop.alien.entity.store.vo.CommentAppealVo">
  20. <id column="id" property="id" />
  21. <result column="comment_id" property="commentId" />
  22. <result column="comment_info" property="commentInfo" />
  23. <result column="appeal_reason" property="appealReason" />
  24. <result column="status" property="status" />
  25. <result column="appeal_time" property="appealTime" />
  26. <result column="appeal_review_time" property="appealReviewTime" />
  27. <result column="review_reasons" property="reviewReasons" />
  28. <result column="img_url" property="imgUrl" />
  29. <result column="created_time" property="createdTime" />
  30. <result column="created_user_id" property="createdUserId" />
  31. <result column="updated_time" property="updatedTime" />
  32. <result column="updated_user_id" property="updatedUserId" />
  33. <result column="audit_user_id" property="auditUserId" />
  34. <!-- 评价相关信息 -->
  35. <result column="review_user_id" property="reviewUserId" />
  36. <result column="review_user_name" property="reviewUserName" />
  37. <result column="user_name" property="userName" />
  38. <result column="review_user_avatar" property="reviewUserAvatar" />
  39. <result column="overall_rating" property="overallRating" />
  40. <result column="service_attitude_rating" property="serviceAttitudeRating" />
  41. <result column="response_time_rating" property="responseTimeRating" />
  42. <result column="professional_ability_rating" property="professionalAbilityRating" />
  43. <result column="review_content" property="reviewContent" />
  44. <result column="review_time" property="reviewTime" />
  45. <result column="review_images" property="reviewImages" />
  46. <!-- 中台列表展示字段 -->
  47. <result column="order_number" property="orderNumber" />
  48. <result column="user_phone" property="userPhone" />
  49. <result column="lawyer_user_id" property="lawyerUserId" />
  50. <result column="lawyer_name" property="lawyerName" />
  51. <result column="lawyer_phone" property="lawyerPhone" />
  52. </resultMap>
  53. <!-- 查询申诉历史列表(包含评价和用户信息) -->
  54. <select id="getAppealHistoryList" resultMap="CommentAppealVoResultMap">
  55. SELECT
  56. ca.id,
  57. ca.comment_id,
  58. ca.comment_info,
  59. ca.appeal_reason,
  60. ca.status,
  61. ca.appeal_time,
  62. ca.appeal_review_time,
  63. ca.review_reasons,
  64. ca.img_url,
  65. ca.created_time,
  66. ca.created_user_id,
  67. ca.updated_time,
  68. ca.updated_user_id,
  69. ca.updated_user_id AS audit_user_id,
  70. orv.user_id AS review_user_id,
  71. CASE
  72. WHEN orv.is_anonymous = 1 THEN '匿名用户'
  73. ELSE lu.user_name
  74. END AS user_name,
  75. CASE
  76. WHEN orv.is_anonymous = 1 THEN NULL
  77. ELSE lu.user_image
  78. END AS review_user_avatar,
  79. orv.overall_rating,
  80. orv.service_attitude_rating,
  81. orv.response_time_rating,
  82. orv.professional_ability_rating,
  83. orv.review_content,
  84. orv.created_time AS review_time,
  85. orv.review_images
  86. FROM comment_appeals ca
  87. LEFT JOIN lawyer_order_review orv ON orv.id = ca.comment_id
  88. LEFT JOIN life_user lu ON lu.id = orv.user_id AND lu.delete_flag = 0
  89. WHERE ca.delete_flag = 0
  90. <if test="status != null">
  91. AND ca.status = #{status}
  92. </if>
  93. <if test="lawyerUserId != null">
  94. AND orv.lawyer_user_id = #{lawyerUserId}
  95. </if>
  96. ORDER BY ca.appeal_time DESC
  97. </select>
  98. <!-- 根据ID查询申诉详情(包含评价和用户信息) -->
  99. <select id="getAppealDetailById" resultMap="CommentAppealVoResultMap">
  100. SELECT
  101. ca.id,
  102. ca.comment_id,
  103. ca.comment_info,
  104. ca.appeal_reason,
  105. ca.status,
  106. ca.appeal_time,
  107. ca.appeal_review_time,
  108. ca.review_reasons,
  109. ca.img_url,
  110. ca.created_time,
  111. ca.created_user_id,
  112. ca.updated_time,
  113. ca.updated_user_id,
  114. ca.updated_user_id AS audit_user_id,
  115. orv.user_id AS review_user_id,
  116. CASE
  117. WHEN orv.is_anonymous = 1 THEN '匿名用户'
  118. ELSE lu.user_name
  119. END AS review_user_name,
  120. CASE
  121. WHEN orv.is_anonymous = 1 THEN NULL
  122. ELSE lu.user_image
  123. END AS review_user_avatar,
  124. orv.overall_rating,
  125. orv.service_attitude_rating,
  126. orv.response_time_rating,
  127. orv.professional_ability_rating,
  128. orv.review_content,
  129. orv.created_time AS review_time,
  130. orv.review_images
  131. FROM comment_appeals ca
  132. LEFT JOIN lawyer_order_review orv ON orv.id = ca.comment_id AND orv.delete_flag = 0
  133. LEFT JOIN life_user lu ON lu.id = orv.user_id AND lu.delete_flag = 0
  134. WHERE ca.delete_flag = 0
  135. AND ca.id = #{id}
  136. LIMIT 1
  137. </select>
  138. <!-- 分页查询申诉列表(中台使用,支持多条件筛选) -->
  139. <select id="getAppealPageWithFilters" resultMap="CommentAppealVoResultMap">
  140. SELECT
  141. ca.id,
  142. ca.comment_id,
  143. ca.comment_info,
  144. ca.appeal_reason,
  145. ca.status,
  146. ca.appeal_time,
  147. ca.appeal_review_time,
  148. ca.review_reasons,
  149. ca.img_url,
  150. ca.created_time,
  151. ca.created_user_id,
  152. ca.updated_time,
  153. ca.updated_user_id,
  154. ca.updated_user_id AS audit_user_id,
  155. orv.order_number,
  156. orv.user_id AS review_user_id,
  157. CASE
  158. WHEN orv.is_anonymous = 1 THEN '匿名用户'
  159. ELSE lu.user_name
  160. END AS user_name,
  161. CASE
  162. WHEN orv.is_anonymous = 1 THEN NULL
  163. ELSE lu.user_image
  164. END AS review_user_avatar,
  165. lu.user_phone AS user_phone,
  166. orv.lawyer_user_id AS lawyer_user_id,
  167. lu2.name AS lawyer_name,
  168. lu2.phone AS lawyer_phone,
  169. orv.overall_rating,
  170. orv.service_attitude_rating,
  171. orv.response_time_rating,
  172. orv.professional_ability_rating,
  173. orv.review_content,
  174. orv.created_time AS review_time,
  175. orv.review_images
  176. FROM comment_appeals ca
  177. LEFT JOIN lawyer_order_review orv ON orv.id = ca.comment_id
  178. LEFT JOIN life_user lu ON lu.id = orv.user_id AND lu.delete_flag = 0
  179. LEFT JOIN lawyer_user lu2 ON lu2.id = orv.lawyer_user_id AND lu2.delete_flag = 0
  180. WHERE ca.delete_flag = 0
  181. <if test="status != null">
  182. AND ca.status = #{status}
  183. </if>
  184. <if test="orderNumber != null and orderNumber != ''">
  185. AND orv.order_number LIKE CONCAT('%', #{orderNumber}, '%')
  186. </if>
  187. <if test="userName != null and userName != ''">
  188. AND lu.user_name LIKE CONCAT('%', #{userName}, '%')
  189. </if>
  190. <if test="userPhone != null and userPhone != ''">
  191. AND lu.user_phone LIKE CONCAT('%', #{userPhone}, '%')
  192. </if>
  193. <if test="lawyerName != null and lawyerName != ''">
  194. AND lu2.name LIKE CONCAT('%', #{lawyerName}, '%')
  195. </if>
  196. <if test="lawyerPhone != null and lawyerPhone != ''">
  197. AND lu2.phone LIKE CONCAT('%', #{lawyerPhone}, '%')
  198. </if>
  199. <if test="startTime != null and startTime != ''">
  200. AND ca.appeal_time &gt;= #{startTime}
  201. </if>
  202. <if test="endTime != null and endTime != ''">
  203. AND ca.appeal_time &lt;= #{endTime}
  204. </if>
  205. ORDER BY ca.appeal_time DESC
  206. </select>
  207. </mapper>