Преглед изворни кода

修改中台动态bug+ 商家端动态和中台不一致的问题

liudongzhi пре 1 месец
родитељ
комит
420b274c5e
1 измењених фајлова са 11 додато и 9 уклоњено
  1. 11 9
      alien-entity/src/main/resources/mapper/LifeUserDynamicsMapper.xml

+ 11 - 9
alien-entity/src/main/resources/mapper/LifeUserDynamicsMapper.xml

@@ -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,9 +134,9 @@
         <if test="releaseEndTime != null and releaseEndTime != ''">
             AND dyna1.created_time &lt;= #{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>