uk_job_repository.dart 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. import 'package:domain/entity/response/u_k_template_detail_entity.dart';
  2. import 'package:domain/entity/response/u_k_template_entity.dart';
  3. import 'package:get/get.dart';
  4. import 'package:plugin_platform/http/http_provider.dart';
  5. import 'package:plugin_platform/http/http_result.dart';
  6. import 'package:plugin_platform/platform_export.dart';
  7. import 'package:shared/utils/util.dart';
  8. import '../constants/api_constants.dart';
  9. /// UK工作相关数据仓库
  10. class UKJobRepository extends GetxService {
  11. HttpProvider httpProvider;
  12. UKJobRepository({required this.httpProvider});
  13. /// 用工模版中的工作标题列表
  14. Future<HttpResult<UKTemplateEntity>> fetchJobTemplateList(
  15. String? keyword, {
  16. required int curPage,
  17. CancelToken? cancelToken,
  18. }) async {
  19. //参数
  20. Map<String, String> params = {};
  21. params["cur_page"] = curPage.toString();
  22. params["page_size"] = "10";
  23. if (!Utils.isEmpty(keyword)) {
  24. params["job_title"] = keyword!;
  25. }
  26. final result = await httpProvider.requestNetResult(
  27. ApiConstants.apiJobTemplateListSG,
  28. params: params,
  29. cancelToken: cancelToken,
  30. );
  31. if (result.isSuccess) {
  32. final json = result.getDataJson();
  33. var data = UKTemplateEntity.fromJson(json!);
  34. return result.convert<UKTemplateEntity>(data: data);
  35. }
  36. return result.convert();
  37. }
  38. /// 用工模版中的添加选项
  39. Future<HttpResult<UKTemplateDetailEntity>> fetchJobTemplateIndex({
  40. CancelToken? cancelToken,
  41. }) async {
  42. final result = await httpProvider.requestNetResult(
  43. ApiConstants.apiJobTemplateAddIndexSG,
  44. isShowLoadingDialog: true,
  45. cancelToken: cancelToken,
  46. );
  47. if (result.isSuccess) {
  48. final json = result.getDataJson();
  49. var data = UKTemplateDetailEntity.fromJson(json!);
  50. return result.convert<UKTemplateDetailEntity>(data: data);
  51. }
  52. return result.convert();
  53. }
  54. /// 工作模板的添加提交
  55. Future<HttpResult> addJobTemplateSubmit({
  56. required String jobTitle,
  57. List<String>? certificate,
  58. List<String>? vehicle,
  59. String? note,
  60. String? desc,
  61. CancelToken? cancelToken,
  62. }) async {
  63. //参数
  64. Map<String, dynamic> params = {};
  65. params['job_title'] = jobTitle;
  66. if (certificate != null && certificate.isNotEmpty) {
  67. params['certificate[]'] = certificate;
  68. }
  69. if (vehicle != null && vehicle.isNotEmpty) {
  70. params['vehicle[]'] = vehicle;
  71. }
  72. if (Utils.isNotEmpty(note)) {
  73. params['note'] = note ?? "";
  74. }
  75. if (Utils.isNotEmpty(desc)) {
  76. params['description'] = desc ?? "";
  77. }
  78. final result = await httpProvider.requestNetResult(
  79. ApiConstants.apiJobTemplateAddSubmitSG,
  80. method: HttpMethod.POST,
  81. params: params,
  82. networkDebounce: true,
  83. isShowLoadingDialog: true,
  84. cancelToken: cancelToken,
  85. );
  86. if (result.isSuccess) {
  87. return result.convert();
  88. }
  89. return result.convert();
  90. }
  91. /// 用工模版中的详情
  92. Future<HttpResult<UKTemplateDetailEntity>> fetchJobTemplateDetail({
  93. required String? templateId,
  94. CancelToken? cancelToken,
  95. }) async {
  96. Map<String, String> params = {};
  97. params['template_id'] = templateId ?? "";
  98. final result = await httpProvider.requestNetResult(
  99. ApiConstants.apiJobTemplateEditIndexSG,
  100. params: params,
  101. isShowLoadingDialog: true,
  102. cancelToken: cancelToken,
  103. );
  104. if (result.isSuccess) {
  105. final json = result.getDataJson();
  106. var data = UKTemplateDetailEntity.fromJson(json!);
  107. return result.convert<UKTemplateDetailEntity>(data: data);
  108. }
  109. return result.convert();
  110. }
  111. /// 工作模板的编辑提交
  112. Future<HttpResult> editJobTemplateSubmit({
  113. required String templateId,
  114. required String jobTitle,
  115. List<String>? certificate,
  116. List<String>? vehicle,
  117. String? note,
  118. String? desc,
  119. CancelToken? cancelToken,
  120. }) async {
  121. //参数
  122. Map<String, dynamic> params = {};
  123. params['job_title'] = jobTitle;
  124. params['template_id'] = templateId;
  125. if (certificate != null && certificate.isNotEmpty) {
  126. params['certificate[]'] = certificate;
  127. }
  128. if (vehicle != null && vehicle.isNotEmpty) {
  129. params['vehicle[]'] = vehicle;
  130. }
  131. if (Utils.isNotEmpty(note)) {
  132. params['note'] = note ?? "";
  133. }
  134. if (Utils.isNotEmpty(desc)) {
  135. params['description'] = desc ?? "";
  136. }
  137. final result = await httpProvider.requestNetResult(
  138. ApiConstants.apiJobTemplateEditSubmitSG,
  139. method: HttpMethod.POST,
  140. params: params,
  141. networkDebounce: true,
  142. isShowLoadingDialog: true,
  143. cancelToken: cancelToken,
  144. );
  145. if (result.isSuccess) {
  146. return result.convert();
  147. }
  148. return result.convert();
  149. }
  150. ///工作模板的删除
  151. Future<HttpResult> deleteJobTemplate({
  152. required String? templateId,
  153. CancelToken? cancelToken,
  154. }) async {
  155. //参数
  156. Map<String, String> params = {};
  157. params['template_id'] = templateId ?? "";
  158. final result = await httpProvider.requestNetResult(
  159. ApiConstants.apiJobTemplateDeleteSG,
  160. method: HttpMethod.POST,
  161. params: params,
  162. networkDebounce: true,
  163. isShowLoadingDialog: true,
  164. cancelToken: cancelToken,
  165. );
  166. if (result.isSuccess) {
  167. return result.convert();
  168. }
  169. return result.convert();
  170. }
  171. /// 添加用工请求发布
  172. Future<HttpResult> addLabourRequestSubmit({
  173. required String? templateId,
  174. required String? jobDate,
  175. required String? startTime,
  176. required String? endTime,
  177. required String? departmentId,
  178. required String? needNum,
  179. required String? salaryBy,
  180. String? amount,
  181. String? repeatDate,
  182. CancelToken? cancelToken,
  183. }) async {
  184. //参数
  185. Map<String, String> params = {};
  186. params['template_id'] = templateId ?? "";
  187. params['job_date'] = jobDate ?? "";
  188. params['start_time'] = startTime ?? "";
  189. params['end_time'] = endTime ?? "";
  190. params['need_num'] = needNum ?? "";
  191. params['salary_by'] = salaryBy ?? "";
  192. if (!Utils.isEmpty(departmentId)) {
  193. params["co_department_id"] = departmentId!;
  194. }
  195. if (!Utils.isEmpty(amount)) {
  196. params["amount"] = amount!;
  197. }
  198. if (!Utils.isEmpty(repeatDate)) {
  199. params["select"] = repeatDate!;
  200. }
  201. final result = await httpProvider.requestNetResult(
  202. ApiConstants.apiLabourRequestAddSubmit,
  203. method: HttpMethod.POST,
  204. params: params,
  205. networkDebounce: true,
  206. isShowLoadingDialog: true,
  207. cancelToken: cancelToken,
  208. );
  209. //根据返回的结果,封装原始数据为Bean/Entity对象
  210. if (result.isSuccess) {
  211. //重新赋值data或list
  212. return result.convert();
  213. }
  214. return result.convert();
  215. }
  216. }