lever_ids=$lever_ids; } /** * Execute the job. * * @return void */ public function handle() { LeverTransaction::where('status' , LeverTransaction::CLOSED) ->where('settled' , 0) ->whereIn('id',$this->lever_ids) ->chunk(100, function($lever_transactions) { foreach ($lever_transactions as $key => $trade) { try { $agent_path=$trade->agent_path; $_p_arr =explode(',', $agent_path); if (!empty($_p_arr)) { $da=[]; foreach($_p_arr as $k=>$v){ $agent=Agent::getAgentById($v); $da[$k]['agent_id']=$v; $da[$k]['pro_loss']=$agent->pro_loss; $da[$k]['pro_ser']=$agent->pro_ser; } //极差收益 foreach ($da as $k=>$val){ if($k==0){ $pro_loss=$val['pro_loss']; $pro_ser=$val['pro_ser']; }else{ $n=$k-1; $pro_loss=bc_sub($val['pro_loss'],$da[$n]['pro_loss']); $pro_ser=bc_sub($val['pro_ser'],$da[$n]['pro_ser']); } if ($pro_loss > 0){ $_base_money =bc_mul($trade->fact_profits , -1); $change = bc_mul($_base_money , $pro_loss/100); Agent::change_agent_money( $val['agent_id'] , 1 , $change, $trade->id, '您的下级用户'.$trade->user_id.'的订单产生的头寸收益为'.$change.'。订单编号为'.$trade->id, $trade->user_id, $trade->legal ); } if ($pro_ser >0){ $change = bc_mul($trade->trade_fee ,$pro_ser/100); Agent::change_agent_money( $val['agent_id'], 2 , $change, $trade->id, '您的下级用户'.$trade->user_id.'的订单产生的手续费收益为'.$change.'。订单编号为'.$trade->id, $trade->user_id, $trade->legal ); } } } LeverTransaction::where('id' , $trade->id)->update(['settled' =>1]); }); } catch (\Exception $e) { echo 'File :' . $e->getFile() . PHP_EOL; echo 'Line :' . $e->getLine() . PHP_EOL; echo 'Msg :' . $e->getMessage(). PHP_EOL; } } }); } }