get('mt5db'); } public function getPositionList($post) { $result = ['code'=>0,'data'=>[],'message'=>'']; $order = isset($post['order']) ? $post['order'] : ''; $orderBy = isset($post['orderBy']) ? strtolower($post['orderBy']) : 'desc'; $search = isset($post['search']) ? $post['search'] : ''; $start = isset($post['start']) ? (int) $post['start'] : 0; $length = isset($post['length']) ? (int) $post['length'] : 20; $draw = isset($post['draw']) ? $post['draw'] : 1; $where = ['and']; if($search) { $where[] = [ 'or', ['like','Login',$search], ['like',"Position",$search] ]; } $allowOrderColumn = ['Position','Login','Action','Symbol','PriceSL','PriceTP','Volume','PriceOpen','TimeCreate','PriceCurrent','Storage','Profit','Comment']; if(in_array($order,$allowOrderColumn) && in_array($orderBy,['asc','desc'])){ if($orderBy == "asc"){ $orderCondition = [$order => SORT_ASC]; }else{ $orderCondition = [$order => SORT_DESC]; } }else{ $orderCondition = ['Position' => SORT_DESC]; } $query = static::find(); $query->where($where) ->orderBy($orderCondition); $count = $query->count(); $query->offset($start)->limit($length); $list = $query->asArray()->all(); if($count){ foreach ($list as $k => $v){ $list[$k]['Profit'] = Utils::formatFloatOrInt($v['Profit']); $list[$k]['PriceOpen'] = Utils::formatFloatOrInt($v['PriceOpen']); $list[$k]['PriceCurrent'] = Utils::formatFloatOrInt($v['PriceCurrent']); } } $data['data'] = $list; $data['draw'] = $draw; $data['recordsFiltered'] = $count; $data['recordsTotal'] = $count; $result['data'] = $data; $result['code'] = 1; return $result; } }