uniacid = $u->uniacid; $this->orderCouponSend(); $this->orderPaidCouponSend(); } } public function orderCouponSend() { $records = OrderGoodsCoupon::uniacid() ->where(['send_type'=>OrderGoodsCoupon::ORDER_TYPE,'status'=>OrderGoodsCoupon::WAIT_STATUS]) ->whereHas('hasOneOrderGoods',function ($query){ $query->whereHas('hasOneOrder',function ($q){ $q->where('status',Order::COMPLETE); }) ; }) ->get(); if($records->isEmpty()) { return; } foreach ($records as $record) { $numReason = $record->num_reason?$record->num_reason.'||':''; (new CronSendService($record,$numReason,1))->sendCoupon(); } } public function orderPaidCouponSend() { $records = OrderGoodsCoupon::uniacid() ->where(['send_type'=>OrderGoodsCoupon::ORDER_PAID_TYPE,'status'=>OrderGoodsCoupon::WAIT_STATUS]) ->whereHas('hasOneOrderGoods',function ($query){ $query->whereHas('hasOneOrder',function ($q){ $q->whereIn('status',[Order::WAIT_SEND,Order::WAIT_RECEIVE,Order::COMPLETE]); }) ; }) ->get(); if($records->isEmpty()) { return; } foreach ($records as $record) { $numReason = $record->num_reason?$record->num_reason.'||':''; (new CronSendService($record,$numReason,1))->sendCoupon(); } } }