import 'dart:typed_data'; import 'package:get/get.dart'; import 'package:plugin_platform/dio_export.dart'; import 'package:plugin_platform/http/http_provider.dart'; import 'package:plugin_platform/http/http_result.dart'; import 'package:shared/utils/util.dart'; import '../constants/api_constants.dart'; import '../entity/response/attendance_entity.dart'; import '../entity/response/check_success_entity.dart'; /// 工作相关 class JobRepository extends GetxService { HttpProvider httpProvider; JobRepository({required this.httpProvider}); /// 获取当前酒店的考勤成员列表 Future> fetchAttendanceList( String? token, String? keyword, String? startDate, String? endDate, { CancelToken? cancelToken, }) async { Map params = {}; params["token"] = token ?? ""; params["cur_page"] = "1"; params["page_size"] = "9999"; if (!Utils.isEmpty(keyword)) { params["keyword"] = keyword!; } if (!Utils.isEmpty(startDate)) { params["start_date"] = startDate!; } if (!Utils.isEmpty(endDate)) { params["end_date"] = endDate!; } final result = await httpProvider.requestNetResult( ApiConstants.apiSignApplied, params: params, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list final json = result.getDataJson(); var data = AttendanceEntity.fromJson(json!); //重新赋值data或list return result.convert(data: data); } return result.convert(); } /// 用户上传考勤 Future> submitCheckInOut( String? token, String? appliedId, ByteData? byteData, { bool isCheckIn = false, CancelToken? cancelToken, }) async { //Post请求 Map params = {}; params['token'] = token ?? ""; params['applied_id'] = appliedId ?? ""; params['check_type'] = isCheckIn ? "1" : "2"; Map streams = {}; if (byteData != null) { streams["capture"] = byteData.buffer.asUint8List(); } final result = await httpProvider.requestNetResult( method: HttpMethod.POST, ApiConstants.apiSignInOut, params: params, pathStreams: streams, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { final json = result.getDataJson(); var data = CheckSuccessEntity.fromJson(json!); //重新赋值data return result.convert(data: data); } return result.convert(); } }