<?php

namespace app\model;

class UserMoneyModel extends BaseModel
{
    protected $name = 'user_money';
    public static function getUserMoney($user_id){
        $res=self::where('user_id',$user_id)->field('usable_num,frozen_num,stock_id as name')->select();
        $result=[];
        if(!empty($res)){
            $result=$res->toArray();
        }
        if(empty($result)){
            $info = new self;
            $info->user_id = $user_id;
            $info->stock_id = 'USD';
            $info->usable_num = 0;
            $info->frozen_num = 0;
            $info->create_time = date('Y-m-d H:i:s');
            $info->update_time = date('Y-m-d H:i:s');
            $info->save();
            $result=$info->toArray();
        }
        return $result;
    }
    public static function getUserUSDByUserId(array $data):array
    {
        $info = self::where([
            'user_id'=>$data['user_id'],
            'stock_id'=>'USD'
        ])->field('usable_num,frozen_num,stock_id as name')->find();
        if(empty($info)){
            $info = new self;
            $info->user_id = $data['user_id'];
            $info->stock_id = 'USD';
            $info->usable_num = 0;
            $info->frozen_num = 0;
            $info->create_time = date('Y-m-d H:i:s');
            $info->update_time = date('Y-m-d H:i:s');
            $info->save();
        }
        return $info->toArray();
    }
    public static function InsertUserMoneyk(array $data)
    {
        $self = new self;
        $self->user_id = $data['user_id'];
        $self->stock_id = $data['stock_id'];
        $self->usable_num = $data['usable_num'];
        $self->frozen_num = $data['frozen_num'];
        $self->create_time = date('Y-m-d H:i:s');
        $self->save();
    }
    public static function getUserUSDLock(int $user_id,string $stock_id='USD'):array
    {
        $info = self::where([
            'user_id'=>$user_id,
            'stock_id'=>$stock_id
        ])->lock(true)->find();
        if(empty($info)){
            $info = new self;
            $info->user_id = $user_id;
            $info->stock_id = $stock_id;
            $info->usable_num = 0;
            $info->frozen_num = 0;
            $info->create_time = date('Y-m-d H:i:s');
            $info->update_time = date('Y-m-d H:i:s');
            $info->save();
        }
        return $info->toArray();
    }
    public static function updateUserUSD(array $update_data,array $where)
    {
        $update_data['update_time']=date('Y-m-d H:i:s');
        $res=self::where($where)->save($update_data);
        //echo  self::where($where)->getLastSql();
        return $res;
    }

}