Files
repo-backend/app/TransactionOrder.php

187 lines
5.0 KiB
PHP

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use App\Jobs\LeverClose;
use App\UserReal;
use App\Jobs\LeverPushTrade;
class TransactionOrder extends Model
{
const BUY = 1; //买入
const SELL = 2; //卖出
const ENTRUST = 0; //挂单中
const TRANSACTION = 1; //交易中
const CLOSING = 2; //平仓中
const CLOSED = 3; //已平仓
const CANCEL = 4; //已撤单
protected $table = 'lever_transaction';
public $timestamps = false;
protected $appends = [
'user_name',
'agent_level',
'phone',
'parent_agent_name',
'currency_name',//tian add
'userreal_name',//tian add
'profits',//tian add
'symbol',
];
public function getSymbolAttribute()
{
$currency_id = $this->getAttribute('currency');
$legal_id = $this->getAttribute('legal');
$currency_match = CurrencyMatch::where('currency_id', $currency_id)
->where('legal_id', $legal_id)
->first();
return $currency_match ? $currency_match->symbol : '';
}
/**
* 取每单盈利
*
* @return void
*/
public function getProfitsAttribute()
{
$profits = 0;
$type = $this->getAttribute('type');
$number = $this->getAttribute('number');
$status = $this->getAttribute('status');
if ($status == self::ENTRUST || $status == self::CANCEL) {
return 0.00;
}
//$multiple = $this->getAttribute('multiple');
//$multiple_number = bc_mul($number, $multiple);
$update_price = $this->getAttribute('update_price');
$price = $this->getAttribute('price');
$diff = $type == self::BUY ? bc_sub($update_price, $price) : bc_sub($price, $update_price);
$profits = bc_mul($diff, $number);
return $profits;
}
public function getCurrencyNameAttribute() {
$value = $this->attributes['currency'];
return DB::table('currency')->where('id' , $value)->first()->name;
}
public function getUserrealNameAttribute() {
$value = $this->attributes['user_id'];
$is_real_name=DB::table('user_real')->where('user_id' , $value)->first();
if(!empty($is_real_name))
{
return $is_real_name->name;
}
else
{
return " ";
}
}
public function getCreateTimeAttribute() {
$value = $this->attributes['create_time'];
return date('Y-m-d H:i:s' , $value);
}
public function getUpdateTimeAttribute() {
$value = $this->attributes['update_time'];
if ($value == 0){
return '-';
}else{
return date('Y-m-d H:i:s' , $value);
}
}
public function getHandleTimeAttribute() {
$value = $this->attributes['handle_time'];
if ($value == 0){
return '-';
}else{
return date('Y-m-d H:i:s' , $value);
}
}
public function getCompleteTimeAttribute() {
$value = $this->attributes['complete_time'];
if ($value == 0){
return '-';
}else{
return date('Y-m-d H:i:s' , $value);
}
}
public function getPhoneAttribute() {
$user = $this->user()->getResults();
return $user->phone ?? '';
}
public function getUserNameAttribute() {
$user = $this->user()->getResults();
return $user->account_number ?? '';
}
public function getAgentLevelAttribute() {
$user = $this->user()->getResults();
if ($user) {
if ($user->agent_id == 0){
return '普通用户';
}else{
$agent = DB::table('agent')->where('id' , $user->agent_id)->first();
$agent_name = '';
if(!empty($agent) && $agent->level==0 ){
$agent_name = '超管';
}else if(!empty($agent) && $agent->level > 0){
$agent_name =$agent->level.'级代理商';
}
return $agent_name;
}
} else {
return '无用户';
}
}
public function getParentAgentNameAttribute() {
$user = $this->user()->getResults();
if ($user) {
if ($user->agent_note_id == 0){
return '无';
}else{
$agent = DB::table('agent')->where('id' , $user->agent_note_id)->first();
return $agent->username;
}
} else {
return '';
}
}
public static function get_user($uid){
return DB::table('users')->where('id' , $uid)->first();
}
public function user()
{
return $this->belongsTo(Users::class, 'user_id', 'id')->withDefault();
}
}