feat(education): complete Flyway migration and atomic submit

This commit is contained in:
2026-07-30 12:06:55 +08:00
parent ce02f8acb4
commit 79a5799502
228 changed files with 32551 additions and 1376 deletions

View File

@@ -25,14 +25,14 @@ public interface ImStatisticsManagerMapper {
/**
* 用户总数system_users
*/
@Select("SELECT COUNT(*) FROM system_users WHERE deleted = 0")
@Select("SELECT COUNT(*) FROM system_users WHERE deleted = FALSE")
Long selectTotalUserCount();
/**
* 区间内新增用户数
*/
@Select("SELECT COUNT(*) FROM system_users " +
"WHERE deleted = 0 AND create_time >= #{beginTime} AND create_time < #{endTime}")
"WHERE deleted = FALSE AND create_time >= #{beginTime} AND create_time < #{endTime}")
Long selectNewUserCount(@Param("beginTime") LocalDateTime beginTime,
@Param("endTime") LocalDateTime endTime);
@@ -41,11 +41,11 @@ public interface ImStatisticsManagerMapper {
*/
@Select("SELECT COUNT(DISTINCT user_id) FROM (" +
" SELECT sender_id AS user_id FROM im_private_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
" UNION ALL " +
" SELECT sender_id AS user_id FROM im_group_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
") t")
Long selectActiveUserCount(@Param("beginTime") LocalDateTime beginTime,
@@ -57,7 +57,7 @@ public interface ImStatisticsManagerMapper {
* @return [{date: "yyyy-MM-dd", count: 123}, ...]
*/
@Select("SELECT DATE(create_time) AS date, COUNT(*) AS count FROM system_users " +
"WHERE deleted = 0 AND create_time >= #{beginTime} AND create_time < #{endTime} " +
"WHERE deleted = FALSE AND create_time >= #{beginTime} AND create_time < #{endTime} " +
"GROUP BY DATE(create_time)")
List<Map<String, Object>> selectNewUserDailyCount(@Param("beginTime") LocalDateTime beginTime,
@Param("endTime") LocalDateTime endTime);
@@ -67,11 +67,11 @@ public interface ImStatisticsManagerMapper {
*/
@Select("SELECT day AS date, COUNT(DISTINCT user_id) AS count FROM (" +
" SELECT DATE(send_time) AS day, sender_id AS user_id FROM im_private_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
" UNION ALL " +
" SELECT DATE(send_time) AS day, sender_id AS user_id FROM im_group_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
") t GROUP BY day")
List<Map<String, Object>> selectActiveUserDailyCount(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
@@ -81,14 +81,14 @@ public interface ImStatisticsManagerMapper {
/**
* 当前有效群总数
*/
@Select("SELECT COUNT(*) FROM im_group WHERE deleted = 0 AND status = 0")
@Select("SELECT COUNT(*) FROM im_group WHERE deleted = FALSE AND status = 0")
Long selectTotalGroupCount();
/**
* 区间内新建群数
*/
@Select("SELECT COUNT(*) FROM im_group " +
"WHERE deleted = 0 AND create_time >= #{beginTime} AND create_time < #{endTime}")
"WHERE deleted = FALSE AND create_time >= #{beginTime} AND create_time < #{endTime}")
Long selectNewGroupCount(@Param("beginTime") LocalDateTime beginTime, @Param("endTime") LocalDateTime endTime);
/**
@@ -102,15 +102,15 @@ public interface ImStatisticsManagerMapper {
" WHEN cnt < 50 THEN '10-49 人' " +
" WHEN cnt < 200 THEN '50-199 人' " +
" ELSE '200+ 人' " +
" END AS `range`, COUNT(*) AS count " +
" END AS \"range\", COUNT(*) AS count " +
"FROM (" +
" SELECT g.id, COUNT(m.id) AS cnt " +
" FROM im_group g " +
" LEFT JOIN im_group_member m ON m.group_id = g.id AND m.status = 0 AND m.deleted = 0 " +
" WHERE g.deleted = 0 AND g.status = 0 " +
" LEFT JOIN im_group_member m ON m.group_id = g.id AND m.status = 0 AND m.deleted = FALSE " +
" WHERE g.deleted = FALSE AND g.status = 0 " +
" GROUP BY g.id" +
") t " +
"GROUP BY `range`")
"GROUP BY \"range\"")
List<Map<String, Object>> selectGroupSizeDistribution();
// ==================== 消息 ====================
@@ -119,7 +119,7 @@ public interface ImStatisticsManagerMapper {
* 区间内私聊消息数
*/
@Select("SELECT COUNT(*) FROM im_private_message " +
"WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
"WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}")
Long selectPrivateMessageCount(@Param("beginTime") LocalDateTime beginTime,
@Param("endTime") LocalDateTime endTime);
@@ -128,7 +128,7 @@ public interface ImStatisticsManagerMapper {
* 区间内群聊消息数
*/
@Select("SELECT COUNT(*) FROM im_group_message " +
"WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
"WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}")
Long selectGroupMessageCount(@Param("beginTime") LocalDateTime beginTime,
@Param("endTime") LocalDateTime endTime);
@@ -137,7 +137,7 @@ public interface ImStatisticsManagerMapper {
* 区间内每日私聊消息数(按天分组)
*/
@Select("SELECT DATE(send_time) AS date, COUNT(*) AS count FROM im_private_message " +
"WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
"WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime} " +
"GROUP BY DATE(send_time)")
List<Map<String, Object>> selectPrivateMessageDailyCount(@Param("beginTime") LocalDateTime beginTime,
@@ -147,7 +147,7 @@ public interface ImStatisticsManagerMapper {
* 区间内每日群聊消息数(按天分组)
*/
@Select("SELECT DATE(send_time) AS date, COUNT(*) AS count FROM im_group_message " +
"WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
"WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime} " +
"GROUP BY DATE(send_time)")
List<Map<String, Object>> selectGroupMessageDailyCount(@Param("beginTime") LocalDateTime beginTime,
@@ -160,11 +160,11 @@ public interface ImStatisticsManagerMapper {
*/
@Select("SELECT type, COUNT(*) AS count FROM (" +
" SELECT type FROM im_private_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
" UNION ALL " +
" SELECT type FROM im_group_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
") t GROUP BY type")
List<Map<String, Object>> selectMessageTypeDistribution(@Param("beginTime") LocalDateTime beginTime,
@@ -177,11 +177,11 @@ public interface ImStatisticsManagerMapper {
*/
@Select("SELECT user_id AS userId, COUNT(*) AS messageCount FROM (" +
" SELECT sender_id AS user_id FROM im_private_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
" UNION ALL " +
" SELECT sender_id AS user_id FROM im_group_message " +
" WHERE deleted = 0 AND " + NORMAL_MESSAGE_CONDITION +
" WHERE deleted = FALSE AND " + NORMAL_MESSAGE_CONDITION +
" AND send_time >= #{beginTime} AND send_time < #{endTime}" +
") t GROUP BY user_id ORDER BY messageCount DESC LIMIT #{limit}")
List<Map<String, Object>> selectTopSenders(@Param("beginTime") LocalDateTime beginTime,