feat:增加博客统计模块

This commit is contained in:
2025-11-15 16:56:47 +08:00
parent 2cfb2ce592
commit d512a77f5f
22 changed files with 1196 additions and 524 deletions

View File

@@ -76,3 +76,34 @@ class BlogCategory {
Map<String, dynamic> toJson() => _$BlogCategoryToJson(this);
}
@JsonSerializable(genericArgumentFactories: true)
class BlogStats {
@JsonKey(name: 'blogCount')
final int blogCount;
@JsonKey(name: 'categoryCount')
final int categoryCount;
@JsonKey(name: 'greatCount')
final int greatCount;
@JsonKey(name: 'visitCount')
final int visitCount;
@JsonKey(name: 'wordCount')
final int wordCount;
const BlogStats({
required this.blogCount,
required this.categoryCount,
required this.greatCount,
required this.visitCount,
required this.wordCount,
});
factory BlogStats.fromJson(Map<String, dynamic> json) =>
_$BlogStatsFromJson(json);
Map<String, dynamic> toJson() => _$BlogStatsToJson(this);
}

View File

@@ -43,3 +43,19 @@ BlogCategory _$BlogCategoryFromJson(Map<String, dynamic> json) => BlogCategory(
Map<String, dynamic> _$BlogCategoryToJson(BlogCategory instance) =>
<String, dynamic>{'name': instance.name, 'count': instance.count};
BlogStats _$BlogStatsFromJson(Map<String, dynamic> json) => BlogStats(
blogCount: (json['blogCount'] as num).toInt(),
categoryCount: (json['categoryCount'] as num).toInt(),
greatCount: (json['greatCount'] as num).toInt(),
visitCount: (json['visitCount'] as num).toInt(),
wordCount: (json['wordCount'] as num).toInt(),
);
Map<String, dynamic> _$BlogStatsToJson(BlogStats instance) => <String, dynamic>{
'blogCount': instance.blogCount,
'categoryCount': instance.categoryCount,
'greatCount': instance.greatCount,
'visitCount': instance.visitCount,
'wordCount': instance.wordCount,
};

View File

@@ -35,3 +35,19 @@ class PageResult<T> {
Map<String, dynamic> toJson(Object? Function(T value) toJsonT) =>
_$PageResultToJson(this, toJsonT);
}
@JsonSerializable(genericArgumentFactories: true)
class ChartData {
@JsonKey(name: 'name')
final String name;
@JsonKey(name: 'value')
final double value;
const ChartData({required this.name, required this.value});
factory ChartData.fromJson(Map<String, dynamic> json) =>
_$ChartDataFromJson(json);
Map<String, dynamic> toJson() => _$ChartDataToJson(this);
}

View File

@@ -27,3 +27,13 @@ Map<String, dynamic> _$PageResultToJson<T>(
'current': instance.current,
'pages': instance.pages,
};
ChartData _$ChartDataFromJson(Map<String, dynamic> json) => ChartData(
name: json['name'] as String,
value: (json['value'] as num).toDouble(),
);
Map<String, dynamic> _$ChartDataToJson(ChartData instance) => <String, dynamic>{
'name': instance.name,
'value': instance.value,
};