$user_id, 'status'=>1 ])->field('order_number,deal_price,service_cost')->select(); if(!empty($list)) { $list_arr=$list->toArray(); foreach ($list_arr as $val){ $order_num=$val['order_number']*$val['deal_price'] + $val['service_cost']; $num+=$order_num; } } return $num; } /** * 买入成本 */ public static function getTradeOrderPrice(int $user_id,string $digital_id,int $trade_type) { $num=0; $buy_num=0; //查询持仓订单总成本 $list=self::where([ 'user_id'=>$user_id, 'status'=>3, 'digital_id'=>$digital_id, 'trade_type'=>$trade_type ])->field('order_number,closing_price,service_cost,closing_cost')->select(); if(!empty($list)) { $list_arr=$list->toArray(); foreach ($list_arr as $val){ $order_num=$val['order_number']*$val['closing_price'] + $val['service_cost']; $num+=$order_num; $buy_num+=$val['order_number']; } } return [ 'order_money'=>$num, //订单总额 'order_num'=>$buy_num //订单数量 ]; } public static function getTradeOrderFee(int $user_id) { $info=self::where([ ['user_id','=',$user_id], ['status','in',[1,3]] ])->sum('closing_cost'); return $info; } public static function getUserTradeNum(int $user_id) { //查询持仓订单总成本 $count=self::where([ ['user_id','=',$user_id], ['status','>',0] ])->count(); return $count>0; } /** * 获取累计盈亏 */ public static function getTradeOrderDailyNum(int $user_id) { $num=0; //查询持仓订单总成本 $list=self::where([ 'user_id'=>$user_id, 'status'=>3 ])->field('order_number,closing_price,deal_price,closing_cost,service_cost')->select(); if(!empty($list)) { $list_arr=$list->toArray(); foreach ($list_arr as $val){ $order_num=$val['order_number']*($val['closing_price']-$val['deal_price'])-$val['closing_cost']-$val['service_cost']; $num+=$order_num; } } return $num; } public static function getTradeList($trade_name,$num) { $trade_list=[]; $list=self::where([ ['status','in','1,3'], ['digital_id','=',strtoupper($trade_name)] ])->field('deal_price,order_number,closing_price,open_time,closing_time,status')->order('trade_id desc')->limit($num)->select(); if(!empty($list)) { $list_arr=$list->toArray(); foreach ($list_arr as $val){ if($val['status']==1){ $trade_data['order_number']=$val['order_number']; $trade_data['deal_price']=$val['closing_price']; $trade_data['order_time']=strtotime($val['open_time'])*1000; $trade_data['trade_type']=1; array_push($trade_list,$trade_data); } if($val['status']==3){ $trade_data['order_number']=$val['order_number']; $trade_data['deal_price']=$val['closing_price']; $trade_data['order_time']=strtotime($val['closing_time'])*1000; $trade_data['trade_type']=1; array_push($trade_list,$trade_data); $sale_data['order_number']=$val['order_number']; $sale_data['deal_price']=$val['closing_price']; $sale_data['order_time']=strtotime($val['closing_time'])*1000; $sale_data['trade_type']=2; array_push($trade_list,$sale_data); } } } return $trade_list; } }