ReviewCommentMapper.xml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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.ReviewCommentMapper">
  4. <!-- 评论列表查询结果映射 -->
  5. <resultMap id="ReviewCommentVoResultMap" type="shop.alien.entity.store.vo.ReviewCommentVo">
  6. <id column="id" property="id" />
  7. <result column="review_id" property="reviewId" />
  8. <result column="send_user_id" property="sendUserId" />
  9. <result column="receive_user_id" property="receiveUserId" />
  10. <result column="user_name" property="sendUserName" />
  11. <result column="user_avatar" property="userAvatar" />
  12. <result column="receive_user_name" property="receiveUserName" />
  13. <result column="comment_content" property="commentContent" />
  14. <result column="like_count" property="likeCount" />
  15. <result column="reply_count" property="replyCount" />
  16. <result column="head_type" property="headType" />
  17. <result column="head_id" property="headId" />
  18. <result column="is_liked" property="isLiked" />
  19. <result column="created_time" property="createdTime" />
  20. </resultMap>
  21. <!-- 根据评价ID查询评论列表(包含用户信息) -->
  22. <select id="getCommentListByReviewId" resultMap="ReviewCommentVoResultMap">
  23. SELECT
  24. rc.id,
  25. rc.review_id,
  26. rc.send_user_id,
  27. rc.receive_user_id,
  28. lu.user_name AS user_name,
  29. lu.user_image AS user_avatar,
  30. lu2.user_name AS receive_user_name,
  31. rc.comment_content,
  32. rc.like_count,
  33. rc.reply_count,
  34. rc.head_type,
  35. rc.head_id,
  36. CASE
  37. WHEN #{currentUserId} IS NOT NULL AND llr.id IS NOT NULL THEN 1
  38. ELSE 0
  39. END AS is_liked,
  40. rc.created_time
  41. FROM lawyer_review_comment rc
  42. LEFT JOIN life_user lu ON lu.id = rc.send_user_id AND lu.delete_flag = 0
  43. LEFT JOIN life_user lu2 ON lu2.id = rc.receive_user_id AND lu2.delete_flag = 0
  44. LEFT JOIN life_like_record llr ON CONVERT(llr.huifu_id, CHAR) = CONVERT(rc.id, CHAR)
  45. AND llr.type = '8'
  46. AND CONVERT(llr.dianzan_id, CHAR) = CONVERT(#{currentUserId}, CHAR)
  47. AND llr.delete_flag = 0
  48. WHERE rc.delete_flag = 0
  49. AND rc.review_id = #{reviewId}
  50. AND rc.head_type = 0
  51. ORDER BY rc.created_time DESC
  52. </select>
  53. <!-- 根据首评ID查询回复列表(包含用户信息) -->
  54. <select id="getReplyListByHeadId" resultMap="ReviewCommentVoResultMap">
  55. SELECT
  56. rc.id,
  57. rc.review_id,
  58. rc.send_user_id,
  59. rc.receive_user_id,
  60. lu.user_name AS user_name,
  61. lu.user_image AS user_avatar,
  62. lu2.user_name AS receive_user_name,
  63. rc.comment_content,
  64. rc.like_count,
  65. rc.reply_count,
  66. rc.head_type,
  67. rc.head_id,
  68. CASE
  69. WHEN #{currentUserId} IS NOT NULL AND llr.id IS NOT NULL THEN 1
  70. ELSE 0
  71. END AS is_liked,
  72. rc.created_time
  73. FROM lawyer_review_comment rc
  74. LEFT JOIN life_user lu ON lu.id = rc.send_user_id AND lu.delete_flag = 0
  75. LEFT JOIN life_user lu2 ON lu2.id = rc.receive_user_id AND lu2.delete_flag = 0
  76. LEFT JOIN life_like_record llr ON CONVERT(llr.huifu_id, CHAR) = CONVERT(rc.id, CHAR)
  77. AND llr.type = '8'
  78. AND CONVERT(llr.dianzan_id, CHAR) = CONVERT(#{currentUserId}, CHAR)
  79. AND llr.delete_flag = 0
  80. WHERE rc.delete_flag = 0
  81. AND rc.head_id = #{headId}
  82. AND rc.head_type = 1
  83. ORDER BY rc.created_time ASC
  84. </select>
  85. <!-- 根据评价ID查询评论数量(只统计首评论) -->
  86. <select id="getCommentCountByReviewId" resultType="java.lang.Integer">
  87. SELECT COUNT(*)
  88. FROM lawyer_review_comment
  89. WHERE delete_flag = 0
  90. AND review_id = #{reviewId}
  91. AND head_type = 0
  92. </select>
  93. <!-- 根据评价ID查询总评论数量(包括首评论和子评论) -->
  94. <select id="getTotalCommentCountByReviewId" resultType="java.lang.Integer">
  95. SELECT COUNT(*)
  96. FROM lawyer_review_comment
  97. WHERE delete_flag = 0
  98. AND review_id = #{reviewId}
  99. </select>
  100. </mapper>