OrderService.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace app\extra\service\saas;
  3. use app\extra\basic\Service;
  4. use app\model\saas\SaasOrder;
  5. class OrderService extends Service
  6. {
  7. /**
  8. * @param array $param
  9. */
  10. public function getList(array $param = [])
  11. {
  12. $this->mode = new SaasOrder();
  13. return $this->searchVal($param,$this->searchFilter($param))->with(['goods' => function($query){
  14. $query->field("out_id,product_name,product_img,product_price");
  15. },"store" => function($query){
  16. $query->field("store_id,store_name,service_at_start,service_at_end");
  17. },"agent" => function ($query) {
  18. $query->field("agent_id,name");
  19. },"parent" => function ($query) {
  20. $query->field("order_id,status,pay_amount,order_amount,count");
  21. }])->paginate([
  22. "list_rows" => $param['pageSize'],
  23. "page" => $param['page']
  24. ]);
  25. }
  26. public function getDataListMini(array $param = [])
  27. {
  28. $this->mode = new SaasOrder();
  29. return $this->searchVal($param,$this->searchFilter($param))->with(['goods' => function($query){
  30. $query->field("out_id,product_name,product_img,product_price");
  31. }])->paginate([
  32. "list_rows" => $param['size'],
  33. "page" => $param['page']
  34. ]);
  35. }
  36. protected function searchFilter(array $param = []): array
  37. {
  38. $filter = [];
  39. !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['agent']];
  40. !empty($param['open_id']) && $filter[] = ["open_id", '=', $param['open_id']];
  41. !empty($param['statusLt']) && $filter[] = ["status", '=', ($param['statusLt']-1)];
  42. !empty($param['status']) && $filter[] = ["status", '=', $param['status']];
  43. !empty($param['ex_status']) && $filter[] = ["express_status", '=', ($param['ex_status']-1)];
  44. !empty($param['orderid']) && $filter[] = ["order_id", 'like', "%{$param['orderid']}%"];
  45. !empty($param['ordersn']) && $filter[] = ["order_sn", 'like', "%{$param['ordersn']}%"];
  46. return $filter;
  47. }
  48. }