db() ->name($tableName) ->where('userid', $userid) ->where('status', '<=', 1) ->count(); } /** * 构建当前用户的视频作品基础查询。 * * 作品日志按 `dys_video_log_{userid % 1000}` 分表存储, * 这里统一返回已定位分表且已限定用户范围的查询对象。 * * @param int $userid 用户ID * @return Query */ public static function buildUserQuery(int $userid): Query { $tableName = self::resolveTableName($userid); return (new self()) ->db() ->name($tableName) ->where('userid', $userid); } /** * 根据用户ID计算分表名。 * * @param int $userid 用户ID * @return string */ private static function resolveTableName(int $userid): string { return sprintf('dys_video_log_%d', $userid % 1000); } }