sg_agency_repository.dart 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  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/hotel_info_entity.dart';
  5. import 'package:domain/entity/response/position_table_entity.dart';
  6. import 'package:get/get.dart';
  7. import 'package:plugin_platform/http/http_provider.dart';
  8. import 'package:plugin_platform/http/http_result.dart';
  9. import 'package:plugin_platform/platform_export.dart';
  10. import 'package:shared/utils/util.dart';
  11. import '../constants/api_constants.dart';
  12. /// SG的中介相关数据仓库
  13. class SGAgencyRepository extends GetxService {
  14. HttpProvider httpProvider;
  15. SGAgencyRepository({required this.httpProvider});
  16. /// 获取中介列表选项
  17. Future<HttpResult<AgencyOptionEntity>> fetchAgencyOption({
  18. CancelToken? cancelToken,
  19. }) async {
  20. final result = await httpProvider.requestNetResult(
  21. ApiConstants.apiAgencyOption,
  22. );
  23. if (result.isSuccess) {
  24. //重新赋值data或list
  25. final json = result.getDataJson();
  26. var data = AgencyOptionEntity.fromJson(json!);
  27. //重新赋值data或list
  28. return result.convert<AgencyOptionEntity>(data: data);
  29. }
  30. return result.convert();
  31. }
  32. /// 获取中介列表Table
  33. Future<HttpResult<AgencyTableEntity>> fetchAgencyTable({
  34. required int curPage,
  35. String? keyword,
  36. String? status,
  37. CancelToken? cancelToken,
  38. }) async {
  39. //参数
  40. Map<String, String> params = {};
  41. params["cur_page"] = curPage.toString();
  42. params["page_size"] = "10";
  43. if (Utils.isNotEmpty(keyword)) {
  44. params["keyword"] = keyword!;
  45. }
  46. if (Utils.isNotEmpty(status)) {
  47. params["status"] = status!;
  48. }
  49. final result = await httpProvider.requestNetResult(
  50. ApiConstants.apiAgencyTable,
  51. params: params,
  52. cancelToken: cancelToken,
  53. );
  54. if (result.isSuccess) {
  55. //重新赋值data或list
  56. final json = result.getDataJson();
  57. var data = AgencyTableEntity.fromJson(json!);
  58. //重新赋值data或list
  59. return result.convert<AgencyTableEntity>(data: data);
  60. }
  61. return result.convert();
  62. }
  63. /// 删除中介
  64. Future<HttpResult> deleteAgencySubmit(
  65. String? pivotId, {
  66. CancelToken? cancelToken,
  67. }) async {
  68. //参数
  69. Map<String, String> params = {};
  70. params['pivot_id'] = pivotId ?? "";
  71. final result = await httpProvider.requestNetResult(
  72. ApiConstants.apiAgencyDelete,
  73. method: HttpMethod.POST,
  74. params: params,
  75. networkDebounce: true,
  76. isShowLoadingDialog: true,
  77. cancelToken: cancelToken,
  78. );
  79. if (result.isSuccess) {
  80. //重新赋值data或list
  81. return result.convert();
  82. }
  83. return result.convert();
  84. }
  85. /// 添加中介
  86. Future<HttpResult> addAgencySubmit({
  87. required String? agencyName,
  88. required String? acraNo,
  89. String? contactPerson,
  90. String? address,
  91. String? contactNo,
  92. String? contactEmail,
  93. CancelToken? cancelToken,
  94. }) async {
  95. //参数
  96. Map<String, String> params = {};
  97. params['agency_name'] = agencyName ?? "";
  98. params['acra_no'] = acraNo ?? "";
  99. if (!Utils.isEmpty(contactPerson)) {
  100. params["contact_person"] = contactPerson!;
  101. }
  102. if (!Utils.isEmpty(address)) {
  103. params["address"] = address!;
  104. }
  105. if (!Utils.isEmpty(contactNo)) {
  106. params["contact_no"] = contactNo!;
  107. }
  108. if (!Utils.isEmpty(contactEmail)) {
  109. params["contact_email"] = contactEmail!;
  110. }
  111. final result = await httpProvider.requestNetResult(
  112. ApiConstants.apiAgencyAdd,
  113. method: HttpMethod.POST,
  114. params: params,
  115. networkDebounce: true,
  116. isShowLoadingDialog: true,
  117. cancelToken: cancelToken,
  118. );
  119. if (result.isSuccess) {
  120. //重新赋值data或list
  121. return result.convert();
  122. }
  123. return result.convert();
  124. }
  125. /// 编辑中介
  126. Future<HttpResult> editAgencySubmit({
  127. required String? pivotId,
  128. required String? agencyName,
  129. required String? acraNo,
  130. String? contactPerson,
  131. String? address,
  132. String? contactNo,
  133. String? contactEmail,
  134. String? status,
  135. CancelToken? cancelToken,
  136. }) async {
  137. //参数
  138. Map<String, String> params = {};
  139. params['pivot_id'] = pivotId ?? "";
  140. params['agency_name'] = agencyName ?? "";
  141. params['acra_no'] = acraNo ?? "";
  142. if (!Utils.isEmpty(contactPerson)) {
  143. params["contact_person"] = contactPerson!;
  144. }
  145. if (!Utils.isEmpty(address)) {
  146. params["address"] = address!;
  147. }
  148. if (!Utils.isEmpty(contactNo)) {
  149. params["contact_no"] = contactNo!;
  150. }
  151. if (!Utils.isEmpty(contactEmail)) {
  152. params["contact_email"] = contactEmail!;
  153. }
  154. if (!Utils.isEmpty(status)) {
  155. params["status"] = status!;
  156. }
  157. final result = await httpProvider.requestNetResult(
  158. ApiConstants.apiAgencyEdit,
  159. method: HttpMethod.POST,
  160. params: params,
  161. networkDebounce: true,
  162. isShowLoadingDialog: true,
  163. cancelToken: cancelToken,
  164. );
  165. if (result.isSuccess) {
  166. //重新赋值data或list
  167. return result.convert();
  168. }
  169. return result.convert();
  170. }
  171. /// 获取中介的编辑详情
  172. Future<HttpResult<AgencyDetailEntity>> fetchAgencyEditDetail({
  173. required String? pivotId,
  174. CancelToken? cancelToken,
  175. }) async {
  176. //参数
  177. Map<String, String> params = {};
  178. if (!Utils.isEmpty(pivotId)) {
  179. params["pivot_id"] = pivotId!;
  180. }
  181. final result = await httpProvider.requestNetResult(
  182. ApiConstants.apiAgencyDetail,
  183. params: params,
  184. isShowLoadingDialog: true,
  185. cancelToken: cancelToken,
  186. );
  187. if (result.isSuccess) {
  188. //重新赋值data或list
  189. final json = result.getDataJson();
  190. var data = AgencyDetailEntity.fromJson(json!);
  191. //重新赋值data或list
  192. return result.convert<AgencyDetailEntity>(data: data);
  193. }
  194. return result.convert();
  195. }
  196. /// 获取中介职位的列表
  197. Future<HttpResult<PositionTableEntity>> fetchPositionTable({
  198. required int curPage,
  199. String? keyword,
  200. CancelToken? cancelToken,
  201. }) async {
  202. //参数
  203. Map<String, String> params = {};
  204. params["cur_page"] = curPage.toString();
  205. params["page_size"] = "10";
  206. if (Utils.isNotEmpty(keyword)) {
  207. params["keyword"] = keyword!;
  208. }
  209. final result = await httpProvider.requestNetResult(
  210. ApiConstants.apiAgencyPositionTable,
  211. params: params,
  212. cancelToken: cancelToken,
  213. );
  214. if (result.isSuccess) {
  215. //重新赋值data或list
  216. final json = result.getDataJson();
  217. var data = PositionTableEntity.fromJson(json!);
  218. //重新赋值data或list
  219. return result.convert<PositionTableEntity>(data: data);
  220. }
  221. return result.convert();
  222. }
  223. /// 添加职位
  224. Future<HttpResult> addPositionSubmit({
  225. required String? name,
  226. CancelToken? cancelToken,
  227. }) async {
  228. //参数
  229. Map<String, String> params = {};
  230. params['name'] = name ?? "";
  231. final result = await httpProvider.requestNetResult(
  232. ApiConstants.apiAgencyPositionAdd,
  233. method: HttpMethod.POST,
  234. params: params,
  235. networkDebounce: true,
  236. isShowLoadingDialog: true,
  237. cancelToken: cancelToken,
  238. );
  239. if (result.isSuccess) {
  240. //重新赋值data或list
  241. return result.convert();
  242. }
  243. return result.convert();
  244. }
  245. /// 编辑职位
  246. Future<HttpResult> editPositionSubmit({
  247. required String? positionId,
  248. required String? name,
  249. CancelToken? cancelToken,
  250. }) async {
  251. //参数
  252. Map<String, String> params = {};
  253. params['position_id'] = positionId ?? "";
  254. params['name'] = name ?? "";
  255. final result = await httpProvider.requestNetResult(
  256. ApiConstants.apiAgencyPositionEdit,
  257. method: HttpMethod.POST,
  258. params: params,
  259. networkDebounce: true,
  260. isShowLoadingDialog: true,
  261. cancelToken: cancelToken,
  262. );
  263. if (result.isSuccess) {
  264. //重新赋值data或list
  265. return result.convert();
  266. }
  267. return result.convert();
  268. }
  269. /// 删除职位
  270. Future<HttpResult> deletePositionSubmit({
  271. required String? positionId,
  272. CancelToken? cancelToken,
  273. }) async {
  274. //参数
  275. Map<String, String> params = {};
  276. params['position_id'] = positionId ?? "";
  277. final result = await httpProvider.requestNetResult(
  278. ApiConstants.apiAgencyPositionDelete,
  279. method: HttpMethod.POST,
  280. params: params,
  281. networkDebounce: true,
  282. isShowLoadingDialog: true,
  283. cancelToken: cancelToken,
  284. );
  285. if (result.isSuccess) {
  286. //重新赋值data或list
  287. return result.convert();
  288. }
  289. return result.convert();
  290. }
  291. }