uniacid = $u->uniacid; $this->orderCouponSend(); } } public function orderCouponSend() { $log = Setting::get('coupon.exec_month_log'); if ($log == date('m')) { return; } Setting::set('coupon.exec_month_log', date('m')); $records = OrderGoodsCoupon::uniacid() ->where(['send_type'=>OrderGoodsCoupon::MONTH_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,2))->sendCoupon(); } } }