AnotherPayOrder.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. /**
  3. * Author: 芸众商城 www.yunzshop.com
  4. * Date: 2018/1/18
  5. * Time: 下午2:21
  6. */
  7. namespace app\frontend\models;
  8. use Illuminate\Database\Eloquent\Builder;
  9. class AnotherPayOrder extends \app\common\models\Order
  10. {
  11. protected $appends = ['status_name', 'pay_type_name', 'button_models'];
  12. protected $hidden = [
  13. 'uniacid',
  14. 'create_time',
  15. 'is_deleted',
  16. 'is_member_deleted',
  17. 'finish_time',
  18. 'pay_time',
  19. 'send_time',
  20. 'send_time',
  21. 'uid',
  22. 'cancel_time',
  23. 'created_at',
  24. 'updated_at',
  25. 'deleted_at'
  26. ];
  27. public function scopeDetail($query){
  28. return $query->with(['hasManyOrderGoods'=>function($query){
  29. return $query->detail();
  30. }])->select(['id','uid','order_sn','price','goods_price','create_time','finish_time','pay_time','send_time','cancel_time','dispatch_type_id','pay_type_id','status','refund_id','dispatch_price','deduction_price']);
  31. }
  32. /**
  33. * 订单列表
  34. * @return $this
  35. */
  36. public function scopeOrders($query)
  37. {
  38. return $query->with(['hasManyOrderGoods'=>function($query){
  39. return $query->select(['order_id','goods_id','goods_price','total','price','thumb','title','goods_option_id','goods_option_title','comment_status']);
  40. }],'hasOnePayType')->orderBy('id','desc');
  41. }
  42. public function belongsToMember()
  43. {
  44. return $this->belongsTo(app('OrderManager')->make('Member'), 'uid', 'uid');
  45. }
  46. public function belongsToOrderGoods()
  47. {
  48. return $this->belongsTo(self::getNearestModel('OrderGoods'), 'id', 'order_id');
  49. }
  50. public function orderGoodsBuilder($status)
  51. {
  52. $operator = [];
  53. if ($status == 0) {
  54. $operator['operator'] = '=';
  55. $operator['status'] = 0;
  56. } else {
  57. $operator['operator'] = '>';
  58. $operator['status'] = 0;
  59. }
  60. return function ($query) use ($operator) {
  61. return $query->with('hasOneComment')->where('comment_status', $operator['operator'], $operator['status']);
  62. };
  63. }
  64. public static function getMyCommentList($status)
  65. {
  66. $operator = [];
  67. if ($status == 0) {
  68. $operator['operator'] = '=';
  69. $operator['status'] = 0;
  70. } else {
  71. $operator['operator'] = '>';
  72. $operator['status'] = 0;
  73. }
  74. return self::whereHas('hasManyOrderGoods', function($query) use ($operator){
  75. return $query->where('comment_status', $operator['operator'], $operator['status']);
  76. })
  77. ->with([
  78. 'hasManyOrderGoods' => self::orderGoodsBuilder($status)
  79. ])->where('status', 3)->orderBy('id', 'desc')->get();
  80. }
  81. /**
  82. * 关系链 指定商品
  83. *
  84. * @param $uid
  85. * @return \Illuminate\Database\Eloquent\Collection|static[]
  86. */
  87. public static function getOrderListByUid($uid)
  88. {
  89. return self::select(['*'])
  90. ->where('status','>=',1)
  91. ->where('status','<=',3)
  92. ->with(['hasManyOrderGoods'=>function($query){
  93. return $query->select(['*']);
  94. }])
  95. ->get();
  96. }
  97. public static function boot()
  98. {
  99. parent::boot();
  100. //找人代付
  101. $uid = \YunShop::request()->pid;
  102. if (isset($uid) && $uid == "null") {
  103. $uid = \YunShop::app()->getMemberId();
  104. }
  105. self::addGlobalScope(function(Builder $query) use ($uid){
  106. return $query->uid($uid)->where('is_member_deleted',0);
  107. });
  108. }
  109. }