|
|
@@ -4,7 +4,7 @@
|
|
|
|
|
|
<select id="getDynamicsList" resultType="shop.alien.entity.store.vo.LifeUserDynamicsVo">
|
|
|
SELECT
|
|
|
- -- 1. 用ANY_VALUE()包裹非聚合列,符合only_full_group_by规则
|
|
|
+ -- 1. 用 ANY_VALUE() 包裹非聚合列,符合 only_full_group_by 规则
|
|
|
ANY_VALUE(dyna1.id) AS id,
|
|
|
ANY_VALUE(dyna1.dynamicsType) AS dynamicsType,
|
|
|
ANY_VALUE(dyna1.title) AS title,
|
|
|
@@ -31,14 +31,15 @@
|
|
|
ANY_VALUE(dyna1.storeOrUserId) AS storeOrUserId,
|
|
|
ANY_VALUE(dyna1.isExpert) AS isExpert,
|
|
|
ANY_VALUE(dyna1.store_name) AS store_name,
|
|
|
- -- 2. 修正聚合计数逻辑:用COUNT(DISTINCT)避免重复计数,粉丝数统计lf1.id而非dyna1.id
|
|
|
+ ANY_VALUE(dyna1.transfer_count) AS transferCount,
|
|
|
+ -- 2. 修正聚合计数逻辑:用 COUNT(DISTINCT) 避免重复计数,粉丝数统计 lf1.id 而非 dyna1.id
|
|
|
COUNT(DISTINCT lf1.id) AS fansCount,
|
|
|
- -- 保留内层的评论数、转发数(从dyna1中取聚合后的值)
|
|
|
+ -- 保留内层的评论数、转发数(从 dyna1 中取聚合后的值)
|
|
|
ANY_VALUE(dyna1.commentCount) AS commentCount,
|
|
|
ANY_VALUE(dyna1.transferNum) AS transferNum
|
|
|
FROM (
|
|
|
SELECT
|
|
|
- -- 内层同样用ANY_VALUE()包裹非聚合列
|
|
|
+ -- 内层同样用 ANY_VALUE() 包裹非聚合列
|
|
|
ANY_VALUE(dyna.id) AS id,
|
|
|
ANY_VALUE(dyna.dynamicsType) AS dynamicsType,
|
|
|
ANY_VALUE(dyna.title) AS title,
|
|
|
@@ -59,13 +60,14 @@
|
|
|
ANY_VALUE(dyna.top_status) AS top_status,
|
|
|
ANY_VALUE(dyna.top_time) AS top_time,
|
|
|
ANY_VALUE(dyna.enable_status) AS enable_status,
|
|
|
+ ANY_VALUE(dyna.transfer_count) AS transfer_count,
|
|
|
ANY_VALUE(dyna.userName) AS userName,
|
|
|
ANY_VALUE(dyna.userImage) AS userImage,
|
|
|
ANY_VALUE(dyna.storeUserId) AS storeUserId,
|
|
|
ANY_VALUE(dyna.storeOrUserId) AS storeOrUserId,
|
|
|
ANY_VALUE(dyna.isExpert) AS isExpert,
|
|
|
ANY_VALUE(dyna.store_name) AS store_name,
|
|
|
- -- 3. 修正评论数/转发数:COUNT(DISTINCT)避免LEFT JOIN导致的重复计数
|
|
|
+ -- 3. 修正评论数/转发数:COUNT(DISTINCT) 避免 LEFT JOIN 导致的重复计数
|
|
|
COUNT(DISTINCT sc.id) AS commentCount,
|
|
|
COUNT(DISTINCT lm.id) AS transferNum
|
|
|
FROM (
|
|
|
@@ -80,7 +82,7 @@
|
|
|
liulan_count, dianzan_count, type, created_time,
|
|
|
SUBSTRING_INDEX(phone_id, '_', 1) userType,
|
|
|
SUBSTRING_INDEX(phone_id, '_', -1) phone,
|
|
|
- draft , address_province, top_status, top_time, enable_status
|
|
|
+ draft , address_province, top_status, top_time, enable_status, transfer_count
|
|
|
FROM life_user_dynamics
|
|
|
WHERE delete_flag = 0 AND draft = 0
|
|
|
)
|
|
|
@@ -109,7 +111,7 @@
|
|
|
LEFT JOIN life_comment lc ON lc.dongtai_shequ_id = dyna.id
|
|
|
LEFT JOIN store_comment sc ON sc.business_id = dyna.id AND sc.business_type = 2 AND sc.delete_flag = 0
|
|
|
LEFT JOIN life_message lm ON lm.business_id = dyna.id
|
|
|
- -- 4. GROUP BY仅保留主键id(因dyna.id是唯一主键,ANY_VALUE()包裹的列在同一id下值唯一)
|
|
|
+ -- 4. GROUP BY 仅保留主键 id(因 dyna.id 是唯一主键,ANY_VALUE() 包裹的列在同一 id 下值唯一)
|
|
|
GROUP BY dyna.id
|
|
|
) dyna1
|
|
|
LEFT JOIN life_fans lf1 ON lf1.followed_id = dyna1.phoneId
|
|
|
@@ -132,22 +134,22 @@
|
|
|
<if test="releaseEndTime != null and releaseEndTime != ''">
|
|
|
AND dyna1.created_time <= #{releaseEndTime}
|
|
|
</if>
|
|
|
- -- 5. 外层GROUP BY仅保留主键id,保证分组逻辑正确
|
|
|
+ -- 5. 外层 GROUP BY 仅保留主键 id,保证分组逻辑正确
|
|
|
GROUP BY dyna1.id
|
|
|
- -- 6. 最终排序移到外层,子查询的ORDER BY无意义且影响性能
|
|
|
+ -- 6. 最终排序移到外层,子查询的 ORDER BY 无意义且影响性能
|
|
|
ORDER BY dyna1.top_status DESC, dyna1.top_time DESC;
|
|
|
</select>
|
|
|
|
|
|
<select id="getDynamicsDetail" resultType="shop.alien.entity.store.vo.LifeUserDynamicsVo">
|
|
|
select dyna1.*, COUNT(dyna1.id) AS fansCount from (
|
|
|
- select dyna.*,COUNT(sc.id) AS commentCount, COUNT(lm.id) AS transferNum from (
|
|
|
+ select dyna.*,COUNT(sc.id) AS commentCount from (
|
|
|
with dynamice as(
|
|
|
select
|
|
|
CASE
|
|
|
WHEN image_path REGEXP '.mp4|.avi|.flv|.mkv|.rmvb|.wmv|.3gp|.mov' THEN 2
|
|
|
WHEN image_path REGEXP '.jpg|.jpeg|.png|.bmp|.webp|.gif|.svg' THEN 1
|
|
|
ELSE 0
|
|
|
- END AS dynamicsType, id, title, phone_id phoneId, context, image_path, address,address_name,address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) userType, substring_index(phone_id, '_', -1) phone, draft , address_province, top_status, top_time, enable_status
|
|
|
+ END AS dynamicsType, id, title, phone_id phoneId, context, image_path, address,address_name,address_context, liulan_count, dianzan_count, type, created_time, substring_index(phone_id, '_', 1) userType, substring_index(phone_id, '_', -1) phone, draft , address_province, top_status, top_time, enable_status,transfer_count AS transferCount
|
|
|
from life_user_dynamics
|
|
|
where id = #{id} and delete_flag = 0 and draft = 0 order by created_time desc
|
|
|
)
|