sg_agency_repository.dart 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057
  1. import 'package:domain/entity/response/agency_detail_entity.dart';
  2. import 'package:domain/entity/response/agency_option_entity.dart';
  3. import 'package:domain/entity/response/agency_table_entity.dart';
  4. import 'package:domain/entity/response/contract_detail_entity.dart';
  5. import 'package:domain/entity/response/contract_option_entity.dart';
  6. import 'package:domain/entity/response/contract_position_add_option_entity.dart';
  7. import 'package:domain/entity/response/contract_position_option_entity.dart';
  8. import 'package:domain/entity/response/contract_position_rate_detail_entity.dart';
  9. import 'package:domain/entity/response/contract_position_rate_specific_option_entity.dart';
  10. import 'package:domain/entity/response/contract_position_rate_table_entity.dart';
  11. import 'package:domain/entity/response/contract_position_table_entity.dart';
  12. import 'package:domain/entity/response/contract_table_entity.dart';
  13. import 'package:domain/entity/response/position_table_entity.dart';
  14. import 'package:get/get.dart';
  15. import 'package:plugin_platform/http/http_provider.dart';
  16. import 'package:plugin_platform/http/http_result.dart';
  17. import 'package:plugin_platform/platform_export.dart';
  18. import 'package:shared/utils/util.dart';
  19. import '../constants/api_constants.dart';
  20. /// SG的中介相关数据仓库
  21. class SGAgencyRepository extends GetxService {
  22. HttpProvider httpProvider;
  23. SGAgencyRepository({required this.httpProvider});
  24. /// 获取中介列表选项
  25. Future<HttpResult<AgencyOptionEntity>> fetchAgencyOption({
  26. CancelToken? cancelToken,
  27. }) async {
  28. final result = await httpProvider.requestNetResult(
  29. ApiConstants.apiAgencyOption,
  30. );
  31. if (result.isSuccess) {
  32. //重新赋值data或list
  33. final json = result.getDataJson();
  34. var data = AgencyOptionEntity.fromJson(json!);
  35. //重新赋值data或list
  36. return result.convert<AgencyOptionEntity>(data: data);
  37. }
  38. return result.convert();
  39. }
  40. /// 获取中介列表Table
  41. Future<HttpResult<AgencyTableEntity>> fetchAgencyTable({
  42. required int curPage,
  43. String? keyword,
  44. String? status,
  45. CancelToken? cancelToken,
  46. }) async {
  47. //参数
  48. Map<String, String> params = {};
  49. params["cur_page"] = curPage.toString();
  50. params["page_size"] = "10";
  51. if (Utils.isNotEmpty(keyword)) {
  52. params["keyword"] = keyword!;
  53. }
  54. if (Utils.isNotEmpty(status)) {
  55. params["status"] = status!;
  56. }
  57. final result = await httpProvider.requestNetResult(
  58. ApiConstants.apiAgencyTable,
  59. params: params,
  60. cancelToken: cancelToken,
  61. );
  62. if (result.isSuccess) {
  63. //重新赋值data或list
  64. final json = result.getDataJson();
  65. var data = AgencyTableEntity.fromJson(json!);
  66. //重新赋值data或list
  67. return result.convert<AgencyTableEntity>(data: data);
  68. }
  69. return result.convert();
  70. }
  71. /// 根据ID获取主列表的Item数据,用于刷新Item
  72. Future<HttpResult<AgencyTableEntity>> fetchAgencyTableByIds(
  73. String? ids, {
  74. CancelToken? cancelToken,
  75. }) async {
  76. //参数
  77. Map<String, String> params = {};
  78. params["cur_page"] = "1";
  79. params["page_size"] = "9999";
  80. if (!Utils.isEmpty(ids)) {
  81. params["pivot_id"] = ids!;
  82. }
  83. final result = await httpProvider.requestNetResult(
  84. ApiConstants.apiAgencyTable,
  85. params: params,
  86. isShowLoadingDialog: true,
  87. cancelToken: cancelToken,
  88. );
  89. //根据返回的结果,封装原始数据为Bean/Entity对象
  90. if (result.isSuccess) {
  91. //重新赋值data或list
  92. final json = result.getDataJson();
  93. var data = AgencyTableEntity.fromJson(json!);
  94. //重新赋值data或list
  95. return result.convert<AgencyTableEntity>(data: data);
  96. }
  97. return result.convert();
  98. }
  99. /// 删除中介
  100. Future<HttpResult> deleteAgencySubmit(
  101. String? pivotId, {
  102. CancelToken? cancelToken,
  103. }) async {
  104. //参数
  105. Map<String, String> params = {};
  106. params['pivot_id'] = pivotId ?? "";
  107. final result = await httpProvider.requestNetResult(
  108. ApiConstants.apiAgencyDelete,
  109. method: HttpMethod.POST,
  110. params: params,
  111. networkDebounce: true,
  112. isShowLoadingDialog: true,
  113. cancelToken: cancelToken,
  114. );
  115. if (result.isSuccess) {
  116. //重新赋值data或list
  117. return result.convert();
  118. }
  119. return result.convert();
  120. }
  121. /// 添加中介
  122. Future<HttpResult> addAgencySubmit({
  123. required String? agencyName,
  124. required String? acraNo,
  125. String? contactPerson,
  126. String? address,
  127. String? contactNo,
  128. String? contactEmail,
  129. CancelToken? cancelToken,
  130. }) async {
  131. //参数
  132. Map<String, String> params = {};
  133. params['agency_name'] = agencyName ?? "";
  134. params['acra_no'] = acraNo ?? "";
  135. if (!Utils.isEmpty(contactPerson)) {
  136. params["contact_person"] = contactPerson!;
  137. }
  138. if (!Utils.isEmpty(address)) {
  139. params["address"] = address!;
  140. }
  141. if (!Utils.isEmpty(contactNo)) {
  142. params["contact_no"] = contactNo!;
  143. }
  144. if (!Utils.isEmpty(contactEmail)) {
  145. params["contact_email"] = contactEmail!;
  146. }
  147. final result = await httpProvider.requestNetResult(
  148. ApiConstants.apiAgencyAdd,
  149. method: HttpMethod.POST,
  150. params: params,
  151. networkDebounce: true,
  152. isShowLoadingDialog: true,
  153. cancelToken: cancelToken,
  154. );
  155. if (result.isSuccess) {
  156. //重新赋值data或list
  157. return result.convert();
  158. }
  159. return result.convert();
  160. }
  161. /// 编辑中介
  162. Future<HttpResult> editAgencySubmit({
  163. required String? pivotId,
  164. required String? agencyName,
  165. required String? acraNo,
  166. String? contactPerson,
  167. String? address,
  168. String? contactNo,
  169. String? contactEmail,
  170. String? status,
  171. CancelToken? cancelToken,
  172. }) async {
  173. //参数
  174. Map<String, String> params = {};
  175. params['pivot_id'] = pivotId ?? "";
  176. params['agency_name'] = agencyName ?? "";
  177. params['acra_no'] = acraNo ?? "";
  178. if (!Utils.isEmpty(contactPerson)) {
  179. params["contact_person"] = contactPerson!;
  180. }
  181. if (!Utils.isEmpty(address)) {
  182. params["address"] = address!;
  183. }
  184. if (!Utils.isEmpty(contactNo)) {
  185. params["contact_no"] = contactNo!;
  186. }
  187. if (!Utils.isEmpty(contactEmail)) {
  188. params["contact_email"] = contactEmail!;
  189. }
  190. if (!Utils.isEmpty(status)) {
  191. params["status"] = status!;
  192. }
  193. final result = await httpProvider.requestNetResult(
  194. ApiConstants.apiAgencyEdit,
  195. method: HttpMethod.POST,
  196. params: params,
  197. networkDebounce: true,
  198. isShowLoadingDialog: true,
  199. cancelToken: cancelToken,
  200. );
  201. if (result.isSuccess) {
  202. //重新赋值data或list
  203. return result.convert();
  204. }
  205. return result.convert();
  206. }
  207. /// 获取中介的编辑详情
  208. Future<HttpResult<AgencyDetailEntity>> fetchAgencyEditDetail({
  209. required String? pivotId,
  210. CancelToken? cancelToken,
  211. }) async {
  212. //参数
  213. Map<String, String> params = {};
  214. if (!Utils.isEmpty(pivotId)) {
  215. params["pivot_id"] = pivotId!;
  216. }
  217. final result = await httpProvider.requestNetResult(
  218. ApiConstants.apiAgencyDetail,
  219. params: params,
  220. isShowLoadingDialog: true,
  221. cancelToken: cancelToken,
  222. );
  223. if (result.isSuccess) {
  224. //重新赋值data或list
  225. final json = result.getDataJson();
  226. var data = AgencyDetailEntity.fromJson(json!);
  227. //重新赋值data或list
  228. return result.convert<AgencyDetailEntity>(data: data);
  229. }
  230. return result.convert();
  231. }
  232. /// 获取中介职位的列表
  233. Future<HttpResult<PositionTableEntity>> fetchPositionTable({
  234. required int curPage,
  235. String? keyword,
  236. CancelToken? cancelToken,
  237. }) async {
  238. //参数
  239. Map<String, String> params = {};
  240. params["cur_page"] = curPage.toString();
  241. params["page_size"] = "10";
  242. if (Utils.isNotEmpty(keyword)) {
  243. params["keyword"] = keyword!;
  244. }
  245. final result = await httpProvider.requestNetResult(
  246. ApiConstants.apiAgencyPositionTable,
  247. params: params,
  248. cancelToken: cancelToken,
  249. );
  250. if (result.isSuccess) {
  251. //重新赋值data或list
  252. final json = result.getDataJson();
  253. var data = PositionTableEntity.fromJson(json!);
  254. //重新赋值data或list
  255. return result.convert<PositionTableEntity>(data: data);
  256. }
  257. return result.convert();
  258. }
  259. /// 根据ID获取主列表的Item数据,用于刷新Item
  260. Future<HttpResult<PositionTableEntity>> fetchPositionTableByIds(
  261. String? ids, {
  262. CancelToken? cancelToken,
  263. }) async {
  264. //参数
  265. Map<String, String> params = {};
  266. params["cur_page"] = "1";
  267. params["page_size"] = "9999";
  268. if (!Utils.isEmpty(ids)) {
  269. params["id"] = ids!;
  270. }
  271. final result = await httpProvider.requestNetResult(
  272. ApiConstants.apiAgencyPositionTable,
  273. params: params,
  274. isShowLoadingDialog: true,
  275. cancelToken: cancelToken,
  276. );
  277. //根据返回的结果,封装原始数据为Bean/Entity对象
  278. if (result.isSuccess) {
  279. //重新赋值data或list
  280. final json = result.getDataJson();
  281. var data = PositionTableEntity.fromJson(json!);
  282. //重新赋值data或list
  283. return result.convert<PositionTableEntity>(data: data);
  284. }
  285. return result.convert();
  286. }
  287. /// 添加职位
  288. Future<HttpResult> addPositionSubmit({
  289. required String? name,
  290. CancelToken? cancelToken,
  291. }) async {
  292. //参数
  293. Map<String, String> params = {};
  294. params['name'] = name ?? "";
  295. final result = await httpProvider.requestNetResult(
  296. ApiConstants.apiAgencyPositionAdd,
  297. method: HttpMethod.POST,
  298. params: params,
  299. networkDebounce: true,
  300. isShowLoadingDialog: true,
  301. cancelToken: cancelToken,
  302. );
  303. if (result.isSuccess) {
  304. //重新赋值data或list
  305. return result.convert();
  306. }
  307. return result.convert();
  308. }
  309. /// 编辑职位
  310. Future<HttpResult> editPositionSubmit({
  311. required String? positionId,
  312. required String? name,
  313. CancelToken? cancelToken,
  314. }) async {
  315. //参数
  316. Map<String, String> params = {};
  317. params['position_id'] = positionId ?? "";
  318. params['name'] = name ?? "";
  319. final result = await httpProvider.requestNetResult(
  320. ApiConstants.apiAgencyPositionEdit,
  321. method: HttpMethod.POST,
  322. params: params,
  323. networkDebounce: true,
  324. isShowLoadingDialog: true,
  325. cancelToken: cancelToken,
  326. );
  327. if (result.isSuccess) {
  328. //重新赋值data或list
  329. return result.convert();
  330. }
  331. return result.convert();
  332. }
  333. /// 删除职位
  334. Future<HttpResult> deletePositionSubmit({
  335. required String? positionId,
  336. CancelToken? cancelToken,
  337. }) async {
  338. //参数
  339. Map<String, String> params = {};
  340. params['position_id'] = positionId ?? "";
  341. final result = await httpProvider.requestNetResult(
  342. ApiConstants.apiAgencyPositionDelete,
  343. method: HttpMethod.POST,
  344. params: params,
  345. networkDebounce: true,
  346. isShowLoadingDialog: true,
  347. cancelToken: cancelToken,
  348. );
  349. if (result.isSuccess) {
  350. //重新赋值data或list
  351. return result.convert();
  352. }
  353. return result.convert();
  354. }
  355. /// 获取中介合同列表选项
  356. Future<HttpResult<ContractOptionEntity>> fetchContractOption({
  357. CancelToken? cancelToken,
  358. }) async {
  359. final result = await httpProvider.requestNetResult(
  360. ApiConstants.apiContractOption,
  361. );
  362. if (result.isSuccess) {
  363. //重新赋值data或list
  364. final json = result.getDataJson();
  365. var data = ContractOptionEntity.fromJson(json!);
  366. //重新赋值data或list
  367. return result.convert<ContractOptionEntity>(data: data);
  368. }
  369. return result.convert();
  370. }
  371. /// 获取中介合同列表Table
  372. Future<HttpResult<ContractTableEntity>> fetchContractTable({
  373. required int curPage,
  374. String? agencyId,
  375. String? status,
  376. CancelToken? cancelToken,
  377. }) async {
  378. //参数
  379. Map<String, String> params = {};
  380. params["cur_page"] = curPage.toString();
  381. params["page_size"] = "10";
  382. if (Utils.isNotEmpty(agencyId)) {
  383. params["agency_id"] = agencyId!;
  384. }
  385. if (Utils.isNotEmpty(status)) {
  386. params["status"] = status!;
  387. }
  388. final result = await httpProvider.requestNetResult(
  389. ApiConstants.apiContractTable,
  390. params: params,
  391. cancelToken: cancelToken,
  392. );
  393. if (result.isSuccess) {
  394. //重新赋值data或list
  395. final json = result.getDataJson();
  396. var data = ContractTableEntity.fromJson(json!);
  397. //重新赋值data或list
  398. return result.convert<ContractTableEntity>(data: data);
  399. }
  400. return result.convert();
  401. }
  402. /// 根据ID获取主列表的Item数据,用于刷新Item
  403. Future<HttpResult<ContractTableEntity>> fetchContractTableByIds(
  404. String? ids, {
  405. CancelToken? cancelToken,
  406. }) async {
  407. //参数
  408. Map<String, String> params = {};
  409. params["cur_page"] = "1";
  410. params["page_size"] = "9999";
  411. if (!Utils.isEmpty(ids)) {
  412. params["contract_id"] = ids!;
  413. }
  414. final result = await httpProvider.requestNetResult(
  415. ApiConstants.apiContractTable,
  416. params: params,
  417. isShowLoadingDialog: true,
  418. cancelToken: cancelToken,
  419. );
  420. //根据返回的结果,封装原始数据为Bean/Entity对象
  421. if (result.isSuccess) {
  422. //重新赋值data或list
  423. final json = result.getDataJson();
  424. var data = ContractTableEntity.fromJson(json!);
  425. //重新赋值data或list
  426. return result.convert<ContractTableEntity>(data: data);
  427. }
  428. return result.convert();
  429. }
  430. /// 获取中介的合同添加详情
  431. Future<HttpResult<ContractDetailEntity>> fetchContractAddOption({
  432. CancelToken? cancelToken,
  433. }) async {
  434. final result = await httpProvider.requestNetResult(
  435. ApiConstants.apiContractAddOption,
  436. isShowLoadingDialog: true,
  437. cancelToken: cancelToken,
  438. );
  439. if (result.isSuccess) {
  440. //重新赋值data或list
  441. final json = result.getDataJson();
  442. var data = ContractDetailEntity.fromJson(json!);
  443. //重新赋值data或list
  444. return result.convert<ContractDetailEntity>(data: data);
  445. }
  446. return result.convert();
  447. }
  448. /// 获取中介的合同编辑详情
  449. Future<HttpResult<ContractDetailEntity>> fetchContractEditDetail({
  450. required String? contractId,
  451. CancelToken? cancelToken,
  452. }) async {
  453. //参数
  454. Map<String, String> params = {};
  455. params["contract_id"] = contractId ?? "";
  456. final result = await httpProvider.requestNetResult(
  457. ApiConstants.apiContractDetail,
  458. params: params,
  459. isShowLoadingDialog: true,
  460. cancelToken: cancelToken,
  461. );
  462. if (result.isSuccess) {
  463. //重新赋值data或list
  464. final json = result.getDataJson();
  465. var data = ContractDetailEntity.fromJson(json!);
  466. //重新赋值data或list
  467. return result.convert<ContractDetailEntity>(data: data);
  468. }
  469. return result.convert();
  470. }
  471. /// 添加合同
  472. Future<HttpResult> addContractSubmit({
  473. required String? agencyId,
  474. required String? startDate,
  475. required String? endDate,
  476. List<String>? paths,
  477. CancelToken? cancelToken,
  478. }) async {
  479. //参数
  480. Map<String, String> params = {};
  481. params['agency_id'] = agencyId ?? "";
  482. params['start_date'] = startDate ?? "";
  483. params['end_date'] = endDate ?? "";
  484. //文件
  485. Map<String, String> fileParams = {};
  486. if (paths != null && paths.isNotEmpty) {
  487. fileParams['file'] = paths[0];
  488. }
  489. final result = await httpProvider.requestNetResult(
  490. ApiConstants.apiContractAddSubmit,
  491. method: HttpMethod.POST,
  492. params: params,
  493. paths: fileParams,
  494. networkDebounce: true,
  495. isShowLoadingDialog: true,
  496. cancelToken: cancelToken,
  497. );
  498. if (result.isSuccess) {
  499. //重新赋值data或list
  500. return result.convert();
  501. }
  502. return result.convert();
  503. }
  504. /// 编辑合同
  505. Future<HttpResult> editContractSubmit({
  506. required String? contractId,
  507. required String? agencyId,
  508. required String? startDate,
  509. required String? endDate,
  510. List<String>? paths,
  511. CancelToken? cancelToken,
  512. }) async {
  513. //参数
  514. Map<String, String> params = {};
  515. params['contract_id'] = contractId ?? "";
  516. params['agency_id'] = agencyId ?? "";
  517. params['start_date'] = startDate ?? "";
  518. params['end_date'] = endDate ?? "";
  519. //文件
  520. Map<String, String> fileParams = {};
  521. if (paths != null && paths.isNotEmpty) {
  522. fileParams['file'] = paths[0];
  523. }
  524. final result = await httpProvider.requestNetResult(
  525. ApiConstants.apiContractEditSubmit,
  526. method: HttpMethod.POST,
  527. params: params,
  528. paths: fileParams,
  529. networkDebounce: true,
  530. isShowLoadingDialog: true,
  531. cancelToken: cancelToken,
  532. );
  533. if (result.isSuccess) {
  534. //重新赋值data或list
  535. return result.convert();
  536. }
  537. return result.convert();
  538. }
  539. /// Renew合同
  540. Future<HttpResult> renewContractSubmit({
  541. required String? contractId,
  542. required String? agencyId,
  543. required String? startDate,
  544. required String? endDate,
  545. List<String>? paths,
  546. CancelToken? cancelToken,
  547. }) async {
  548. //参数
  549. Map<String, String> params = {};
  550. params['contract_id'] = contractId ?? "";
  551. params['agency_id'] = agencyId ?? "";
  552. params['start_date'] = startDate ?? "";
  553. params['end_date'] = endDate ?? "";
  554. //文件
  555. Map<String, String> fileParams = {};
  556. if (paths != null && paths.isNotEmpty) {
  557. fileParams['file'] = paths[0];
  558. }
  559. final result = await httpProvider.requestNetResult(
  560. ApiConstants.apiContractRenew,
  561. method: HttpMethod.POST,
  562. params: params,
  563. paths: fileParams,
  564. networkDebounce: true,
  565. isShowLoadingDialog: true,
  566. cancelToken: cancelToken,
  567. );
  568. if (result.isSuccess) {
  569. //重新赋值data或list
  570. return result.convert();
  571. }
  572. return result.convert();
  573. }
  574. /// 合同关联职位 Option
  575. Future<HttpResult<ContractPositionOptionEntity>> fetchContractPositionOption({
  576. required String? contractId,
  577. CancelToken? cancelToken,
  578. }) async {
  579. //参数
  580. Map<String, String> params = {};
  581. params["contract_id"] = contractId ?? "";
  582. final result = await httpProvider.requestNetResult(
  583. ApiConstants.apiContractPositionOption,
  584. params: params,
  585. cancelToken: cancelToken,
  586. );
  587. if (result.isSuccess) {
  588. //重新赋值data或list
  589. final json = result.getDataJson();
  590. var data = ContractPositionOptionEntity.fromJson(json!);
  591. //重新赋值data或list
  592. return result.convert<ContractPositionOptionEntity>(data: data);
  593. }
  594. return result.convert();
  595. }
  596. /// 获取中介合同列表Table
  597. Future<HttpResult<ContractPositionTableEntity>> fetchContractPositionTable({
  598. required int curPage,
  599. required String? contractId,
  600. String? positionId,
  601. CancelToken? cancelToken,
  602. }) async {
  603. //参数
  604. Map<String, String> params = {};
  605. params["cur_page"] = curPage.toString();
  606. params["page_size"] = "10";
  607. params["contract_id"] = contractId ?? "";
  608. if (Utils.isNotEmpty(positionId)) {
  609. params["position_id"] = positionId!;
  610. }
  611. final result = await httpProvider.requestNetResult(
  612. ApiConstants.apiContractPositionTable,
  613. params: params,
  614. cancelToken: cancelToken,
  615. );
  616. if (result.isSuccess) {
  617. //重新赋值data或list
  618. final json = result.getDataJson();
  619. var data = ContractPositionTableEntity.fromJson(json!);
  620. //重新赋值data或list
  621. return result.convert<ContractPositionTableEntity>(data: data);
  622. }
  623. return result.convert();
  624. }
  625. /// 合同关联职位 添加Option
  626. Future<HttpResult<ContractPositionAddOptionEntity>> fetchContractPositionAddOption({
  627. required String? contractId,
  628. CancelToken? cancelToken,
  629. }) async {
  630. //参数
  631. Map<String, String> params = {};
  632. params["contract_id"] = contractId ?? "";
  633. final result = await httpProvider.requestNetResult(
  634. ApiConstants.apiContractPositionAddOption,
  635. params: params,
  636. isShowLoadingDialog: true,
  637. cancelToken: cancelToken,
  638. );
  639. if (result.isSuccess) {
  640. //重新赋值data或list
  641. final json = result.getDataJson();
  642. var data = ContractPositionAddOptionEntity.fromJson(json!);
  643. //重新赋值data或list
  644. return result.convert<ContractPositionAddOptionEntity>(data: data);
  645. }
  646. return result.convert();
  647. }
  648. /// 合同关联职位 添加Submit
  649. Future<HttpResult> addContractPositionSubmit({
  650. required String? contractId,
  651. required String? positionId,
  652. String? type_1,
  653. String? type_2,
  654. String? type_3,
  655. String? type_7,
  656. String? type_8,
  657. String? type_9,
  658. String? type_10,
  659. String? type_11,
  660. String? type_12,
  661. String? type_13,
  662. String? type_20,
  663. String? type_21,
  664. CancelToken? cancelToken,
  665. }) async {
  666. //参数
  667. Map<String, String> params = {};
  668. params['contract_id'] = contractId ?? "";
  669. params['position_id'] = positionId ?? "";
  670. if (Utils.isNotEmpty(type_1)) {
  671. params['type_1'] = type_1!;
  672. }
  673. if (Utils.isNotEmpty(type_2)) {
  674. params['type_2'] = type_2!;
  675. }
  676. if (Utils.isNotEmpty(type_3)) {
  677. params['type_3'] = type_3!;
  678. }
  679. if (Utils.isNotEmpty(type_7)) {
  680. params['type_7'] = type_7!;
  681. }
  682. if (Utils.isNotEmpty(type_8)) {
  683. params['type_8'] = type_8!;
  684. }
  685. if (Utils.isNotEmpty(type_9)) {
  686. params['type_9'] = type_9!;
  687. }
  688. if (Utils.isNotEmpty(type_10)) {
  689. params['type_10'] = type_10!;
  690. }
  691. if (Utils.isNotEmpty(type_11)) {
  692. params['type_11'] = type_11!;
  693. }
  694. if (Utils.isNotEmpty(type_12)) {
  695. params['type_12'] = type_12!;
  696. }
  697. if (Utils.isNotEmpty(type_13)) {
  698. params['type_13'] = type_13!;
  699. }
  700. if (Utils.isNotEmpty(type_20)) {
  701. params['type_20'] = type_20!;
  702. }
  703. if (Utils.isNotEmpty(type_21)) {
  704. params['type_21'] = type_21!;
  705. }
  706. final result = await httpProvider.requestNetResult(
  707. ApiConstants.apiContractPositionAddSubmit,
  708. method: HttpMethod.POST,
  709. params: params,
  710. networkDebounce: true,
  711. isShowLoadingDialog: true,
  712. cancelToken: cancelToken,
  713. );
  714. if (result.isSuccess) {
  715. //重新赋值data或list
  716. return result.convert();
  717. }
  718. return result.convert();
  719. }
  720. /// 合同关联职位 编辑详情
  721. Future<HttpResult<ContractPositionRateDetailEntity>> fetchContractPositionRateDetail({
  722. required String? contractId,
  723. required String? positionId,
  724. CancelToken? cancelToken,
  725. }) async {
  726. //参数
  727. Map<String, String> params = {};
  728. params["contract_id"] = contractId ?? "";
  729. params["position_id"] = positionId ?? "";
  730. final result = await httpProvider.requestNetResult(
  731. ApiConstants.apiContractPositionRateDetail,
  732. params: params,
  733. isShowLoadingDialog: true,
  734. cancelToken: cancelToken,
  735. );
  736. if (result.isSuccess) {
  737. //重新赋值data或list
  738. final json = result.getDataJson();
  739. var data = ContractPositionRateDetailEntity.fromJson(json!);
  740. //重新赋值data或list
  741. return result.convert<ContractPositionRateDetailEntity>(data: data);
  742. }
  743. return result.convert();
  744. }
  745. /// 合同关联职位 费率编辑的Submit
  746. Future<HttpResult> editContractPositionRateSubmit({
  747. required String? contractId,
  748. required String? positionId,
  749. String? type_1,
  750. String? type_2,
  751. String? type_3,
  752. String? type_7,
  753. String? type_8,
  754. String? type_9,
  755. String? type_10,
  756. String? type_11,
  757. String? type_12,
  758. String? type_13,
  759. String? type_20,
  760. String? type_21,
  761. CancelToken? cancelToken,
  762. }) async {
  763. //参数
  764. Map<String, String> params = {};
  765. params['contract_id'] = contractId ?? "";
  766. params['position_id'] = positionId ?? "";
  767. if (Utils.isNotEmpty(type_1)) {
  768. params['type_1'] = type_1!;
  769. }
  770. if (Utils.isNotEmpty(type_2)) {
  771. params['type_2'] = type_2!;
  772. }
  773. if (Utils.isNotEmpty(type_3)) {
  774. params['type_3'] = type_3!;
  775. }
  776. if (Utils.isNotEmpty(type_7)) {
  777. params['type_7'] = type_7!;
  778. }
  779. if (Utils.isNotEmpty(type_8)) {
  780. params['type_8'] = type_8!;
  781. }
  782. if (Utils.isNotEmpty(type_9)) {
  783. params['type_9'] = type_9!;
  784. }
  785. if (Utils.isNotEmpty(type_10)) {
  786. params['type_10'] = type_10!;
  787. }
  788. if (Utils.isNotEmpty(type_11)) {
  789. params['type_11'] = type_11!;
  790. }
  791. if (Utils.isNotEmpty(type_12)) {
  792. params['type_12'] = type_12!;
  793. }
  794. if (Utils.isNotEmpty(type_13)) {
  795. params['type_13'] = type_13!;
  796. }
  797. if (Utils.isNotEmpty(type_20)) {
  798. params['type_20'] = type_20!;
  799. }
  800. if (Utils.isNotEmpty(type_21)) {
  801. params['type_21'] = type_21!;
  802. }
  803. final result = await httpProvider.requestNetResult(
  804. ApiConstants.apiContractPositionRateEditSubmit,
  805. method: HttpMethod.POST,
  806. params: params,
  807. networkDebounce: true,
  808. isShowLoadingDialog: true,
  809. cancelToken: cancelToken,
  810. );
  811. if (result.isSuccess) {
  812. //重新赋值data或list
  813. return result.convert();
  814. }
  815. return result.convert();
  816. }
  817. /// 获取中介合同的时薪列表Table
  818. Future<HttpResult<ContractPositionRateTableEntity>> fetchContractPositionRateTable({
  819. required int curPage,
  820. required String? contractId,
  821. required String? positionId,
  822. String? rateId,
  823. CancelToken? cancelToken,
  824. }) async {
  825. //参数
  826. Map<String, String> params = {};
  827. params["cur_page"] = curPage.toString();
  828. params["page_size"] = "20";
  829. params["contract_id"] = contractId ?? "";
  830. params["position_id"] = positionId ?? "";
  831. if (Utils.isNotEmpty(rateId)) {
  832. params["rate_id"] = rateId!;
  833. }
  834. final result = await httpProvider.requestNetResult(
  835. ApiConstants.apiContractRateTable,
  836. params: params,
  837. cancelToken: cancelToken,
  838. );
  839. if (result.isSuccess) {
  840. //重新赋值data或list
  841. final json = result.getDataJson();
  842. var data = ContractPositionRateTableEntity.fromJson(json!);
  843. //重新赋值data或list
  844. return result.convert<ContractPositionRateTableEntity>(data: data);
  845. }
  846. return result.convert();
  847. }
  848. /// 获取中介合同的时薪,指定日期Option
  849. Future<HttpResult<ContractPositionRateSpecificOptionEntity>> fetchContractPositionRateSpecificOption({
  850. required String? contractId,
  851. required String? positionId,
  852. CancelToken? cancelToken,
  853. }) async {
  854. //参数
  855. Map<String, String> params = {};
  856. params["contract_id"] = contractId ?? "";
  857. params["position_id"] = positionId ?? "";
  858. final result = await httpProvider.requestNetResult(
  859. ApiConstants.apiContractRateSpecificOption,
  860. params: params,
  861. isShowLoadingDialog: true,
  862. cancelToken: cancelToken,
  863. );
  864. if (result.isSuccess) {
  865. //重新赋值data或list
  866. final json = result.getDataJson();
  867. var data = ContractPositionRateSpecificOptionEntity.fromJson(json!);
  868. //重新赋值data或list
  869. return result.convert<ContractPositionRateSpecificOptionEntity>(data: data);
  870. }
  871. return result.convert();
  872. }
  873. /// 获取中介合同的时薪,指定日期添加
  874. Future<HttpResult> addContractPositionRateSpecificSubmit({
  875. required String? contractId,
  876. required String? positionId,
  877. required String? day,
  878. required String? amount,
  879. CancelToken? cancelToken,
  880. }) async {
  881. //参数
  882. Map<String, String> params = {};
  883. params['contract_id'] = contractId ?? "";
  884. params['position_id'] = positionId ?? "";
  885. params['special_day'] = day ?? "";
  886. params['amount'] = amount ?? "";
  887. final result = await httpProvider.requestNetResult(
  888. ApiConstants.apiContractRateSpecificAddSubmit,
  889. method: HttpMethod.POST,
  890. params: params,
  891. networkDebounce: true,
  892. isShowLoadingDialog: true,
  893. cancelToken: cancelToken,
  894. );
  895. if (result.isSuccess) {
  896. //重新赋值data或list
  897. return result.convert();
  898. }
  899. return result.convert();
  900. }
  901. /// 中介合同时薪 修改金额
  902. Future<HttpResult> editContractPositionRateAmountEdit({
  903. required String? rateId,
  904. required String? amount,
  905. CancelToken? cancelToken,
  906. }) async {
  907. //参数
  908. Map<String, String> params = {};
  909. params['rate_id'] = rateId ?? "";;
  910. params['amount'] = amount ?? "";
  911. final result = await httpProvider.requestNetResult(
  912. ApiConstants.apiContractRateAmountEdit,
  913. method: HttpMethod.POST,
  914. params: params,
  915. networkDebounce: true,
  916. isShowLoadingDialog: true,
  917. cancelToken: cancelToken,
  918. );
  919. if (result.isSuccess) {
  920. //重新赋值data或list
  921. return result.convert();
  922. }
  923. return result.convert();
  924. }
  925. /// 中介合同时薪 删除记录
  926. Future<HttpResult> deleteContractPositionRate({
  927. required String? rateId,
  928. CancelToken? cancelToken,
  929. }) async {
  930. //参数
  931. Map<String, String> params = {};
  932. params['rate_id'] = rateId ?? "";;
  933. final result = await httpProvider.requestNetResult(
  934. ApiConstants.apiContractRateDelete,
  935. method: HttpMethod.POST,
  936. params: params,
  937. networkDebounce: true,
  938. isShowLoadingDialog: true,
  939. cancelToken: cancelToken,
  940. );
  941. if (result.isSuccess) {
  942. //重新赋值data或list
  943. return result.convert();
  944. }
  945. return result.convert();
  946. }
  947. }