OrderPluginBonus.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. * Author: 芸众商城 www.yunzshop.com
  4. * Date: 2018/9/19
  5. * Time: 下午3:41
  6. */
  7. namespace app\common\models\order;
  8. use app\common\models\BaseModel;
  9. use app\common\models\Member;
  10. use app\common\models\OrderGoods;
  11. use Illuminate\Database\Eloquent\Builder;
  12. use Illuminate\Support\Facades\DB;
  13. use Yunshop\StoreCashier\common\models\CashierOrder;
  14. use Yunshop\StoreCashier\common\models\StoreOrder;
  15. use Yunshop\Supplier\common\models\SupplierOrder;
  16. class OrderPluginBonus extends BaseModel
  17. {
  18. public $table = 'yz_order_plugin_bonus';
  19. public $timestamps = true;
  20. protected $guarded = [''];
  21. protected $casts = [
  22. 'ids' => 'json'
  23. ];
  24. protected $appends = [
  25. 'info'
  26. ];
  27. public function scopeSearch($query,$search)
  28. {
  29. $query->uniacid();
  30. if ($search['member_id']) {
  31. $query->where('member_id', $search['member_id']);
  32. }
  33. if ($search['order_sn']) {
  34. $query->where('content', $search['order_sn']);
  35. }
  36. if ($search['is_time']) {
  37. $time = [strtotime($search['start_time']),strtotime($search['end_time'])];
  38. $query->whereBetween('created_at', $time);
  39. }
  40. if ($search['member']) {
  41. $query->whereHas('hasOneMember',function ($q)use ($search) {
  42. $q->searchLike($search['member_id']);
  43. });
  44. }
  45. return $query; // TODO: Change the autogenerated stub
  46. }
  47. public static function addRow($row)
  48. {
  49. $model = new self();
  50. $model->fill($row);
  51. $model->save();
  52. return $model;
  53. }
  54. public static function updateRow($row)
  55. {
  56. $model = self::where('order_id', $row['order_id'])->where('code',$row['code']);
  57. $model->update($row);
  58. return $model;
  59. }
  60. public static function updateStatus($order_id)
  61. {
  62. $model = self::where('order_id', $order_id)->update(['status' => 1]);
  63. return $model;
  64. }
  65. public static function getInfoByOrderId($order_id)
  66. {
  67. return self::select()->where('order_id', $order_id);
  68. }
  69. public function getInfoAttribute()
  70. {
  71. $info = DB::table($this->table_name)->select()
  72. ->whereIn('id', $this->ids)
  73. ->get();
  74. return $info;
  75. }
  76. public function hasOneOrderGoods()
  77. {
  78. return $this->hasOne(OrderGoods::class,'order_id','order_id');
  79. }
  80. public function hasOneCashierOrder()
  81. {
  82. return $this->hasOne(CashierOrder::class,'order_id','order_id');
  83. }
  84. public function hasOneStoreOrder()
  85. {
  86. return $this->hasOne(StoreOrder::class,'order_id','order_id');
  87. }
  88. public function hasOneSupplierOrder()
  89. {
  90. return $this->hasOne(SupplierOrder::class,'order_id','order_id');
  91. }
  92. public function hasOneMember()
  93. {
  94. return $this->hasOne(Member::class,'uid','member_id');
  95. }
  96. }