61 lines
1.9 KiB
Dart
61 lines
1.9 KiB
Dart
//搜索相关业务
|
|
|
|
import 'package:hgdj/hj_model/home/video_list_model.dart';
|
|
import 'package:hgdj/hj_model/video_model.dart';
|
|
import 'package:hgdj/tools_base/net/http_manager.dart';
|
|
|
|
class SearchService {
|
|
/// 获取交友发布tag
|
|
static Future<List<TagsBean>> fetchPublishTags() async {
|
|
final result = await httpManager.fetchResponseByGET(
|
|
'/search/publisher/list',
|
|
param: <String, dynamic>{},
|
|
jsonTransformation: (json) =>
|
|
(json['list'] as List?)?.map((e) => TagsBean.fromMap(e)).toList() ??
|
|
[]);
|
|
//返回类型非空,给不了 null:失败时这里抛,由调用方 try/catch 兜底(改可空要连调用方一起改)
|
|
return result.data;
|
|
}
|
|
|
|
//猜你想要 type: 0v本周, 1本月,2上月 3.最多收藏
|
|
static Future<VideoListResp?> getHotVideos(
|
|
int pageNumber, int pageSize, int sortType) async {
|
|
final param = {
|
|
"pageNumber": pageNumber,
|
|
"pageSize": pageSize,
|
|
"type": sortType,
|
|
};
|
|
final result = await httpManager.fetchResponseByGET(
|
|
'/search/hotVid/list',
|
|
param: param,
|
|
jsonTransformation: (json) => VideoListResp.fromJson(json),
|
|
);
|
|
return result.isSuccess ? result.data : null;
|
|
}
|
|
|
|
//realm: SP-视频 SHORT-短视频 DRAMA-短剧 COVER-帖子 USER-用户
|
|
//sortType: 0综合排序 1最多观看 2最新上架 3最多收藏
|
|
static Future<VideoListResp?> searchMedia(
|
|
String keyWords, {
|
|
int pageNumber = 1,
|
|
int pageSize = 20,
|
|
String realm = 'SP',
|
|
int? sortType,
|
|
}) async {
|
|
final param = {
|
|
'pageNumber': pageNumber,
|
|
'pageSize': pageSize,
|
|
'keyWords': [keyWords],
|
|
'realm': realm,
|
|
'sortType': sortType,
|
|
}..removeWhere((k, v) => v == null);
|
|
|
|
final result = await httpManager.fetchResponseByPOST(
|
|
'/search/list',
|
|
param: param,
|
|
jsonTransformation: (json) => VideoListResp.fromJson(json),
|
|
);
|
|
return result.isSuccess ? result.data : null;
|
|
}
|
|
}
|