初始化

This commit is contained in:
谢宇宁
2026-09-15 15:44:13 +07:00
commit a23ba685e9
1065 changed files with 101122 additions and 0 deletions
@@ -0,0 +1,45 @@
//小说/视频推荐
import 'package:hgdj/hj_utils/api_service/acg_service.dart';
import 'package:hgdj/hj_utils/const.dart';
import 'package:hgdj/tools_base/base_list_controller.dart';
import '../../hj_utils/api_service/common_service.dart';
class CartoonRecommendLogic extends ListBaseLogic<dynamic> {
final String? mediaId; //acg 推荐的 tagId
final MediaStyle mediaStyle; //推荐类型:Video(真人视频) / Cartoon(动漫) / Comics(漫画)
final String? videoTagId; //视频(SP)推荐的 tagId,按当前视频 tag 拉同类
CartoonRecommendLogic(
{this.mediaId, this.mediaStyle = MediaStyle.Comics, this.videoTagId});
@override
void onReady() {
super.onReady();
loadData();
}
//isRefresh 下拉刷新/加载更多;showLoading 切换时先清空显示 loading
void loadData({bool isRefresh = true, bool showLoading = false}) {
if (showLoading) {
dataList = null;
update();
}
fetchData(isRefresh: isRefresh, fetch: _fetch);
}
//按类型分流:视频走 getRecommendList,漫画/动漫走 comicsRecommendList
Future<(List<dynamic>?, bool)> _fetch(int page) async {
if (mediaStyle == MediaStyle.Video) {
final resp = await CommonService.getRecommendList(
pageNumber: page,
pageSize: 12,
tagId: videoTagId,
newsType: mediaStyle.rankParam);
return (resp?.videos, resp?.hasNext == true);
}
final model = await ACGService.comicsRecommendList(page, 12,
tagId: mediaId, mediaType: mediaStyle.rankParam);
return (model?.list, model?.hasNext == true);
}
}