pop_up_queue.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import 'dart:convert';
  2. import 'package:bbyyy/beans/coupon_bean_entity.dart';
  3. import 'package:bbyyy/beans/new_order_bean_entity.dart';
  4. import 'package:bbyyy/beans/smart_order_bean_entity.dart';
  5. import 'package:bbyyy/beans/system_information_bean_entity.dart';
  6. import 'package:bbyyy/https/MyDio.dart';
  7. import 'package:bbyyy/my_tools/event_bus.dart';
  8. import 'const.dart';
  9. import 'dims.dart';
  10. import 'easy_loading/easy_loading.dart';
  11. class PopUpQueue {
  12. PopUpQueue._internal();
  13. static PopUpQueue _singleton = PopUpQueue._internal();
  14. factory PopUpQueue() => _singleton;
  15. List<CouponBeanDataData> coupon = [];
  16. var nsqData = [];
  17. bool onShow = true;
  18. showNext(){
  19. print('=========================');
  20. print(onShow);
  21. print(nsqData.length);
  22. print(coupon.length);
  23. print('=========================');
  24. if(onShow){
  25. return;
  26. }
  27. if(nsqData.isNotEmpty){
  28. if(nsqData[0] is NewOrderBeanEntity){
  29. checkOrder(nsqData[0]);
  30. }else if(nsqData[0] is SystemInformationBeanEntity){
  31. onShow = true;
  32. EventBus().emit('systemInformation',nsqData[0]);
  33. nsqData.removeAt(0);
  34. }
  35. }
  36. else if(coupon.isNotEmpty){
  37. onShow = true;
  38. EventBus().emit('hasCoupon',coupon[0]);
  39. coupon.clear();
  40. }
  41. else{
  42. EasyLoading.dismiss();
  43. }
  44. }
  45. void checkOrder(NewOrderBeanEntity data) {
  46. MyDio().query({ "key": "order",
  47. "filters": {
  48. "conditions": [
  49. 'uid == ${data.content.uID}'
  50. ]
  51. },
  52. "dims": orderDims,
  53. "paging": [1, 20]
  54. }, (response, hasError) {
  55. if (!hasError) {
  56. SmartOrderBeanEntity entity = SmartOrderBeanEntity
  57. .fromJson(json.decode(response.data.toString()));
  58. if(entity.data.data[0].state==orderStateUnpaid){
  59. onShow = true;
  60. EventBus().emit('hasNewOrder', nsqData[0]);
  61. nsqData.removeAt(0);
  62. }else{
  63. nsqData.removeAt(0);
  64. }
  65. }
  66. }, (error) {
  67. nsqData.removeAt(0);
  68. });
  69. }
  70. }