ms_repository.dart 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import 'package:domain/entity/response/sign_in_sign_out_entity.dart';
  2. import 'package:get/get.dart';
  3. import 'package:plugin_platform/http/http_provider.dart';
  4. import 'package:plugin_platform/http/http_result.dart';
  5. import 'package:plugin_platform/platform_export.dart';
  6. import 'package:shared/utils/util.dart';
  7. import '../constants/api_constants.dart';
  8. /// MS/NL等签到签出的功能单独的数据仓库
  9. class MSRepository extends GetxService {
  10. HttpProvider httpProvider;
  11. MSRepository({required this.httpProvider});
  12. /// 获取当前酒店需要签到签出的考勤成员列表
  13. Future<HttpResult<SignInSignOutEntity>> fetchSignInSignOutList(
  14. String? keyword,
  15. String? startDate,
  16. String? endDate, {
  17. CancelToken? cancelToken,
  18. }) async {
  19. Map<String, String> params = {};
  20. if (!Utils.isEmpty(keyword)) {
  21. params["keyword"] = keyword!;
  22. }
  23. if (!Utils.isEmpty(startDate)) {
  24. params["start_date"] = startDate!;
  25. }
  26. if (!Utils.isEmpty(endDate)) {
  27. params["end_date"] = endDate!;
  28. }
  29. final result = await httpProvider.requestNetResult(
  30. ApiConstants.apiSignListMS,
  31. params: params,
  32. cancelToken: cancelToken,
  33. );
  34. if (result.isSuccess) {
  35. //重新赋值data或list
  36. final json = result.getDataJson();
  37. var data = SignInSignOutEntity.fromJson(json!);
  38. return result.convert<SignInSignOutEntity>(data: data);
  39. }
  40. return result.convert();
  41. }
  42. /// 提交考勤的拍照图片
  43. Future<HttpResult<SignInSignOutRows>> signImageSubmit(
  44. String? appliedId,
  45. String? photo,
  46. String? type, {
  47. CancelToken? cancelToken,
  48. }) async {
  49. //参数
  50. Map<String, String> params = {};
  51. params['applied_id'] = appliedId ?? "";
  52. params['type'] = type ?? "";
  53. Map<String, String> paths = {};
  54. if (!Utils.isEmpty(photo)) {
  55. paths["photo"] = photo ?? "";
  56. }
  57. final result = await httpProvider.requestNetResult(
  58. ApiConstants.apiSignSaveMS,
  59. method: HttpMethod.POST,
  60. params: params,
  61. paths: paths,
  62. networkDebounce: true,
  63. isShowLoadingDialog: true,
  64. cancelToken: cancelToken,
  65. );
  66. if (result.isSuccess) {
  67. //重新赋值data或list
  68. final json = result.getDataJson();
  69. var data = SignInSignOutRows.fromJson(json!);
  70. return result.convert<SignInSignOutRows>(data: data);
  71. }
  72. return result.convert();
  73. }
  74. }