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.

131 lines
4.3 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. ->select('id', 'global_order_id', 'money', 'state', 'market_id', 'created_at')
  26. ->with(['orderGoods' => function($query) {
  27. $query->select(['lanzu_order_goods.id', 'lanzu_order_goods.name', 'lanzu_order_goods.cover_img']);
  28. }])
  29. ->with(['market' => function($query) {
  30. $query->select(['lanzu_market.id', 'lanzu_market.name', 'lanzu_market.tel']);
  31. }])
  32. ->where([
  33. ['user_id','=',$userId],
  34. ['type','=',1]
  35. ]);
  36. switch ($tab) {
  37. case 'all':
  38. break;
  39. case 'completed':
  40. $builder->whereIn('state', OrderState::FINISH);
  41. break;
  42. case 'unpaid':
  43. $builder->where(['state' => OrderState::UNPAID]);
  44. break;
  45. case 'receiving':
  46. $builder->whereIn('state', OrderState::RECEIVING);
  47. break;
  48. case 'refund':
  49. $builder->whereIn('state', OrderState::REFUND);
  50. break;
  51. }
  52. $paginate = $builder->paginate($pagesize);
  53. $orders = $paginate->toArray();
  54. return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
  55. }
  56. public function onlineByStore($storeId, $tab, $page=1, $pagesize=10)
  57. {
  58. $builder = OrderMain::query()
  59. ->select('id','global_order_id', 'money', 'state', 'market_id', 'created_at')
  60. ->with(['orders' => function($query) use ($storeId) {
  61. $query->where('store_id',$storeId)->with('orderGoods');
  62. }])
  63. ->where([
  64. 'type' => 1
  65. ]);
  66. switch ($tab) {
  67. case 'all':
  68. break;
  69. case 'completed':
  70. $builder->whereIn('state', OrderState::FINISH);
  71. break;
  72. case 'unpaid':
  73. $builder->where(['state' => OrderState::UNPAID]);
  74. break;
  75. case 'receiving':
  76. $builder->whereIn('state', OrderState::RECEIVING);
  77. break;
  78. case 'refund':
  79. $builder->whereIn('state', OrderState::REFUND);
  80. break;
  81. }
  82. $paginate = $builder->paginate($pagesize);
  83. $orders = $paginate->toArray();
  84. return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
  85. }
  86. public function offlineByStore($storeId, $tab, $page=1, $pagesize=10)
  87. {
  88. $builder = Order::Join('lanzu_order_main','lanzu_order.order_main_id','lanzu_order_main.id')
  89. ->where('store_id', $storeId)
  90. ->where('lanzu_order_main.type',4)
  91. ->with('user');
  92. $sw = [
  93. 'all'=>'',
  94. 'completed'=> OrderState::FINISH,
  95. 'unpaid'=> OrderState::UNPAID,
  96. 'receiving' => OrderState::RECEIVING,
  97. 'refund' => OrderState::REFUND
  98. ];
  99. switch ($tab) {
  100. case 'all':
  101. break;
  102. case 'completed':
  103. $builder->whereIn('state', OrderState::FINISH);
  104. break;
  105. case 'unpaid':
  106. $builder->where(['state' => OrderState::UNPAID]);
  107. break;
  108. case 'receiving':
  109. $builder->whereIn('state', OrderState::RECEIVING);
  110. break;
  111. case 'refund':
  112. $builder->whereIn('state', OrderState::REFUND);
  113. break;
  114. }
  115. $paginate = $builder->paginate($pagesize);
  116. $orders = $paginate->toArray();
  117. return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']];
  118. }
  119. }