You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

125 lines
3.9 KiB

5 years ago
5 years ago
  1. <?php
  2. namespace App\Service\v3\Implementations;
  3. use App\Constants\v3\OrderState;
  4. use App\Model\v3\OrderMain;
  5. use App\Model\v3\Order;
  6. use App\Service\v3\Interfaces\OrderListServiceInterface;
  7. use Hyperf\Paginator\Paginator;
  8. class OrderListService implements OrderListServiceInterface
  9. {
  10. public function do()
  11. {
  12. // TODO: Implement do() method.
  13. }
  14. public function check()
  15. {
  16. // TODO: Implement check() method.
  17. }
  18. public function undo()
  19. {
  20. // TODO: Implement undo() method.
  21. }
  22. public function onlineByUser($userId, $tab, $page=1, $pagesize=10)
  23. {
  24. $builder = OrderMain::query()
  25. ->with(['orderGoods', 'market'])
  26. ->where([
  27. ['user_id','=',$userId],
  28. ['type','=',1]
  29. ]);
  30. switch ($tab) {
  31. case 'all':
  32. break;
  33. case 'completed':
  34. $builder->whereIn('state', OrderState::FINISH);
  35. break;
  36. case 'unpaid':
  37. $builder->where(['state' => OrderState::UNPAID]);
  38. break;
  39. case 'receiving':
  40. $builder->whereIn('state', OrderState::RECEIVING);
  41. break;
  42. case 'refund':
  43. $builder->whereIn('state', OrderState::REFUND);
  44. break;
  45. }
  46. $paginate = $builder->paginate($pagesize);
  47. $orders = $paginate->toArray();
  48. return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
  49. }
  50. public function onlineByStore($storeId, $tab, $page=1, $pagesize=10)
  51. {
  52. $builder = OrderMain::query()
  53. ->select('id','global_order_id', 'money', 'state', 'market_id', 'created_at')
  54. ->with(['orders' => function($query) use ($storeId) {
  55. $query->where('store_id',$storeId)->with('orderGoods');
  56. }])
  57. ->where([
  58. 'type' => 1
  59. ]);
  60. switch ($tab) {
  61. case 'all':
  62. break;
  63. case 'completed':
  64. $builder->whereIn('state', OrderState::FINISH);
  65. break;
  66. case 'unpaid':
  67. $builder->where(['state' => OrderState::UNPAID]);
  68. break;
  69. case 'receiving':
  70. $builder->whereIn('state', OrderState::RECEIVING);
  71. break;
  72. case 'refund':
  73. $builder->whereIn('state', OrderState::REFUND);
  74. break;
  75. }
  76. $paginate = $builder->paginate($pagesize);
  77. $orders = $paginate->toArray();
  78. return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
  79. }
  80. public function offlineByStore($storeId, $tab, $page=1, $pagesize=10)
  81. {
  82. $builder = Order::Join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.id')
  83. ->where('store_id', $storeId)
  84. ->where('lanzu_order_main.type',4)
  85. ->with('user');
  86. $sw = [
  87. 'all'=>'',
  88. 'completed'=> OrderState::FINISH,
  89. 'unpaid'=> OrderState::UNPAID,
  90. 'receiving' => OrderState::RECEIVING,
  91. 'refund' => OrderState::REFUND
  92. ];
  93. switch ($tab) {
  94. case 'all':
  95. break;
  96. case 'completed':
  97. $builder->whereIn('state', OrderState::FINISH);
  98. break;
  99. case 'unpaid':
  100. $builder->where(['state' => OrderState::UNPAID]);
  101. break;
  102. case 'receiving':
  103. $builder->whereIn('state', OrderState::RECEIVING);
  104. break;
  105. case 'refund':
  106. $builder->whereIn('state', OrderState::REFUND);
  107. break;
  108. }
  109. $paginate = $builder->paginate($pagesize);
  110. $orders = $paginate->toArray();
  111. return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
  112. }
  113. }