sg_agency_repository.dart 28 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018
  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. /// 合同关联职位 Option
  540. Future<HttpResult<ContractPositionOptionEntity>> fetchContractPositionOption({
  541. required String? contractId,
  542. CancelToken? cancelToken,
  543. }) async {
  544. //参数
  545. Map<String, String> params = {};
  546. params["contract_id"] = contractId ?? "";
  547. final result = await httpProvider.requestNetResult(
  548. ApiConstants.apiContractPositionOption,
  549. params: params,
  550. cancelToken: cancelToken,
  551. );
  552. if (result.isSuccess) {
  553. //重新赋值data或list
  554. final json = result.getDataJson();
  555. var data = ContractPositionOptionEntity.fromJson(json!);
  556. //重新赋值data或list
  557. return result.convert<ContractPositionOptionEntity>(data: data);
  558. }
  559. return result.convert();
  560. }
  561. /// 获取中介合同列表Table
  562. Future<HttpResult<ContractPositionTableEntity>> fetchContractPositionTable({
  563. required int curPage,
  564. required String? contractId,
  565. String? positionId,
  566. CancelToken? cancelToken,
  567. }) async {
  568. //参数
  569. Map<String, String> params = {};
  570. params["cur_page"] = curPage.toString();
  571. params["page_size"] = "10";
  572. params["contract_id"] = contractId ?? "";
  573. if (Utils.isNotEmpty(positionId)) {
  574. params["position_id"] = positionId!;
  575. }
  576. final result = await httpProvider.requestNetResult(
  577. ApiConstants.apiContractPositionTable,
  578. params: params,
  579. cancelToken: cancelToken,
  580. );
  581. if (result.isSuccess) {
  582. //重新赋值data或list
  583. final json = result.getDataJson();
  584. var data = ContractPositionTableEntity.fromJson(json!);
  585. //重新赋值data或list
  586. return result.convert<ContractPositionTableEntity>(data: data);
  587. }
  588. return result.convert();
  589. }
  590. /// 合同关联职位 添加Option
  591. Future<HttpResult<ContractPositionAddOptionEntity>> fetchContractPositionAddOption({
  592. required String? contractId,
  593. CancelToken? cancelToken,
  594. }) async {
  595. //参数
  596. Map<String, String> params = {};
  597. params["contract_id"] = contractId ?? "";
  598. final result = await httpProvider.requestNetResult(
  599. ApiConstants.apiContractPositionAddOption,
  600. params: params,
  601. isShowLoadingDialog: true,
  602. cancelToken: cancelToken,
  603. );
  604. if (result.isSuccess) {
  605. //重新赋值data或list
  606. final json = result.getDataJson();
  607. var data = ContractPositionAddOptionEntity.fromJson(json!);
  608. //重新赋值data或list
  609. return result.convert<ContractPositionAddOptionEntity>(data: data);
  610. }
  611. return result.convert();
  612. }
  613. /// 合同关联职位 添加Submit
  614. Future<HttpResult> addContractPositionSubmit({
  615. required String? contractId,
  616. required String? positionId,
  617. String? type_1,
  618. String? type_2,
  619. String? type_3,
  620. String? type_7,
  621. String? type_8,
  622. String? type_9,
  623. String? type_10,
  624. String? type_11,
  625. String? type_12,
  626. String? type_13,
  627. String? type_20,
  628. String? type_21,
  629. CancelToken? cancelToken,
  630. }) async {
  631. //参数
  632. Map<String, String> params = {};
  633. params['contract_id'] = contractId ?? "";
  634. params['position_id'] = positionId ?? "";
  635. if (Utils.isNotEmpty(type_1)) {
  636. params['type_1'] = type_1!;
  637. }
  638. if (Utils.isNotEmpty(type_2)) {
  639. params['type_2'] = type_2!;
  640. }
  641. if (Utils.isNotEmpty(type_3)) {
  642. params['type_3'] = type_3!;
  643. }
  644. if (Utils.isNotEmpty(type_7)) {
  645. params['type_7'] = type_7!;
  646. }
  647. if (Utils.isNotEmpty(type_8)) {
  648. params['type_8'] = type_8!;
  649. }
  650. if (Utils.isNotEmpty(type_9)) {
  651. params['type_9'] = type_9!;
  652. }
  653. if (Utils.isNotEmpty(type_10)) {
  654. params['type_10'] = type_10!;
  655. }
  656. if (Utils.isNotEmpty(type_11)) {
  657. params['type_11'] = type_11!;
  658. }
  659. if (Utils.isNotEmpty(type_12)) {
  660. params['type_12'] = type_12!;
  661. }
  662. if (Utils.isNotEmpty(type_13)) {
  663. params['type_13'] = type_13!;
  664. }
  665. if (Utils.isNotEmpty(type_20)) {
  666. params['type_20'] = type_20!;
  667. }
  668. if (Utils.isNotEmpty(type_21)) {
  669. params['type_21'] = type_21!;
  670. }
  671. final result = await httpProvider.requestNetResult(
  672. ApiConstants.apiContractPositionAddSubmit,
  673. method: HttpMethod.POST,
  674. params: params,
  675. networkDebounce: true,
  676. isShowLoadingDialog: true,
  677. cancelToken: cancelToken,
  678. );
  679. if (result.isSuccess) {
  680. //重新赋值data或list
  681. return result.convert();
  682. }
  683. return result.convert();
  684. }
  685. /// 合同关联职位 编辑详情
  686. Future<HttpResult<ContractPositionRateDetailEntity>> fetchContractPositionRateDetail({
  687. required String? contractId,
  688. required String? positionId,
  689. CancelToken? cancelToken,
  690. }) async {
  691. //参数
  692. Map<String, String> params = {};
  693. params["contract_id"] = contractId ?? "";
  694. params["position_id"] = positionId ?? "";
  695. final result = await httpProvider.requestNetResult(
  696. ApiConstants.apiContractPositionRateDetail,
  697. params: params,
  698. isShowLoadingDialog: true,
  699. cancelToken: cancelToken,
  700. );
  701. if (result.isSuccess) {
  702. //重新赋值data或list
  703. final json = result.getDataJson();
  704. var data = ContractPositionRateDetailEntity.fromJson(json!);
  705. //重新赋值data或list
  706. return result.convert<ContractPositionRateDetailEntity>(data: data);
  707. }
  708. return result.convert();
  709. }
  710. /// 合同关联职位 费率编辑的Submit
  711. Future<HttpResult> editContractPositionRateSubmit({
  712. required String? contractId,
  713. required String? positionId,
  714. String? type_1,
  715. String? type_2,
  716. String? type_3,
  717. String? type_7,
  718. String? type_8,
  719. String? type_9,
  720. String? type_10,
  721. String? type_11,
  722. String? type_12,
  723. String? type_13,
  724. String? type_20,
  725. String? type_21,
  726. CancelToken? cancelToken,
  727. }) async {
  728. //参数
  729. Map<String, String> params = {};
  730. params['contract_id'] = contractId ?? "";
  731. params['position_id'] = positionId ?? "";
  732. if (Utils.isNotEmpty(type_1)) {
  733. params['type_1'] = type_1!;
  734. }
  735. if (Utils.isNotEmpty(type_2)) {
  736. params['type_2'] = type_2!;
  737. }
  738. if (Utils.isNotEmpty(type_3)) {
  739. params['type_3'] = type_3!;
  740. }
  741. if (Utils.isNotEmpty(type_7)) {
  742. params['type_7'] = type_7!;
  743. }
  744. if (Utils.isNotEmpty(type_8)) {
  745. params['type_8'] = type_8!;
  746. }
  747. if (Utils.isNotEmpty(type_9)) {
  748. params['type_9'] = type_9!;
  749. }
  750. if (Utils.isNotEmpty(type_10)) {
  751. params['type_10'] = type_10!;
  752. }
  753. if (Utils.isNotEmpty(type_11)) {
  754. params['type_11'] = type_11!;
  755. }
  756. if (Utils.isNotEmpty(type_12)) {
  757. params['type_12'] = type_12!;
  758. }
  759. if (Utils.isNotEmpty(type_13)) {
  760. params['type_13'] = type_13!;
  761. }
  762. if (Utils.isNotEmpty(type_20)) {
  763. params['type_20'] = type_20!;
  764. }
  765. if (Utils.isNotEmpty(type_21)) {
  766. params['type_21'] = type_21!;
  767. }
  768. final result = await httpProvider.requestNetResult(
  769. ApiConstants.apiContractPositionRateEditSubmit,
  770. method: HttpMethod.POST,
  771. params: params,
  772. networkDebounce: true,
  773. isShowLoadingDialog: true,
  774. cancelToken: cancelToken,
  775. );
  776. if (result.isSuccess) {
  777. //重新赋值data或list
  778. return result.convert();
  779. }
  780. return result.convert();
  781. }
  782. /// 获取中介合同的时薪列表Table
  783. Future<HttpResult<ContractPositionRateTableEntity>> fetchContractPositionRateTable({
  784. required int curPage,
  785. required String? contractId,
  786. required String? positionId,
  787. String? rateId,
  788. CancelToken? cancelToken,
  789. }) async {
  790. //参数
  791. Map<String, String> params = {};
  792. params["cur_page"] = curPage.toString();
  793. params["page_size"] = "20";
  794. params["contract_id"] = contractId ?? "";
  795. params["position_id"] = positionId ?? "";
  796. if (Utils.isNotEmpty(rateId)) {
  797. params["rate_id"] = rateId!;
  798. }
  799. final result = await httpProvider.requestNetResult(
  800. ApiConstants.apiContractRateTable,
  801. params: params,
  802. cancelToken: cancelToken,
  803. );
  804. if (result.isSuccess) {
  805. //重新赋值data或list
  806. final json = result.getDataJson();
  807. var data = ContractPositionRateTableEntity.fromJson(json!);
  808. //重新赋值data或list
  809. return result.convert<ContractPositionRateTableEntity>(data: data);
  810. }
  811. return result.convert();
  812. }
  813. /// 获取中介合同的时薪,指定日期Option
  814. Future<HttpResult<ContractPositionRateSpecificOptionEntity>> fetchContractPositionRateSpecificOption({
  815. required String? contractId,
  816. required String? positionId,
  817. CancelToken? cancelToken,
  818. }) async {
  819. //参数
  820. Map<String, String> params = {};
  821. params["contract_id"] = contractId ?? "";
  822. params["position_id"] = positionId ?? "";
  823. final result = await httpProvider.requestNetResult(
  824. ApiConstants.apiContractRateSpecificOption,
  825. params: params,
  826. isShowLoadingDialog: true,
  827. cancelToken: cancelToken,
  828. );
  829. if (result.isSuccess) {
  830. //重新赋值data或list
  831. final json = result.getDataJson();
  832. var data = ContractPositionRateSpecificOptionEntity.fromJson(json!);
  833. //重新赋值data或list
  834. return result.convert<ContractPositionRateSpecificOptionEntity>(data: data);
  835. }
  836. return result.convert();
  837. }
  838. /// 获取中介合同的时薪,指定日期添加
  839. Future<HttpResult> addContractPositionRateSpecificSubmit({
  840. required String? contractId,
  841. required String? positionId,
  842. required String? day,
  843. required String? amount,
  844. CancelToken? cancelToken,
  845. }) async {
  846. //参数
  847. Map<String, String> params = {};
  848. params['contract_id'] = contractId ?? "";
  849. params['position_id'] = positionId ?? "";
  850. params['special_day'] = day ?? "";
  851. params['amount'] = amount ?? "";
  852. final result = await httpProvider.requestNetResult(
  853. ApiConstants.apiContractRateSpecificAddSubmit,
  854. method: HttpMethod.POST,
  855. params: params,
  856. networkDebounce: true,
  857. isShowLoadingDialog: true,
  858. cancelToken: cancelToken,
  859. );
  860. if (result.isSuccess) {
  861. //重新赋值data或list
  862. return result.convert();
  863. }
  864. return result.convert();
  865. }
  866. /// 中介合同时薪 修改金额
  867. Future<HttpResult> editContractPositionRateAmountEdit({
  868. required String? rateId,
  869. required String? amount,
  870. CancelToken? cancelToken,
  871. }) async {
  872. //参数
  873. Map<String, String> params = {};
  874. params['rate_id'] = rateId ?? "";;
  875. params['amount'] = amount ?? "";
  876. final result = await httpProvider.requestNetResult(
  877. ApiConstants.apiContractRateAmountEdit,
  878. method: HttpMethod.POST,
  879. params: params,
  880. networkDebounce: true,
  881. isShowLoadingDialog: true,
  882. cancelToken: cancelToken,
  883. );
  884. if (result.isSuccess) {
  885. //重新赋值data或list
  886. return result.convert();
  887. }
  888. return result.convert();
  889. }
  890. /// 中介合同时薪 删除记录
  891. Future<HttpResult> deleteContractPositionRate({
  892. required String? rateId,
  893. CancelToken? cancelToken,
  894. }) async {
  895. //参数
  896. Map<String, String> params = {};
  897. params['rate_id'] = rateId ?? "";;
  898. final result = await httpProvider.requestNetResult(
  899. ApiConstants.apiContractRateDelete,
  900. method: HttpMethod.POST,
  901. params: params,
  902. networkDebounce: true,
  903. isShowLoadingDialog: true,
  904. cancelToken: cancelToken,
  905. );
  906. if (result.isSuccess) {
  907. //重新赋值data或list
  908. return result.convert();
  909. }
  910. return result.convert();
  911. }
  912. }