import 'package:domain/entity/feedback_detail_entity.dart'; import 'package:plugin_platform/platform_export.dart'; import 'package:plugin_platform/http/dio_engine.dart'; import 'package:plugin_platform/http/http_result.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:shared/utils/log_utils.dart'; import '../constants/api_constants.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:plugin_basic/provider/http_provider/http_provider.dart'; import '../entity/form_list_entity.dart'; import '../entity/form_submitted_page_entity.dart'; import '../entity/id_name_entity.dart'; part 'form_repository.g.dart'; @Riverpod(keepAlive: true) FormRepository formRepository(Ref ref) { final dioEngine = ref.watch(dioEngineProvider); return FormRepository(dioEngine: dioEngine); } /* * 表单的数据仓库 */ class FormRepository { DioEngine dioEngine; FormRepository({required this.dioEngine}); /// 获取表单的可申请列表 Future> fetchFormApplyList({ CancelToken? cancelToken, }) async { final result = await dioEngine.requestNetResult( ApiConstants.apiFormList, method: HttpMethod.GET, cancelToken: cancelToken, ); if (result.isSuccess) { final jsonList = result.getListJson(); //获取List数据 需要转换一次 var list = jsonList ?.map((value) { if (value is Map) { return FormListEntity.fromJson(value); } else { return null; } }) .where((item) => item != null) .cast() .toList(); return result.convert(list: list); } return result.convert(); } /// 已发布的表单列表 Future> fetchFormSubmitList({ required int curPage, CancelToken? cancelToken, }) async { Map params = {}; params['page'] = curPage.toString(); params['limit'] = "10"; final result = await dioEngine.requestNetResult( ApiConstants.apiFormSubmittedList, params: params, method: HttpMethod.GET, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = FormSubmittedPageEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 已批准的表单列表 Future> fetchFormApproveList({ required int curPage, CancelToken? cancelToken, }) async { Map params = {}; params['page'] = curPage.toString(); params['limit'] = "10"; final result = await dioEngine.requestNetResult( ApiConstants.apiFormApprovedList, params: params, method: HttpMethod.GET, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = FormSubmittedPageEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 已拒绝的表单列表 Future> fetchFormRejectList({ required int curPage, CancelToken? cancelToken, }) async { Map params = {}; params['page'] = curPage.toString(); params['limit'] = "10"; final result = await dioEngine.requestNetResult( ApiConstants.apiFormRejectedList, params: params, method: HttpMethod.GET, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = FormSubmittedPageEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } }