job_repository.dart 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import 'package:get/get.dart';
  2. import 'package:plugin_platform/dio_export.dart';
  3. import 'package:plugin_platform/http/http_provider.dart';
  4. import 'package:plugin_platform/http/http_result.dart';
  5. import 'package:shared/utils/util.dart';
  6. import '../constants/api_constants.dart';
  7. import '../entity/response/attendance_entity.dart';
  8. import '../entity/response/check_success_entity.dart';
  9. /// 工作相关
  10. class JobRepository extends GetxService {
  11. HttpProvider httpProvider;
  12. JobRepository({required this.httpProvider});
  13. /// 获取当前酒店的考勤成员列表
  14. Future<HttpResult<AttendanceEntity>> fetchAttendanceList(
  15. String? token,
  16. String? keyword,
  17. String? startDate,
  18. String? endDate, {
  19. CancelToken? cancelToken,
  20. }) async {
  21. Map<String, String> params = {};
  22. params["token"] = token ?? "";
  23. params["cur_page"] = "1";
  24. params["page_size"] = "9999";
  25. if (!Utils.isEmpty(keyword)) {
  26. params["keyword"] = keyword!;
  27. }
  28. if (!Utils.isEmpty(startDate)) {
  29. params["start_date"] = startDate!;
  30. }
  31. if (!Utils.isEmpty(endDate)) {
  32. params["end_date"] = endDate!;
  33. }
  34. final result = await httpProvider.requestNetResult(
  35. ApiConstants.apiSignApplied,
  36. params: params,
  37. );
  38. //根据返回的结果,封装原始数据为Bean/Entity对象
  39. if (result.isSuccess) {
  40. //重新赋值data或list
  41. final json = result.getDataJson();
  42. var data = AttendanceEntity.fromJson(json!);
  43. //重新赋值data或list
  44. return result.convert<AttendanceEntity>(data: data);
  45. }
  46. return result.convert();
  47. }
  48. /// 用户上传考勤
  49. Future<HttpResult<CheckSuccessEntity>> submitCheckInOut(
  50. String? token,
  51. String? appliedId,
  52. String? path, {
  53. bool isCheckIn = false,
  54. CancelToken? cancelToken,
  55. }) async {
  56. //Post请求
  57. Map<String, String> params = {};
  58. params['token'] = token ?? "";
  59. params['applied_id'] = appliedId ?? "";
  60. params['check_type'] = isCheckIn ? "1" : "2";
  61. Map<String, String> paths = {};
  62. if (!Utils.isEmpty(path)) {
  63. paths["capture"] = path!;
  64. }
  65. final result = await httpProvider.requestNetResult(
  66. method: HttpMethod.POST,
  67. ApiConstants.apiSignInOut,
  68. params: params,
  69. paths: paths,
  70. networkDebounce: true,
  71. isShowLoadingDialog: true,
  72. cancelToken: cancelToken,
  73. );
  74. //根据返回的结果,封装原始数据为Bean/Entity对象
  75. if (result.isSuccess) {
  76. final json = result.getDataJson();
  77. var data = CheckSuccessEntity.fromJson(json!);
  78. //重新赋值data
  79. return result.convert<CheckSuccessEntity>(data: data);
  80. }
  81. return result.convert<CheckSuccessEntity>();
  82. }
  83. }