facility_detail_view_model.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:domain/repository/facility_repository.dart';
  2. import 'package:plugin_platform/engine/loading/loading_engine.dart';
  3. import 'package:plugin_platform/engine/toast/toast_engine.dart';
  4. import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
  5. import 'package:riverpod_annotation/riverpod_annotation.dart';
  6. import 'package:router/componentRouter/component_service_manager.dart';
  7. import 'package:router/ext/auto_router_extensions.dart';
  8. import 'facility_detail_state.dart';
  9. part 'facility_detail_view_model.g.dart';
  10. @riverpod
  11. class FacilityDetailViewModel extends _$FacilityDetailViewModel with DioCancelableMixin{
  12. late final FacilityRepository _facilityRepository;
  13. @override
  14. FacilityDetailState build() {
  15. _facilityRepository = ref.read(facilityRepositoryProvider);
  16. final state = FacilityDetailState();
  17. registerCancellation();
  18. return state;
  19. }
  20. /// 获取详情
  21. Future fetchFacilityDetail(String? bookingId) async {
  22. final result = await _facilityRepository.fetchFacilityBookingDetail(id: bookingId, cancelToken: cancelToken);
  23. // 处理数据
  24. if (result.isSuccess) {
  25. state = state.copyWith(detail: result.data);
  26. } else {
  27. ToastEngine.show(result.errorMsg ?? "UnKnow Error");
  28. }
  29. }
  30. //根据OrderId继续支付订单
  31. void doPaymentOrder(String orderId) async {
  32. //支付流程 Loading 开始
  33. LoadingEngine.show();
  34. //调用支付服务
  35. bool success = await ComponentServiceManager().paymentService.executePayment(orderId: orderId);
  36. //支付流程 Loading 结束
  37. LoadingEngine.dismiss();
  38. //如果成功,返回页面
  39. if (success) {
  40. appRouter.maybePop();
  41. }
  42. }
  43. }