ms_repository.dart 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. required int country,
  79. CancelToken? cancelToken,
  80. }) async {
  81. final result = await httpProvider.requestNetResult(
  82. country == 5
  83. ? ApiConstants.apiAccountListTH //泰国
  84. : ApiConstants.apiAccountListMS, //默认马来
  85. isShowLoadingDialog: true,
  86. networkDebounce: true,
  87. cancelToken: cancelToken,
  88. );
  89. if (result.isSuccess) {
  90. final json = result.getDataJson();
  91. var data = SwitchProjectEntity.fromJson(json!);
  92. return result.convert<SwitchProjectEntity>(data: data);
  93. }
  94. return result.convert();
  95. }
  96. /// 切换项目
  97. Future<HttpResult<HotelInfoEntity>> switchProjectSubmit(
  98. String? adminId, {
  99. required int country,
  100. CancelToken? cancelToken,
  101. }) async {
  102. //参数
  103. Map<String, String> params = {};
  104. params['admin_id'] = adminId ?? "";
  105. final result = await httpProvider.requestNetResult(
  106. country == 5
  107. ? ApiConstants.apiSwitchAccountTH //泰国
  108. : ApiConstants.apiSwitchAccountMS, //默认马来
  109. method: HttpMethod.POST,
  110. params: params,
  111. networkDebounce: true,
  112. isShowLoadingDialog: true,
  113. cancelToken: cancelToken,
  114. );
  115. if (result.isSuccess) {
  116. final json = result.getDataJson();
  117. var data = HotelInfoEntity.fromJson(json!);
  118. return result.convert<HotelInfoEntity>(data: data);
  119. }
  120. return result.convert();
  121. }
  122. }