import 'package:domain/entity/response/u_k_template_detail_entity.dart'; import 'package:domain/entity/response/u_k_template_entity.dart'; import 'package:get/get.dart'; import 'package:plugin_platform/http/http_provider.dart'; import 'package:plugin_platform/http/http_result.dart'; import 'package:plugin_platform/platform_export.dart'; import 'package:shared/utils/util.dart'; import '../constants/api_constants.dart'; /// UK工作相关数据仓库 class UKJobRepository extends GetxService { HttpProvider httpProvider; UKJobRepository({required this.httpProvider}); /// 用工模版中的工作标题列表 Future> fetchJobTemplateList( String? keyword, { required int curPage, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = curPage.toString(); params["page_size"] = "10"; if (!Utils.isEmpty(keyword)) { params["job_title"] = keyword!; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateListSG, params: params, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = UKTemplateEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 用工模版中的添加选项 Future> fetchJobTemplateIndex({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateAddIndexSG, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = UKTemplateDetailEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 工作模板的添加提交 Future addJobTemplateSubmit({ required String jobTitle, List? certificate, List? vehicle, String? note, String? desc, CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title'] = jobTitle; if (certificate != null && certificate.isNotEmpty) { params['certificate[]'] = certificate; } if (vehicle != null && vehicle.isNotEmpty) { params['vehicle[]'] = vehicle; } if (Utils.isNotEmpty(note)) { params['note'] = note ?? ""; } if (Utils.isNotEmpty(desc)) { params['description'] = desc ?? ""; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateAddSubmitSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { return result.convert(); } return result.convert(); } /// 用工模版中的详情 Future> fetchJobTemplateDetail({ required String? templateId, CancelToken? cancelToken, }) async { Map params = {}; params['template_id'] = templateId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateEditIndexSG, params: params, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = UKTemplateDetailEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 工作模板的编辑提交 Future editJobTemplateSubmit({ required String templateId, required String jobTitle, List? certificate, List? vehicle, String? note, String? desc, CancelToken? cancelToken, }) async { //参数 Map params = {}; params['job_title'] = jobTitle; params['template_id'] = templateId; if (certificate != null && certificate.isNotEmpty) { params['certificate[]'] = certificate; } if (vehicle != null && vehicle.isNotEmpty) { params['vehicle[]'] = vehicle; } if (Utils.isNotEmpty(note)) { params['note'] = note ?? ""; } if (Utils.isNotEmpty(desc)) { params['description'] = desc ?? ""; } final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateEditSubmitSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { return result.convert(); } return result.convert(); } ///工作模板的删除 Future deleteJobTemplate({ required String? templateId, CancelToken? cancelToken, }) async { //参数 Map params = {}; params['template_id'] = templateId ?? ""; final result = await httpProvider.requestNetResult( ApiConstants.apiJobTemplateDeleteSG, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { return result.convert(); } return result.convert(); } /// 添加用工请求发布 Future addLabourRequestSubmit({ required String? templateId, required String? jobDate, required String? startTime, required String? endTime, required String? departmentId, required String? needNum, required String? salaryBy, String? amount, String? repeatDate, CancelToken? cancelToken, }) async { //参数 Map params = {}; params['template_id'] = templateId ?? ""; params['job_date'] = jobDate ?? ""; params['start_time'] = startTime ?? ""; params['end_time'] = endTime ?? ""; params['need_num'] = needNum ?? ""; params['salary_by'] = salaryBy ?? ""; if (!Utils.isEmpty(departmentId)) { params["co_department_id"] = departmentId!; } if (!Utils.isEmpty(amount)) { params["amount"] = amount!; } if (!Utils.isEmpty(repeatDate)) { params["select"] = repeatDate!; } final result = await httpProvider.requestNetResult( ApiConstants.apiLabourRequestAddSubmit, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); //根据返回的结果,封装原始数据为Bean/Entity对象 if (result.isSuccess) { //重新赋值data或list return result.convert(); } return result.convert(); } }