form_repository.dart 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import 'package:domain/entity/feedback_detail_entity.dart';
  2. import 'package:plugin_platform/platform_export.dart';
  3. import 'package:plugin_platform/http/dio_engine.dart';
  4. import 'package:plugin_platform/http/http_result.dart';
  5. import 'package:riverpod_annotation/riverpod_annotation.dart';
  6. import 'package:shared/utils/log_utils.dart';
  7. import '../constants/api_constants.dart';
  8. import 'package:flutter_riverpod/flutter_riverpod.dart';
  9. import 'package:plugin_basic/provider/http_provider/http_provider.dart';
  10. import '../entity/form_list_entity.dart';
  11. import '../entity/form_submitted_page_entity.dart';
  12. import '../entity/id_name_entity.dart';
  13. part 'form_repository.g.dart';
  14. @Riverpod(keepAlive: true)
  15. FormRepository formRepository(Ref ref) {
  16. final dioEngine = ref.watch(dioEngineProvider);
  17. return FormRepository(dioEngine: dioEngine);
  18. }
  19. /*
  20. * 表单的数据仓库
  21. */
  22. class FormRepository {
  23. DioEngine dioEngine;
  24. FormRepository({required this.dioEngine});
  25. /// 获取表单的可申请列表
  26. Future<HttpResult<FormListEntity>> fetchFormApplyList({
  27. CancelToken? cancelToken,
  28. }) async {
  29. final result = await dioEngine.requestNetResult(
  30. ApiConstants.apiFormList,
  31. method: HttpMethod.GET,
  32. cancelToken: cancelToken,
  33. );
  34. if (result.isSuccess) {
  35. final jsonList = result.getListJson();
  36. //获取List数据 需要转换一次
  37. var list = jsonList
  38. ?.map((value) {
  39. if (value is Map<String, dynamic>) {
  40. return FormListEntity.fromJson(value);
  41. } else {
  42. return null;
  43. }
  44. })
  45. .where((item) => item != null)
  46. .cast<FormListEntity>()
  47. .toList();
  48. return result.convert<FormListEntity>(list: list);
  49. }
  50. return result.convert<FormListEntity>();
  51. }
  52. /// 已发布的表单列表
  53. Future<HttpResult<FormSubmittedPageEntity>> fetchFormSubmitList({
  54. required int curPage,
  55. CancelToken? cancelToken,
  56. }) async {
  57. Map<String, String> params = {};
  58. params['page'] = curPage.toString();
  59. params['limit'] = "10";
  60. final result = await dioEngine.requestNetResult(
  61. ApiConstants.apiFormSubmittedList,
  62. params: params,
  63. method: HttpMethod.GET,
  64. cancelToken: cancelToken,
  65. );
  66. if (result.isSuccess) {
  67. final json = result.getDataJson();
  68. var data = FormSubmittedPageEntity.fromJson(json!);
  69. return result.convert<FormSubmittedPageEntity>(data: data);
  70. }
  71. return result.convert();
  72. }
  73. /// 已批准的表单列表
  74. Future<HttpResult<FormSubmittedPageEntity>> fetchFormApproveList({
  75. required int curPage,
  76. CancelToken? cancelToken,
  77. }) async {
  78. Map<String, String> params = {};
  79. params['page'] = curPage.toString();
  80. params['limit'] = "10";
  81. final result = await dioEngine.requestNetResult(
  82. ApiConstants.apiFormApprovedList,
  83. params: params,
  84. method: HttpMethod.GET,
  85. cancelToken: cancelToken,
  86. );
  87. if (result.isSuccess) {
  88. final json = result.getDataJson();
  89. var data = FormSubmittedPageEntity.fromJson(json!);
  90. return result.convert<FormSubmittedPageEntity>(data: data);
  91. }
  92. return result.convert();
  93. }
  94. /// 已拒绝的表单列表
  95. Future<HttpResult<FormSubmittedPageEntity>> fetchFormRejectList({
  96. required int curPage,
  97. CancelToken? cancelToken,
  98. }) async {
  99. Map<String, String> params = {};
  100. params['page'] = curPage.toString();
  101. params['limit'] = "10";
  102. final result = await dioEngine.requestNetResult(
  103. ApiConstants.apiFormRejectedList,
  104. params: params,
  105. method: HttpMethod.GET,
  106. cancelToken: cancelToken,
  107. );
  108. if (result.isSuccess) {
  109. final json = result.getDataJson();
  110. var data = FormSubmittedPageEntity.fromJson(json!);
  111. return result.convert<FormSubmittedPageEntity>(data: data);
  112. }
  113. return result.convert();
  114. }
  115. }