sg_agency_repository.dart 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  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_table_entity.dart';
  7. import 'package:domain/entity/response/hotel_info_entity.dart';
  8. import 'package:domain/entity/response/position_table_entity.dart';
  9. import 'package:get/get.dart';
  10. import 'package:plugin_platform/http/http_provider.dart';
  11. import 'package:plugin_platform/http/http_result.dart';
  12. import 'package:plugin_platform/platform_export.dart';
  13. import 'package:shared/utils/util.dart';
  14. import '../constants/api_constants.dart';
  15. /// SG的中介相关数据仓库
  16. class SGAgencyRepository extends GetxService {
  17. HttpProvider httpProvider;
  18. SGAgencyRepository({required this.httpProvider});
  19. /// 获取中介列表选项
  20. Future<HttpResult<AgencyOptionEntity>> fetchAgencyOption({
  21. CancelToken? cancelToken,
  22. }) async {
  23. final result = await httpProvider.requestNetResult(
  24. ApiConstants.apiAgencyOption,
  25. );
  26. if (result.isSuccess) {
  27. //重新赋值data或list
  28. final json = result.getDataJson();
  29. var data = AgencyOptionEntity.fromJson(json!);
  30. //重新赋值data或list
  31. return result.convert<AgencyOptionEntity>(data: data);
  32. }
  33. return result.convert();
  34. }
  35. /// 获取中介列表Table
  36. Future<HttpResult<AgencyTableEntity>> fetchAgencyTable({
  37. required int curPage,
  38. String? keyword,
  39. String? status,
  40. CancelToken? cancelToken,
  41. }) async {
  42. //参数
  43. Map<String, String> params = {};
  44. params["cur_page"] = curPage.toString();
  45. params["page_size"] = "10";
  46. if (Utils.isNotEmpty(keyword)) {
  47. params["keyword"] = keyword!;
  48. }
  49. if (Utils.isNotEmpty(status)) {
  50. params["status"] = status!;
  51. }
  52. final result = await httpProvider.requestNetResult(
  53. ApiConstants.apiAgencyTable,
  54. params: params,
  55. cancelToken: cancelToken,
  56. );
  57. if (result.isSuccess) {
  58. //重新赋值data或list
  59. final json = result.getDataJson();
  60. var data = AgencyTableEntity.fromJson(json!);
  61. //重新赋值data或list
  62. return result.convert<AgencyTableEntity>(data: data);
  63. }
  64. return result.convert();
  65. }
  66. /// 删除中介
  67. Future<HttpResult> deleteAgencySubmit(String? pivotId, {
  68. CancelToken? cancelToken,
  69. }) async {
  70. //参数
  71. Map<String, String> params = {};
  72. params['pivot_id'] = pivotId ?? "";
  73. final result = await httpProvider.requestNetResult(
  74. ApiConstants.apiAgencyDelete,
  75. method: HttpMethod.POST,
  76. params: params,
  77. networkDebounce: true,
  78. isShowLoadingDialog: true,
  79. cancelToken: cancelToken,
  80. );
  81. if (result.isSuccess) {
  82. //重新赋值data或list
  83. return result.convert();
  84. }
  85. return result.convert();
  86. }
  87. /// 添加中介
  88. Future<HttpResult> addAgencySubmit({
  89. required String? agencyName,
  90. required String? acraNo,
  91. String? contactPerson,
  92. String? address,
  93. String? contactNo,
  94. String? contactEmail,
  95. CancelToken? cancelToken,
  96. }) async {
  97. //参数
  98. Map<String, String> params = {};
  99. params['agency_name'] = agencyName ?? "";
  100. params['acra_no'] = acraNo ?? "";
  101. if (!Utils.isEmpty(contactPerson)) {
  102. params["contact_person"] = contactPerson!;
  103. }
  104. if (!Utils.isEmpty(address)) {
  105. params["address"] = address!;
  106. }
  107. if (!Utils.isEmpty(contactNo)) {
  108. params["contact_no"] = contactNo!;
  109. }
  110. if (!Utils.isEmpty(contactEmail)) {
  111. params["contact_email"] = contactEmail!;
  112. }
  113. final result = await httpProvider.requestNetResult(
  114. ApiConstants.apiAgencyAdd,
  115. method: HttpMethod.POST,
  116. params: params,
  117. networkDebounce: true,
  118. isShowLoadingDialog: true,
  119. cancelToken: cancelToken,
  120. );
  121. if (result.isSuccess) {
  122. //重新赋值data或list
  123. return result.convert();
  124. }
  125. return result.convert();
  126. }
  127. /// 编辑中介
  128. Future<HttpResult> editAgencySubmit({
  129. required String? pivotId,
  130. required String? agencyName,
  131. required String? acraNo,
  132. String? contactPerson,
  133. String? address,
  134. String? contactNo,
  135. String? contactEmail,
  136. String? status,
  137. CancelToken? cancelToken,
  138. }) async {
  139. //参数
  140. Map<String, String> params = {};
  141. params['pivot_id'] = pivotId ?? "";
  142. params['agency_name'] = agencyName ?? "";
  143. params['acra_no'] = acraNo ?? "";
  144. if (!Utils.isEmpty(contactPerson)) {
  145. params["contact_person"] = contactPerson!;
  146. }
  147. if (!Utils.isEmpty(address)) {
  148. params["address"] = address!;
  149. }
  150. if (!Utils.isEmpty(contactNo)) {
  151. params["contact_no"] = contactNo!;
  152. }
  153. if (!Utils.isEmpty(contactEmail)) {
  154. params["contact_email"] = contactEmail!;
  155. }
  156. if (!Utils.isEmpty(status)) {
  157. params["status"] = status!;
  158. }
  159. final result = await httpProvider.requestNetResult(
  160. ApiConstants.apiAgencyEdit,
  161. method: HttpMethod.POST,
  162. params: params,
  163. networkDebounce: true,
  164. isShowLoadingDialog: true,
  165. cancelToken: cancelToken,
  166. );
  167. if (result.isSuccess) {
  168. //重新赋值data或list
  169. return result.convert();
  170. }
  171. return result.convert();
  172. }
  173. /// 获取中介的编辑详情
  174. Future<HttpResult<AgencyDetailEntity>> fetchAgencyEditDetail({
  175. required String? pivotId,
  176. CancelToken? cancelToken,
  177. }) async {
  178. //参数
  179. Map<String, String> params = {};
  180. if (!Utils.isEmpty(pivotId)) {
  181. params["pivot_id"] = pivotId!;
  182. }
  183. final result = await httpProvider.requestNetResult(
  184. ApiConstants.apiAgencyDetail,
  185. params: params,
  186. isShowLoadingDialog: true,
  187. cancelToken: cancelToken,
  188. );
  189. if (result.isSuccess) {
  190. //重新赋值data或list
  191. final json = result.getDataJson();
  192. var data = AgencyDetailEntity.fromJson(json!);
  193. //重新赋值data或list
  194. return result.convert<AgencyDetailEntity>(data: data);
  195. }
  196. return result.convert();
  197. }
  198. /// 获取中介职位的列表
  199. Future<HttpResult<PositionTableEntity>> fetchPositionTable({
  200. required int curPage,
  201. String? keyword,
  202. CancelToken? cancelToken,
  203. }) async {
  204. //参数
  205. Map<String, String> params = {};
  206. params["cur_page"] = curPage.toString();
  207. params["page_size"] = "10";
  208. if (Utils.isNotEmpty(keyword)) {
  209. params["keyword"] = keyword!;
  210. }
  211. final result = await httpProvider.requestNetResult(
  212. ApiConstants.apiAgencyPositionTable,
  213. params: params,
  214. cancelToken: cancelToken,
  215. );
  216. if (result.isSuccess) {
  217. //重新赋值data或list
  218. final json = result.getDataJson();
  219. var data = PositionTableEntity.fromJson(json!);
  220. //重新赋值data或list
  221. return result.convert<PositionTableEntity>(data: data);
  222. }
  223. return result.convert();
  224. }
  225. /// 添加职位
  226. Future<HttpResult> addPositionSubmit({
  227. required String? name,
  228. CancelToken? cancelToken,
  229. }) async {
  230. //参数
  231. Map<String, String> params = {};
  232. params['name'] = name ?? "";
  233. final result = await httpProvider.requestNetResult(
  234. ApiConstants.apiAgencyPositionAdd,
  235. method: HttpMethod.POST,
  236. params: params,
  237. networkDebounce: true,
  238. isShowLoadingDialog: true,
  239. cancelToken: cancelToken,
  240. );
  241. if (result.isSuccess) {
  242. //重新赋值data或list
  243. return result.convert();
  244. }
  245. return result.convert();
  246. }
  247. /// 编辑职位
  248. Future<HttpResult> editPositionSubmit({
  249. required String? positionId,
  250. required String? name,
  251. CancelToken? cancelToken,
  252. }) async {
  253. //参数
  254. Map<String, String> params = {};
  255. params['position_id'] = positionId ?? "";
  256. params['name'] = name ?? "";
  257. final result = await httpProvider.requestNetResult(
  258. ApiConstants.apiAgencyPositionEdit,
  259. method: HttpMethod.POST,
  260. params: params,
  261. networkDebounce: true,
  262. isShowLoadingDialog: true,
  263. cancelToken: cancelToken,
  264. );
  265. if (result.isSuccess) {
  266. //重新赋值data或list
  267. return result.convert();
  268. }
  269. return result.convert();
  270. }
  271. /// 删除职位
  272. Future<HttpResult> deletePositionSubmit({
  273. required String? positionId,
  274. CancelToken? cancelToken,
  275. }) async {
  276. //参数
  277. Map<String, String> params = {};
  278. params['position_id'] = positionId ?? "";
  279. final result = await httpProvider.requestNetResult(
  280. ApiConstants.apiAgencyPositionDelete,
  281. method: HttpMethod.POST,
  282. params: params,
  283. networkDebounce: true,
  284. isShowLoadingDialog: true,
  285. cancelToken: cancelToken,
  286. );
  287. if (result.isSuccess) {
  288. //重新赋值data或list
  289. return result.convert();
  290. }
  291. return result.convert();
  292. }
  293. /// 获取中介合同列表选项
  294. Future<HttpResult<ContractOptionEntity>> fetchContractOption({
  295. CancelToken? cancelToken,
  296. }) async {
  297. final result = await httpProvider.requestNetResult(
  298. ApiConstants.apiContractOption,
  299. );
  300. if (result.isSuccess) {
  301. //重新赋值data或list
  302. final json = result.getDataJson();
  303. var data = ContractOptionEntity.fromJson(json!);
  304. //重新赋值data或list
  305. return result.convert<ContractOptionEntity>(data: data);
  306. }
  307. return result.convert();
  308. }
  309. /// 获取中介合同列表Table
  310. Future<HttpResult<ContractTableEntity>> fetchContractTable({
  311. required int curPage,
  312. String? agencyId,
  313. String? status,
  314. CancelToken? cancelToken,
  315. }) async {
  316. //参数
  317. Map<String, String> params = {};
  318. params["cur_page"] = curPage.toString();
  319. params["page_size"] = "10";
  320. if (Utils.isNotEmpty(agencyId)) {
  321. params["agency_id"] = agencyId!;
  322. }
  323. if (Utils.isNotEmpty(status)) {
  324. params["status"] = status!;
  325. }
  326. final result = await httpProvider.requestNetResult(
  327. ApiConstants.apiContractTable,
  328. params: params,
  329. cancelToken: cancelToken,
  330. );
  331. if (result.isSuccess) {
  332. //重新赋值data或list
  333. final json = result.getDataJson();
  334. var data = ContractTableEntity.fromJson(json!);
  335. //重新赋值data或list
  336. return result.convert<ContractTableEntity>(data: data);
  337. }
  338. return result.convert();
  339. }
  340. /// 获取中介的合同添加详情
  341. Future<HttpResult<ContractDetailEntity>> fetchContractAddOption({
  342. CancelToken? cancelToken,
  343. }) async {
  344. final result = await httpProvider.requestNetResult(
  345. ApiConstants.apiContractAddOption,
  346. isShowLoadingDialog: true,
  347. cancelToken: cancelToken,
  348. );
  349. if (result.isSuccess) {
  350. //重新赋值data或list
  351. final json = result.getDataJson();
  352. var data = ContractDetailEntity.fromJson(json!);
  353. //重新赋值data或list
  354. return result.convert<ContractDetailEntity>(data: data);
  355. }
  356. return result.convert();
  357. }
  358. /// 获取中介的合同编辑详情
  359. Future<HttpResult<ContractDetailEntity>> fetchContractEditDetail({
  360. required String? contractId,
  361. CancelToken? cancelToken,
  362. }) async {
  363. //参数
  364. Map<String, String> params = {};
  365. params["contract_id"] = contractId ?? "";
  366. final result = await httpProvider.requestNetResult(
  367. ApiConstants.apiContractDetail,
  368. params: params,
  369. isShowLoadingDialog: true,
  370. cancelToken: cancelToken,
  371. );
  372. if (result.isSuccess) {
  373. //重新赋值data或list
  374. final json = result.getDataJson();
  375. var data = ContractDetailEntity.fromJson(json!);
  376. //重新赋值data或list
  377. return result.convert<ContractDetailEntity>(data: data);
  378. }
  379. return result.convert();
  380. }
  381. /// 添加合同
  382. Future<HttpResult> addContractSubmit({
  383. required String? agencyId,
  384. required String? startDate,
  385. required String? endDate,
  386. List<String>? paths,
  387. CancelToken? cancelToken,
  388. }) async {
  389. //参数
  390. Map<String, String> params = {};
  391. params['agency_id'] = agencyId ?? "";
  392. params['start_date'] = startDate ?? "";
  393. params['end_date'] = endDate ?? "";
  394. //文件
  395. Map<String,String> fileParams = {};
  396. if (paths != null && paths.isNotEmpty) {
  397. fileParams['file'] = paths[0];
  398. }
  399. final result = await httpProvider.requestNetResult(
  400. ApiConstants.apiContractAddSubmit,
  401. method: HttpMethod.POST,
  402. params: params,
  403. paths: fileParams,
  404. networkDebounce: true,
  405. isShowLoadingDialog: true,
  406. cancelToken: cancelToken,
  407. );
  408. if (result.isSuccess) {
  409. //重新赋值data或list
  410. return result.convert();
  411. }
  412. return result.convert();
  413. }
  414. /// 编辑合同
  415. Future<HttpResult> editContractSubmit({
  416. required String? contractId,
  417. required String? agencyId,
  418. required String? startDate,
  419. required String? endDate,
  420. List<String>? paths,
  421. CancelToken? cancelToken,
  422. }) async {
  423. //参数
  424. Map<String, String> params = {};
  425. params['contract_id'] = contractId ?? "";
  426. params['agency_id'] = agencyId ?? "";
  427. params['start_date'] = startDate ?? "";
  428. params['end_date'] = endDate ?? "";
  429. //文件
  430. Map<String,String> fileParams = {};
  431. if (paths != null && paths.isNotEmpty) {
  432. fileParams['file'] = paths[0];
  433. }
  434. final result = await httpProvider.requestNetResult(
  435. ApiConstants.apiContractEditSubmit,
  436. method: HttpMethod.POST,
  437. params: params,
  438. paths: fileParams,
  439. networkDebounce: true,
  440. isShowLoadingDialog: true,
  441. cancelToken: cancelToken,
  442. );
  443. if (result.isSuccess) {
  444. //重新赋值data或list
  445. return result.convert();
  446. }
  447. return result.convert();
  448. }
  449. }