|
|
@@ -224,5 +224,123 @@
|
|
|
AND overall_rating IS NOT NULL
|
|
|
</select>
|
|
|
|
|
|
+ <!-- 统计律师的好评数(4.5-5分) -->
|
|
|
+ <select id="getGoodReviewCountByLawyerUserId" resultType="java.lang.Integer">
|
|
|
+ <![CDATA[
|
|
|
+ SELECT COUNT(*)
|
|
|
+ FROM lawyer_order_review
|
|
|
+ WHERE lawyer_user_id = #{lawyerUserId}
|
|
|
+ AND delete_flag = 0
|
|
|
+ AND overall_rating IS NOT NULL
|
|
|
+ AND overall_rating >= 4.5
|
|
|
+ AND overall_rating <= 5
|
|
|
+ ]]>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 统计律师的中评数(3-4分) -->
|
|
|
+ <select id="getMediumReviewCountByLawyerUserId" resultType="java.lang.Integer">
|
|
|
+ <![CDATA[
|
|
|
+ SELECT COUNT(*)
|
|
|
+ FROM lawyer_order_review
|
|
|
+ WHERE lawyer_user_id = #{lawyerUserId}
|
|
|
+ AND delete_flag = 0
|
|
|
+ AND overall_rating IS NOT NULL
|
|
|
+ AND overall_rating >= 3
|
|
|
+ AND overall_rating < 4.5
|
|
|
+ ]]>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 统计律师的差评数(0-2.5分,包含2.5) -->
|
|
|
+ <select id="getBadReviewCountByLawyerUserId" resultType="java.lang.Integer">
|
|
|
+ <![CDATA[
|
|
|
+ SELECT COUNT(*)
|
|
|
+ FROM lawyer_order_review
|
|
|
+ WHERE lawyer_user_id = #{lawyerUserId}
|
|
|
+ AND delete_flag = 0
|
|
|
+ AND overall_rating IS NOT NULL
|
|
|
+ AND overall_rating >= 0
|
|
|
+ AND overall_rating < 3
|
|
|
+ ]]>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 根据律师ID和类型分页查询评价列表(包含用户和律师信息) -->
|
|
|
+ <select id="getReviewListByLawyerAndType" resultMap="OrderReviewVoResultMap">
|
|
|
+ SELECT
|
|
|
+ orv.id,
|
|
|
+ orv.order_id,
|
|
|
+ orv.order_number,
|
|
|
+ orv.user_id,
|
|
|
+ CASE
|
|
|
+ WHEN orv.is_anonymous = 1 THEN '匿名用户'
|
|
|
+ ELSE lu.user_name
|
|
|
+ END AS user_name,
|
|
|
+ CASE
|
|
|
+ WHEN orv.is_anonymous = 1 THEN NULL
|
|
|
+ ELSE lu.user_image
|
|
|
+ END AS user_avatar,
|
|
|
+ orv.lawyer_user_id,
|
|
|
+ lu2.name AS lawyer_name,
|
|
|
+ lu2.head_img AS lawyer_avatar,
|
|
|
+ lf.firm_name AS law_firm_name,
|
|
|
+ orv.overall_rating,
|
|
|
+ orv.service_attitude_rating,
|
|
|
+ orv.response_time_rating,
|
|
|
+ orv.professional_ability_rating,
|
|
|
+ orv.review_content,
|
|
|
+ orv.is_anonymous,
|
|
|
+ COALESCE((
|
|
|
+ SELECT COUNT(1)
|
|
|
+ FROM life_like_record llr_count
|
|
|
+ WHERE CONVERT(llr_count.huifu_id, CHAR) = CONVERT(orv.id, CHAR)
|
|
|
+ AND llr_count.type = '7'
|
|
|
+ AND llr_count.delete_flag = 0
|
|
|
+ ), 0) AS like_count,
|
|
|
+ orv.comment_count,
|
|
|
+ orv.review_images,
|
|
|
+ CASE
|
|
|
+ WHEN #{currentUserId} IS NOT NULL AND llr.id IS NOT NULL THEN 1
|
|
|
+ ELSE 0
|
|
|
+ END AS is_liked,
|
|
|
+ orv.created_time
|
|
|
+ FROM lawyer_order_review orv
|
|
|
+ LEFT JOIN life_user lu ON lu.id = orv.user_id AND lu.delete_flag = 0
|
|
|
+ LEFT JOIN lawyer_user lu2 ON lu2.id = orv.lawyer_user_id AND lu2.delete_flag = 0
|
|
|
+ LEFT JOIN law_firm lf ON lf.id = lu2.firm_id AND lf.delete_flag = 0
|
|
|
+ LEFT JOIN life_like_record llr ON CONVERT(llr.huifu_id, CHAR) = CONVERT(orv.id, CHAR)
|
|
|
+ AND llr.type = '7'
|
|
|
+ AND CONVERT(llr.dianzan_id, CHAR) = CONVERT(#{currentUserId}, CHAR)
|
|
|
+ AND llr.delete_flag = 0
|
|
|
+ WHERE orv.delete_flag = 0
|
|
|
+ AND orv.lawyer_user_id = #{lawyerUserId}
|
|
|
+ <if test="type != null">
|
|
|
+ <choose>
|
|
|
+ <when test="type == 1">
|
|
|
+ <![CDATA[
|
|
|
+ AND orv.overall_rating >= 4.5
|
|
|
+ AND orv.overall_rating <= 5
|
|
|
+ ]]>
|
|
|
+ </when>
|
|
|
+ <when test="type == 2">
|
|
|
+ <![CDATA[
|
|
|
+ AND orv.overall_rating >= 3
|
|
|
+ AND orv.overall_rating < 4.5
|
|
|
+ ]]>
|
|
|
+ </when>
|
|
|
+ <when test="type == 3">
|
|
|
+ <![CDATA[
|
|
|
+ AND orv.overall_rating >= 0
|
|
|
+ AND orv.overall_rating < 3
|
|
|
+ ]]>
|
|
|
+ </when>
|
|
|
+ <when test="type == 4">
|
|
|
+ AND orv.review_images IS NOT NULL
|
|
|
+ AND orv.review_images != ''
|
|
|
+ AND TRIM(orv.review_images) != ''
|
|
|
+ </when>
|
|
|
+ </choose>
|
|
|
+ </if>
|
|
|
+ ORDER BY orv.created_time DESC
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|
|
|
|