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