Kaynağa Gözat

优化团队产出列表查询,同一人产出的多条记录融合成一条展示

xudm 2 ay önce
ebeveyn
işleme
72e0d5a37b

+ 11 - 3
src/main/resources/mapper/TeamShareRewardRecordMapper.xml

@@ -41,12 +41,20 @@
         u.nickname,
         u.real_name,
         u.avatar
+        from (select *
+        from (select t.invitee_id,
+        t.target_id,
+        t.team_type,
+        sum(t.gold_coin_yield_total) over (partition by t.invitee_id) as gold_coin_yield_total,
+        sum(t.reward_amount) over (partition by t.invitee_id) as reward_amount,
+        row_number() over (partition by t.invitee_id ) as rn
         from b_team_share_reward_record t
-        inner join b_user u on u.id = t.invitee_id
         where t.target_id = #{userId} and t.claim_status = 0
         <if test="type != null and type != ''">
             and t.team_type = #{type}
-        </if>
-        order by t.create_time desc, t.gold_coin_yield_total desc;
+        </if>) tt
+        where tt.rn = 1) t
+        inner join b_user u on u.id = t.invitee_id
+        order by t.gold_coin_yield_total desc;
     </select>
 </mapper>