OrderIncomeCount.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: yunzhong
  5. * Date: 2018/10/31
  6. * Time: 14:38
  7. */
  8. namespace app\backend\modules\charts\models;
  9. use app\common\models\BaseModel;
  10. use app\common\models\OrderAddress;
  11. class OrderIncomeCount extends BaseModel
  12. {
  13. public $table = 'yz_order_income_count';
  14. protected $guarded = [''];
  15. public function scopeSearch($query, $search)
  16. {
  17. $query->uniacid();
  18. if ($search['order_sn']) {
  19. $query->where('order_sn', $search['order_sn']);
  20. }
  21. if ($search['shop_name']) {
  22. $query->where('shop_name','like','%'.$search['shop_name'].'%');
  23. }
  24. if ($search['member']) {
  25. $query->whereHas('hasOneMember', function ($q) use ($search) {
  26. $q->searchLike($search['member']);
  27. });
  28. }
  29. if ($search['recommend']) {
  30. $query->whereHas('hasOneRecommend', function ($q) use ($search) {
  31. $q->searchLike($search['recommend']);
  32. });
  33. }
  34. if ($search['member_id']) {
  35. $query->where('uid', $search['member_id']);
  36. }
  37. if ($search['status'] != '') {
  38. $query->where('status', $search['status']);
  39. }
  40. if ($search['is_time']) {
  41. if ($search['time']) {
  42. $range = [strtotime($search['time']['start']), strtotime($search['time']['end'])];
  43. $query->whereBetween('created_at', $range);
  44. }
  45. }
  46. if ($search['order_sn']) {
  47. $query->where('order_sn', $search['order_sn']);
  48. }
  49. if ($search['province_id']) {
  50. $query->whereHas('hasOneOrderAddress',function ($q) use ($search) {
  51. if ($search['street_id']) {
  52. $q->where('street_id', $search['street_id']);
  53. } elseif ($search['district_id']) {
  54. $q->where('district_id', $search['district_id']);
  55. } elseif ($search['city_id']) {
  56. $q->where('city_id', $search['city_id']);
  57. } else {
  58. $q->where('province_id', $search['province_id']);
  59. }
  60. });
  61. }
  62. return $query;
  63. }
  64. public static function updateByOrderId($order_id, $data)
  65. {
  66. return self::uniacid()->where('order_id', $order_id)->update($data);
  67. }
  68. public function hasOneMember()
  69. {
  70. return $this->hasOne('app\common\models\Member', 'uid', 'uid');
  71. }
  72. public function hasOneRecommend()
  73. {
  74. return $this->hasOne('app\common\models\Member', 'uid', 'parent_id');
  75. }
  76. public function hasOneOrderAddress()
  77. {
  78. return $this->hasOne(OrderAddress::class, 'order_id', 'order_id');
  79. }
  80. }