facility_repository.dart 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'dart:typed_data';
  2. import 'package:domain/entity/feedback_detail_entity.dart';
  3. import 'package:domain/entity/form_option_entity.dart';
  4. import 'package:plugin_platform/platform_export.dart';
  5. import 'package:plugin_platform/http/dio_engine.dart';
  6. import 'package:plugin_platform/http/http_result.dart';
  7. import 'package:riverpod_annotation/riverpod_annotation.dart';
  8. import 'package:shared/utils/log_utils.dart';
  9. import 'package:shared/utils/util.dart';
  10. import '../constants/api_constants.dart';
  11. import 'package:flutter_riverpod/flutter_riverpod.dart';
  12. import 'package:plugin_basic/provider/http_provider/http_provider.dart';
  13. import '../entity/form_content_entity.dart';
  14. import '../entity/form_detail_entity.dart';
  15. import '../entity/form_list_entity.dart';
  16. import '../entity/form_submitted_page_entity.dart';
  17. import '../entity/id_name_entity.dart';
  18. part 'facility_repository.g.dart';
  19. @Riverpod(keepAlive: true)
  20. FacilityRepository facilityRepository(Ref ref) {
  21. final dioEngine = ref.watch(dioEngineProvider);
  22. return FacilityRepository(dioEngine: dioEngine);
  23. }
  24. /*
  25. * 设施的数据仓库
  26. */
  27. class FacilityRepository {
  28. DioEngine dioEngine;
  29. FacilityRepository({required this.dioEngine});
  30. Future<HttpResult<IdNameEntity>> fetchFormApplyList({
  31. CancelToken? cancelToken,
  32. }) async {
  33. final result = await dioEngine.requestNetResult(
  34. ApiConstants.apiFormList,
  35. method: HttpMethod.GET,
  36. cancelToken: cancelToken,
  37. );
  38. if (result.isSuccess) {
  39. final jsonList = result.getListJson();
  40. //获取List数据 需要转换一次
  41. var list = jsonList
  42. ?.map((value) {
  43. if (value is Map<String, dynamic>) {
  44. return IdNameEntity.fromJson(value);
  45. } else {
  46. return null;
  47. }
  48. })
  49. .where((item) => item != null)
  50. .cast<IdNameEntity>()
  51. .toList();
  52. return result.convert<IdNameEntity>(list: list);
  53. }
  54. return result.convert<IdNameEntity>();
  55. }
  56. }