CommonOrderSearch.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\models\common\admin\order;
  8. class CommonOrderSearch
  9. {
  10. /**
  11. * 持续补充
  12. * * 注意!注意!注意!:订单表别名必须为o | 用户表别名必须为 u | 商品表别名必须为 g
  13. */
  14. /**
  15. * 相同的搜索
  16. */
  17. public function search($query, $page)
  18. {
  19. if (isset($page->user_id) && $page->user_id) {//查找指定用户的
  20. $query->andWhere([
  21. 'o.user_id' => $page->user_id,
  22. ]);
  23. }
  24. if (isset($page->clerk_id) && $page->clerk_id) {//查找指定核销员的订单
  25. $query->andWhere([
  26. 'o.clerk_id' => $page->clerk_id,
  27. ]);
  28. }
  29. if (isset($page->shop_id) && $page->shop_id) {//查找指定自提点的订单
  30. $query->andWhere([
  31. 'o.shop_id' => $page->shop_id,
  32. ]);
  33. }
  34. if (isset($page->parent_id) && $page->parent_id) {
  35. $query->andWhere(['o.parent_id' => $page->parent_id]);
  36. }
  37. if (isset($page->date_start) && $page->date_start) {
  38. $query->andWhere(['>=', 'o.created_at', strtotime($page->date_start)]);
  39. }
  40. if (isset($page->date_end) && $page->date_end) {
  41. $query->andWhere(['<=', 'o.created_at', strtotime($page->date_end)]);
  42. }
  43. if (isset($page->platform) && $page->platform) {
  44. $query->andWhere(['u.platform' => $page->platform]);
  45. }
  46. if (isset($page->is_offline) && $page->is_offline) {
  47. $query->andWhere(['o.is_offline' => $page->is_offline]);
  48. } else {
  49. $query->andWhere(['o.is_offline' => 0]);
  50. }
  51. return $query;
  52. }
  53. /**
  54. * 关键字订单搜索
  55. * @param $query
  56. * @param $keywordType 搜索类型 1.订单号 2.用户 3.收货人 4.用户ID 5.商品名称 6.收件人电话,7.配送员
  57. * @param $keyword 关键字
  58. * @return mixed
  59. */
  60. public function keyword($query, $keywordType, $keyword)
  61. {
  62. if (!empty($keyword)) {
  63. switch ($keywordType) {
  64. case 1:
  65. $query->andWhere(['like', 'o.order_no', $keyword]);
  66. break;
  67. case 2:
  68. $query->andWhere(['like', 'u.nickname', $keyword]);
  69. break;
  70. case 3:
  71. $query->andWhere(['like', 'o.name', $keyword]);
  72. break;
  73. case 4:
  74. $query->andWhere(['u.id' => $keyword]);
  75. break;
  76. case 5:
  77. $query->andWhere(['like', 'od.goods_info', $keyword]);
  78. break;
  79. case 6:
  80. $query->andWhere(['like', 'o.mobile', $keyword]);
  81. break;
  82. case 7:
  83. $query->andWhere(['like', 'd.nickname', $keyword]);
  84. break;
  85. default:
  86. break;
  87. }
  88. }
  89. return $query;
  90. }
  91. }