where('apply_cancel','0') ->where('status','0')->where('created_at','<',$date) ->pluck('id'); if(count($order_ids)>0){ $data=[]; foreach($order_ids as $key=>$val){ $order=Order::where('id',$val)->first(); $data[$key]['order_id']=$order->id; $data[$key]['user_id']=$order->user_id; $data[$key]['store_id']=$order->store_id; $data[$key]['status']=2; $data[$key]['reason']='系统自动取消'; $data[$key]['remark']=null; $data[$key]['using']=1; $data[$key]['type']=3; $data[$key]['created_at']=$data[$key]['updated_at']=date("Y-m-d H:i:s"); } try{ DB::transaction(function()use($order_ids,$data){ Order::whereIn('id',$order_ids)->update([ 'apply_cancel'=>2, 'cancel_at'=>date("Y-m-d H:i:s") ]); OrderCancelDB::insert($data); },5); Log::info(json_encode($order_ids).':系统自动取消订单成功'); //取消订单通知 foreach($order_ids as $key=>$val){ $order=Order::where('id',$val)->first(); $user=User::where('id',$order->user_id)->first(); if($user->openId){ $data['openid']=$user->openId; $data['data']=[ 'first' => '您的订单:'.$order->order_no.'一小时未支付,已被系统自动取消', 'keyword1' => $user->nickname, 'keyword2' => $order->order_no, 'keyword3' => '已取消', 'keyword4' => date("Y-m-d H:i:s") ]; event(new CancelOrderEvent($data)); } } }catch(\Exception $e){ Log::info(json_encode($order_ids).':系统自动取消订单失败:'.$e->getMessage()); } } } }