my_request.dart 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. import 'dart:convert';
  2. import 'dart:io';
  3. import 'package:bbyyy/beans/android_app_version_bean_entity.dart';
  4. import 'package:bbyyy/beans/home_carousel_bean_entity.dart';
  5. import 'package:bbyyy/beans/smart_order_bean_entity.dart';
  6. import 'package:bbyyy/beans/store_bean_entity.dart';
  7. import 'package:bbyyy/my_tools/const.dart';
  8. import 'package:bbyyy/my_tools/dims.dart';
  9. import 'package:bbyyy/my_tools/event_bus.dart';
  10. import 'package:bbyyy/my_tools/my_cookie.dart';
  11. import 'package:bbyyy/my_tools/my_tools.dart';
  12. import 'package:bbyyy/my_tools/my_views.dart';
  13. import 'package:dio/dio.dart';
  14. import 'package:flutter/material.dart';
  15. import 'MyDio.dart';
  16. //上传文件
  17. upload(File file, SCallBack sCallBack, FCallBack fCallBack) async {
  18. var s = '/file/upload';
  19. logger.info(MyCookie().getServer() + s);
  20. var name =
  21. file.path.substring(file.path.lastIndexOf("/") + 1, file.path.length);
  22. print(file.path);
  23. FormData formData = new FormData.fromMap({
  24. 'files': await MultipartFile.fromFile(
  25. file.path,
  26. filename: name,
  27. ),
  28. });
  29. print(formData.files.toString());
  30. MyDio().post(s, formData, sCallBack, fCallBack);
  31. }
  32. uploadFiles(List<File> files, SCallBack sCallBack, FCallBack fCallBack) async {
  33. var s = '/file/upload';
  34. logger.info(MyCookie().getServer() + s);
  35. FormData formData = new FormData();
  36. files.forEach((file) async {
  37. var name =
  38. file.path.substring(file.path.lastIndexOf("/") + 1, file.path.length);
  39. print(file.path);
  40. formData.files.add(MapEntry(
  41. "files",
  42. MultipartFile.fromFileSync(file.path, filename: name),
  43. ));
  44. });
  45. MyDio().post(s, formData, sCallBack, fCallBack);
  46. }
  47. //注册
  48. registeredAccountNumber(data, SCallBack sCallBack, FCallBack fCallBack) {
  49. MyDio().post('/model/registerUser', data, sCallBack, fCallBack);
  50. }
  51. //登录账号
  52. loginAccount(data, SCallBack sCallBack, FCallBack fCallBack) {
  53. MyDio().post('/ap/login', data, sCallBack, fCallBack);
  54. }
  55. //检查登录
  56. checkLogin(SCallBack sCallBack, FCallBack fCallBack) {
  57. MyDio().post(
  58. '/ap/checkLogin',
  59. {
  60. '__user__': MyCookie().getUser(),
  61. 'version': MyCookie().packageInfo.version,
  62. 'phone': Platform.isAndroid?'Android':'IOS'
  63. },
  64. sCallBack,
  65. fCallBack);
  66. }
  67. //发送消息
  68. sendMsg(String type, int receiverUid, String content, SCallBack sCallBack,
  69. FCallBack fCallBack) {
  70. MyDio().post(
  71. '/chat/send',
  72. {
  73. 'type': type,
  74. 'receiver_uid': receiverUid,
  75. 'sender_uid': MyCookie().getUID(),
  76. 'content': content,
  77. },
  78. sCallBack,
  79. fCallBack);
  80. }
  81. //撤回消息
  82. revokeMsg(
  83. String uuid, int receiverUid, SCallBack sCallBack, FCallBack fCallBack) {
  84. MyDio().post(
  85. '/chat/revoke',
  86. {
  87. 'uuid': uuid,
  88. 'receiver_uid': receiverUid,
  89. 'sender_uid': MyCookie().getUID()
  90. },
  91. sCallBack,
  92. fCallBack);
  93. }
  94. //提交申请
  95. submitApplication(StoreBeanDataData data) {
  96. MyDio().save({
  97. 'key': 'shop_user',
  98. 'object': {'user_uid': MyCookie().getUID(), 'shop_uid': data.uid, 'role': 2}
  99. }, (response, hasError) {
  100. if (!hasError) {
  101. showToast('申请已提交');
  102. }
  103. }, (error) {});
  104. }
  105. //重置订单
  106. resetOrder(int orderUID) {
  107. MyDio().post('/pay/cancelPayOrder', {'order_uid': orderUID},
  108. (response, hasError) {}, (error) {});
  109. }
  110. //删除订单
  111. revokePayOrder(int orderUID) {
  112. MyDio().post('/pay/revokePayOrder', {'order_uid': orderUID},
  113. (response, hasError) {}, (error) {});
  114. }
  115. //检查更新
  116. checkForUpdates(BuildContext context, {bool showT = false}) {
  117. //TODO:
  118. MyDio().query({
  119. "key": "android_app",
  120. "dims": ["id", "version", "download", "size", "force"],
  121. "filters": {}
  122. }, (response, hasError) {
  123. if (!hasError) {
  124. AndroidAppVersionBeanEntity entity = AndroidAppVersionBeanEntity()
  125. .fromJson(json.decode(response.data.toString()));
  126. print(
  127. '${entity.data[0].version} -- ${MyCookie().packageInfo.version}=====${'${entity.data[0].version}'.compareTo('${MyCookie().packageInfo.version}')}');
  128. if (entity.data[0].version.compareTo(MyCookie().packageInfo.version) ==
  129. 1) {
  130. updateDialog(entity.data[0], context);
  131. } else {
  132. if (showT) {
  133. showToast('当前已是最新版本');
  134. }
  135. }
  136. }
  137. }, (error) {});
  138. }
  139. //广告定价
  140. advertisingPricing(SCallBack sCallBack) {
  141. MyDio().query({
  142. "key": "ad_pricing",
  143. "dims": ["id", "type", "pricing", "left"],
  144. "filters": {}
  145. }, sCallBack, (error) {});
  146. }
  147. //首页轮播
  148. homeCarousel() {
  149. MyDio().query({
  150. "key": "carousel",
  151. "dims": ["id", "page", "path"],
  152. "filters": {
  153. 'conditions': ['page == 1']
  154. }
  155. }, (response, hasError) {
  156. if (!hasError) {
  157. HomeCarouselBeanEntity entity = HomeCarouselBeanEntity()
  158. .fromJson(json.decode(response.data.toString()));
  159. EventBus().emit('homeCarousel', entity);
  160. }
  161. }, (error) {});
  162. }
  163. //抢优惠券
  164. grabACoupon(int id) {
  165. MyDio().post(
  166. '/model/applyForCoupon',
  167. {'id': id, 'user_uid': MyCookie().getUID()},
  168. (response, hasError) {},
  169. (error) {});
  170. }
  171. //查询第三方未付订单
  172. void checkUnpaidThirdPartyOrders() {
  173. MyDio().query({
  174. "key": "order",
  175. "filters": {"conditions": ["state == $orderStateUnpaid",'buyer_name LIKE ${MyCookie().getName()}']},
  176. "dims": orderDims,
  177. "paging": [1, 20],
  178. "order_by": ["create_time,DESC"]
  179. }, (response, hasError) {
  180. if(!hasError){
  181. SmartOrderBeanEntity entity = SmartOrderBeanEntity()
  182. .fromJson(json.decode(response.data.toString()));
  183. MyCookie().haveNoPay = entity.data.data.isNotEmpty;
  184. EventBus().emit('hasNoPay');
  185. }
  186. }, (error) { });
  187. }