uk_job_repository.dart 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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. }