ms_repository.dart 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. import 'package:domain/entity/response/hotel_info_entity.dart';
  2. import 'package:domain/entity/response/sign_in_sign_out_entity.dart';
  3. import 'package:domain/entity/response/switch_project_entity.dart';
  4. import 'package:get/get.dart';
  5. import 'package:plugin_platform/http/http_provider.dart';
  6. import 'package:plugin_platform/http/http_result.dart';
  7. import 'package:plugin_platform/platform_export.dart';
  8. import 'package:shared/utils/util.dart';
  9. import '../constants/api_constants.dart';
  10. /// MS/NL等签到签出的功能单独的数据仓库
  11. class MSRepository extends GetxService {
  12. HttpProvider httpProvider;
  13. MSRepository({required this.httpProvider});
  14. /// 获取当前酒店需要签到签出的考勤成员列表
  15. Future<HttpResult<SignInSignOutEntity>> fetchSignInSignOutList(
  16. String? keyword,
  17. String? startDate,
  18. String? endDate, {
  19. CancelToken? cancelToken,
  20. }) async {
  21. Map<String, String> params = {};
  22. if (!Utils.isEmpty(keyword)) {
  23. params["keyword"] = keyword!;
  24. }
  25. if (!Utils.isEmpty(startDate)) {
  26. params["start_date"] = startDate!;
  27. }
  28. if (!Utils.isEmpty(endDate)) {
  29. params["end_date"] = endDate!;
  30. }
  31. final result = await httpProvider.requestNetResult(
  32. ApiConstants.apiSignListMS,
  33. params: params,
  34. cancelToken: cancelToken,
  35. );
  36. if (result.isSuccess) {
  37. //重新赋值data或list
  38. final json = result.getDataJson();
  39. var data = SignInSignOutEntity.fromJson(json!);
  40. return result.convert<SignInSignOutEntity>(data: data);
  41. }
  42. return result.convert();
  43. }
  44. /// 提交考勤的拍照图片
  45. Future<HttpResult<SignInSignOutRows>> signImageSubmit(
  46. String? appliedId,
  47. String? photo,
  48. String? type, {
  49. CancelToken? cancelToken,
  50. }) async {
  51. //参数
  52. Map<String, String> params = {};
  53. params['applied_id'] = appliedId ?? "";
  54. params['type'] = type ?? "";
  55. Map<String, String> paths = {};
  56. if (!Utils.isEmpty(photo)) {
  57. paths["photo"] = photo ?? "";
  58. }
  59. final result = await httpProvider.requestNetResult(
  60. ApiConstants.apiSignSaveMS,
  61. method: HttpMethod.POST,
  62. params: params,
  63. paths: paths,
  64. networkDebounce: true,
  65. isShowLoadingDialog: true,
  66. cancelToken: cancelToken,
  67. );
  68. if (result.isSuccess) {
  69. //重新赋值data或list
  70. final json = result.getDataJson();
  71. var data = SignInSignOutRows.fromJson(json!);
  72. return result.convert<SignInSignOutRows>(data: data);
  73. }
  74. return result.convert();
  75. }
  76. /// 可以切换的Project列表
  77. Future<HttpResult<SwitchProjectEntity>> fetchSwitchProjectList({
  78. CancelToken? cancelToken,
  79. }) async {
  80. final result = await httpProvider.requestNetResult(
  81. ApiConstants.apiAccountListMS,
  82. isShowLoadingDialog: true,
  83. networkDebounce: true,
  84. cancelToken: cancelToken,
  85. );
  86. if (result.isSuccess) {
  87. final json = result.getDataJson();
  88. var data = SwitchProjectEntity.fromJson(json!);
  89. return result.convert<SwitchProjectEntity>(data: data);
  90. }
  91. return result.convert();
  92. }
  93. /// 切换项目
  94. Future<HttpResult<HotelInfoEntity>> switchProjectSubmit(
  95. String? adminId, {
  96. CancelToken? cancelToken,
  97. }) async {
  98. //参数
  99. Map<String, String> params = {};
  100. params['admin_id'] = adminId ?? "";
  101. final result = await httpProvider.requestNetResult(
  102. ApiConstants.apiSwitchAccountMS,
  103. method: HttpMethod.POST,
  104. params: params,
  105. networkDebounce: true,
  106. isShowLoadingDialog: true,
  107. cancelToken: cancelToken,
  108. );
  109. if (result.isSuccess) {
  110. final json = result.getDataJson();
  111. var data = HotelInfoEntity.fromJson(json!);
  112. return result.convert<HotelInfoEntity>(data: data);
  113. }
  114. return result.convert();
  115. }
  116. }