OrderRepository.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * 订单管理
  4. * @author system
  5. * @version 1.0
  6. * @date 2018-07-03 16:51:03
  7. *
  8. */
  9. namespace App\Repositories\Album;
  10. use App\Repositories\Base\Repository;
  11. class OrderRepository extends Repository {
  12. public function model() {
  13. return \App\Models\AlbumOrderModel::class;
  14. }
  15. public function searchOrder(array $search,array $orderby=['id'=>'desc'],$pagesize=10)
  16. {
  17. $currentQuery = $this->model;
  18. if(isset($search['keyword']) && ! empty($search['keyword'])) {
  19. $keywords = '%' . $search['keyword'] . '%';
  20. $currentQuery = $currentQuery->where(function ($query) use ($keywords) {
  21. $query->where('sno' , 'like', $keywords)
  22. ->orwhere('category', 'like', $keywords)
  23. ->orwhere('type', 'like', $keywords)
  24. ->orwhere('customer_name', 'like', $keywords)
  25. ->orwhere('customer_phone', 'like', $keywords)
  26. ->orwhere('customer_address', 'like', $keywords);
  27. });
  28. }
  29. if(isset($search['start']) && ! empty($search['start'])) {
  30. $currentQuery = $currentQuery->where(function ($query) use ($search) {
  31. $query->where('created_at','>=', $search['start']);
  32. });
  33. }
  34. if(isset($search['end']) && ! empty($search['end'])) {
  35. $currentQuery = $currentQuery->where(function ($query) use ($search) {
  36. $query->where('created_at','<=', $search['end']);
  37. });
  38. }
  39. if(isset($search['status'])) {
  40. $currentQuery = $currentQuery->where(function ($query) use ($search) {
  41. $query->where('status', $search['status']);
  42. });
  43. }
  44. if(isset($search['expected']) && ! empty($search['expected'])) {
  45. $currentQuery = $currentQuery->where(function ($query) use ($search) {
  46. $query->where('expected_time','<', now());
  47. });
  48. }
  49. // dd($orderby);
  50. $currentQuery = $currentQuery->where(function ($query) use ($search) {
  51. $query->where('store_id',$search['storeid']);
  52. });
  53. if($orderby && is_array($orderby)){
  54. foreach ($orderby AS $field => $value){
  55. //dd($orderby);
  56. $currentQuery = $currentQuery -> orderBy($field, $value);
  57. }
  58. }
  59. $currentQuery = $currentQuery->paginate($pagesize);
  60. return $currentQuery;
  61. }
  62. }