Commit 5f88c9ca35f3e38d01d20b20492728a63e9c7f09

Authored by YunaiV
1 parent 45889459

✨ feat(im): 增加消息查询条件以排除已删除记录

yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/statistics/ImStatisticsManagerMapper.java
@@ -39,10 +39,10 @@ public interface ImStatisticsManagerMapper { @@ -39,10 +39,10 @@ public interface ImStatisticsManagerMapper {
39 */ 39 */
40 @Select("SELECT COUNT(DISTINCT user_id) FROM (" + 40 @Select("SELECT COUNT(DISTINCT user_id) FROM (" +
41 " SELECT sender_id AS user_id FROM im_private_message " + 41 " SELECT sender_id AS user_id FROM im_private_message " +
42 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 42 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
43 " UNION ALL " + 43 " UNION ALL " +
44 " SELECT sender_id AS user_id FROM im_group_message " + 44 " SELECT sender_id AS user_id FROM im_group_message " +
45 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 45 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
46 ") t") 46 ") t")
47 Long selectActiveUserCount(@Param("beginTime") LocalDateTime beginTime, 47 Long selectActiveUserCount(@Param("beginTime") LocalDateTime beginTime,
48 @Param("endTime") LocalDateTime endTime); 48 @Param("endTime") LocalDateTime endTime);
@@ -63,10 +63,10 @@ public interface ImStatisticsManagerMapper { @@ -63,10 +63,10 @@ public interface ImStatisticsManagerMapper {
63 */ 63 */
64 @Select("SELECT day AS date, COUNT(DISTINCT user_id) AS count FROM (" + 64 @Select("SELECT day AS date, COUNT(DISTINCT user_id) AS count FROM (" +
65 " SELECT DATE(send_time) AS day, sender_id AS user_id FROM im_private_message " + 65 " SELECT DATE(send_time) AS day, sender_id AS user_id FROM im_private_message " +
66 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 66 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
67 " UNION ALL " + 67 " UNION ALL " +
68 " SELECT DATE(send_time) AS day, sender_id AS user_id FROM im_group_message " + 68 " SELECT DATE(send_time) AS day, sender_id AS user_id FROM im_group_message " +
69 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 69 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
70 ") t GROUP BY day") 70 ") t GROUP BY day")
71 List<Map<String, Object>> selectActiveUserDailyCount(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime); 71 List<Map<String, Object>> selectActiveUserDailyCount(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
72 72
@@ -75,7 +75,7 @@ public interface ImStatisticsManagerMapper { @@ -75,7 +75,7 @@ public interface ImStatisticsManagerMapper {
75 /** 75 /**
76 * 群总数(im_group) 76 * 群总数(im_group)
77 */ 77 */
78 - @Select("SELECT COUNT(*) FROM im_group WHERE deleted = 0") 78 + @Select("SELECT COUNT(*) FROM im_group WHERE deleted = 0 AND status = 0")
79 Long selectTotalGroupCount(); 79 Long selectTotalGroupCount();
80 80
81 /** 81 /**
@@ -101,7 +101,7 @@ public interface ImStatisticsManagerMapper { @@ -101,7 +101,7 @@ public interface ImStatisticsManagerMapper {
101 " SELECT g.id, COUNT(m.id) AS cnt " + 101 " SELECT g.id, COUNT(m.id) AS cnt " +
102 " FROM im_group g " + 102 " FROM im_group g " +
103 " LEFT JOIN im_group_member m ON m.group_id = g.id AND m.status = 0 AND m.deleted = 0 " + 103 " LEFT JOIN im_group_member m ON m.group_id = g.id AND m.status = 0 AND m.deleted = 0 " +
104 - " WHERE g.deleted = 0 " + 104 + " WHERE g.deleted = 0 AND g.status = 0 " +
105 " GROUP BY g.id" + 105 " GROUP BY g.id" +
106 ") t " + 106 ") t " +
107 "GROUP BY `range`") 107 "GROUP BY `range`")
@@ -113,7 +113,7 @@ public interface ImStatisticsManagerMapper { @@ -113,7 +113,7 @@ public interface ImStatisticsManagerMapper {
113 * 区间内私聊消息数 113 * 区间内私聊消息数
114 */ 114 */
115 @Select("SELECT COUNT(*) FROM im_private_message " + 115 @Select("SELECT COUNT(*) FROM im_private_message " +
116 - "WHERE send_time >= #{beginTime} AND send_time < #{endTime}") 116 + "WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}")
117 Long selectPrivateMessageCount(@Param("beginTime") LocalDateTime beginTime, 117 Long selectPrivateMessageCount(@Param("beginTime") LocalDateTime beginTime,
118 @Param("endTime") LocalDateTime endTime); 118 @Param("endTime") LocalDateTime endTime);
119 119
@@ -121,7 +121,7 @@ public interface ImStatisticsManagerMapper { @@ -121,7 +121,7 @@ public interface ImStatisticsManagerMapper {
121 * 区间内群聊消息数 121 * 区间内群聊消息数
122 */ 122 */
123 @Select("SELECT COUNT(*) FROM im_group_message " + 123 @Select("SELECT COUNT(*) FROM im_group_message " +
124 - "WHERE send_time >= #{beginTime} AND send_time < #{endTime}") 124 + "WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}")
125 Long selectGroupMessageCount(@Param("beginTime") LocalDateTime beginTime, 125 Long selectGroupMessageCount(@Param("beginTime") LocalDateTime beginTime,
126 @Param("endTime") LocalDateTime endTime); 126 @Param("endTime") LocalDateTime endTime);
127 127
@@ -129,7 +129,7 @@ public interface ImStatisticsManagerMapper { @@ -129,7 +129,7 @@ public interface ImStatisticsManagerMapper {
129 * 区间内每日私聊消息数(按天分组) 129 * 区间内每日私聊消息数(按天分组)
130 */ 130 */
131 @Select("SELECT DATE(send_time) AS date, COUNT(*) AS count FROM im_private_message " + 131 @Select("SELECT DATE(send_time) AS date, COUNT(*) AS count FROM im_private_message " +
132 - "WHERE send_time >= #{beginTime} AND send_time < #{endTime} " + 132 + "WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime} " +
133 "GROUP BY DATE(send_time)") 133 "GROUP BY DATE(send_time)")
134 List<Map<String, Object>> selectPrivateMessageDailyCount(@Param("beginTime") LocalDateTime beginTime, 134 List<Map<String, Object>> selectPrivateMessageDailyCount(@Param("beginTime") LocalDateTime beginTime,
135 @Param("endTime") LocalDateTime endTime); 135 @Param("endTime") LocalDateTime endTime);
@@ -138,7 +138,7 @@ public interface ImStatisticsManagerMapper { @@ -138,7 +138,7 @@ public interface ImStatisticsManagerMapper {
138 * 区间内每日群聊消息数(按天分组) 138 * 区间内每日群聊消息数(按天分组)
139 */ 139 */
140 @Select("SELECT DATE(send_time) AS date, COUNT(*) AS count FROM im_group_message " + 140 @Select("SELECT DATE(send_time) AS date, COUNT(*) AS count FROM im_group_message " +
141 - "WHERE send_time >= #{beginTime} AND send_time < #{endTime} " + 141 + "WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime} " +
142 "GROUP BY DATE(send_time)") 142 "GROUP BY DATE(send_time)")
143 List<Map<String, Object>> selectGroupMessageDailyCount(@Param("beginTime") LocalDateTime beginTime, 143 List<Map<String, Object>> selectGroupMessageDailyCount(@Param("beginTime") LocalDateTime beginTime,
144 @Param("endTime") LocalDateTime endTime); 144 @Param("endTime") LocalDateTime endTime);
@@ -150,10 +150,10 @@ public interface ImStatisticsManagerMapper { @@ -150,10 +150,10 @@ public interface ImStatisticsManagerMapper {
150 */ 150 */
151 @Select("SELECT type, COUNT(*) AS count FROM (" + 151 @Select("SELECT type, COUNT(*) AS count FROM (" +
152 " SELECT type FROM im_private_message " + 152 " SELECT type FROM im_private_message " +
153 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 153 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
154 " UNION ALL " + 154 " UNION ALL " +
155 " SELECT type FROM im_group_message " + 155 " SELECT type FROM im_group_message " +
156 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 156 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
157 ") t GROUP BY type") 157 ") t GROUP BY type")
158 List<Map<String, Object>> selectMessageTypeDistribution(@Param("beginTime") LocalDateTime beginTime, 158 List<Map<String, Object>> selectMessageTypeDistribution(@Param("beginTime") LocalDateTime beginTime,
159 @Param("endTime") LocalDateTime endTime); 159 @Param("endTime") LocalDateTime endTime);
@@ -165,10 +165,10 @@ public interface ImStatisticsManagerMapper { @@ -165,10 +165,10 @@ public interface ImStatisticsManagerMapper {
165 */ 165 */
166 @Select("SELECT user_id AS userId, COUNT(*) AS messageCount FROM (" + 166 @Select("SELECT user_id AS userId, COUNT(*) AS messageCount FROM (" +
167 " SELECT sender_id AS user_id FROM im_private_message " + 167 " SELECT sender_id AS user_id FROM im_private_message " +
168 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 168 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
169 " UNION ALL " + 169 " UNION ALL " +
170 " SELECT sender_id AS user_id FROM im_group_message " + 170 " SELECT sender_id AS user_id FROM im_group_message " +
171 - " WHERE send_time >= #{beginTime} AND send_time < #{endTime}" + 171 + " WHERE deleted = 0 AND send_time >= #{beginTime} AND send_time < #{endTime}" +
172 ") t GROUP BY user_id ORDER BY messageCount DESC LIMIT #{limit}") 172 ") t GROUP BY user_id ORDER BY messageCount DESC LIMIT #{limit}")
173 List<Map<String, Object>> selectTopSenders(@Param("beginTime") LocalDateTime beginTime, 173 List<Map<String, Object>> selectTopSenders(@Param("beginTime") LocalDateTime beginTime,
174 @Param("endTime") LocalDateTime endTime, 174 @Param("endTime") LocalDateTime endTime,