StoreStaffReviewMapper.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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.StoreStaffReviewMapper">
  4. <!-- 评价列表查询结果映射 -->
  5. <resultMap id="StoreStaffReviewVoResultMap" type="shop.alien.entity.store.vo.StoreStaffReviewVo">
  6. <id column="id" property="id" />
  7. <result column="user_id" property="userId" />
  8. <result column="user_name" property="userName" />
  9. <result column="user_avatar" property="userAvatar" />
  10. <result column="staff_user_id" property="staffUserId" />
  11. <result column="staff_name" property="staffName" />
  12. <result column="staff_avatar" property="staffAvatar" />
  13. <result column="overall_rating" property="overallRating" />
  14. <result column="service_attitude_rating" property="serviceAttitudeRating" />
  15. <result column="response_time_rating" property="responseTimeRating" />
  16. <result column="professional_ability_rating" property="professionalAbilityRating" />
  17. <result column="review_content" property="reviewContent" />
  18. <result column="review_images" property="reviewImagesJson" />
  19. <result column="is_anonymous" property="isAnonymous" />
  20. <result column="like_count" property="likeCount" />
  21. <result column="comment_count" property="commentCount" />
  22. <result column="is_liked" property="isLiked" />
  23. <result column="created_time" property="createdTime" />
  24. <result column="appeal_id" property="appealId" />
  25. </resultMap>
  26. <!-- 分页查询评价列表(包含用户和员工信息) -->
  27. <select id="getReviewListWithUser" resultMap="StoreStaffReviewVoResultMap">
  28. SELECT
  29. ssr.id,
  30. ssr.user_id,
  31. CASE
  32. WHEN ssr.is_anonymous = 1 THEN '匿名用户'
  33. ELSE lu.user_name
  34. END AS user_name,
  35. CASE
  36. WHEN ssr.is_anonymous = 1 THEN NULL
  37. ELSE lu.user_image
  38. END AS user_avatar,
  39. ssr.staff_user_id,
  40. sp.personnel_name AS staff_name,
  41. si.img_url AS staff_avatar,
  42. ssr.overall_rating,
  43. ssr.service_attitude_rating,
  44. ssr.response_time_rating,
  45. ssr.professional_ability_rating,
  46. ssr.review_content,
  47. ssr.is_anonymous,
  48. ssr.like_count,
  49. ssr.comment_count,
  50. ssr.review_images,
  51. CASE
  52. WHEN #{currentUserId} IS NOT NULL AND llr.id IS NOT NULL THEN 1
  53. ELSE 0
  54. END AS is_liked,
  55. ssr.created_time,
  56. ssr.appeal_id
  57. FROM store_staff_review ssr
  58. LEFT JOIN life_user lu ON lu.id = ssr.user_id AND lu.delete_flag = 0
  59. LEFT JOIN store_personnel sp ON sp.id = ssr.staff_user_id AND sp.delete_flag = 0
  60. LEFT JOIN store_img si ON si.id = sp.img_id AND si.delete_flag = 0
  61. LEFT JOIN life_like_record llr ON CONVERT(llr.huifu_id, CHAR) = CONVERT(ssr.id, CHAR)
  62. AND llr.type = '9'
  63. AND CONVERT(llr.dianzan_id, CHAR) = CONVERT(#{currentUserId}, CHAR)
  64. AND llr.delete_flag = 0
  65. WHERE ssr.delete_flag = 0
  66. <if test="staffUserId != null">
  67. AND ssr.staff_user_id = #{staffUserId}
  68. </if>
  69. <if test="userId != null">
  70. AND ssr.user_id = #{userId}
  71. </if>
  72. ORDER BY ssr.created_time DESC
  73. </select>
  74. <!-- 根据评价ID查询评价详情(包含用户和员工信息) -->
  75. <select id="getReviewDetailById" resultMap="StoreStaffReviewVoResultMap">
  76. SELECT
  77. ssr.id,
  78. ssr.user_id,
  79. CASE
  80. WHEN ssr.is_anonymous = 1 THEN '匿名用户'
  81. ELSE lu.user_name
  82. END AS user_name,
  83. CASE
  84. WHEN ssr.is_anonymous = 1 THEN NULL
  85. ELSE lu.user_image
  86. END AS user_avatar,
  87. ssr.staff_user_id,
  88. sp.personnel_name AS staff_name,
  89. si.img_url AS staff_avatar,
  90. ssr.overall_rating,
  91. ssr.service_attitude_rating,
  92. ssr.response_time_rating,
  93. ssr.professional_ability_rating,
  94. ssr.review_content,
  95. ssr.is_anonymous,
  96. ssr.like_count,
  97. ssr.comment_count,
  98. ssr.review_images,
  99. CASE
  100. WHEN #{currentUserId} IS NOT NULL AND llr.id IS NOT NULL THEN 1
  101. ELSE 0
  102. END AS is_liked,
  103. ssr.created_time,
  104. ssr.appeal_id
  105. FROM store_staff_review ssr
  106. LEFT JOIN life_user lu ON lu.id = ssr.user_id AND lu.delete_flag = 0
  107. LEFT JOIN store_personnel sp ON sp.id = ssr.staff_user_id AND sp.delete_flag = 0
  108. LEFT JOIN store_img si ON si.id = sp.img_id AND si.delete_flag = 0
  109. LEFT JOIN life_like_record llr ON CONVERT(llr.huifu_id, CHAR) = CONVERT(ssr.id, CHAR)
  110. AND llr.type = '9'
  111. AND CONVERT(llr.dianzan_id, CHAR) = CONVERT(#{currentUserId}, CHAR)
  112. AND llr.delete_flag = 0
  113. WHERE ssr.delete_flag = 0
  114. AND ssr.id = #{reviewId}
  115. LIMIT 1
  116. </select>
  117. </mapper>