236 lines
5.9 KiB
PHP
236 lines
5.9 KiB
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
use App\Currency;
|
|
use App\Logic\WalletLogicNew;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class UsersWallet extends Model
|
|
{
|
|
|
|
protected $table = "users_wallet";
|
|
public $timestamps = false;
|
|
const CURRENCY_DEFAULT = "USDC";
|
|
protected $hidden = ["private"];
|
|
protected $appends = ["currency_name", "currency_type", "is_legal", "is_lever", "is_match", "is_micro", "cny_price", "pb_price","currency_logo","usdt_price"];
|
|
public function getCreateTimeAttribute()
|
|
{
|
|
$value = $this->attributes['create_time'];
|
|
return $value ? date('Y-m-d H:i:s', $value) : '';
|
|
}
|
|
|
|
public function getCurrencyTypeAttribute()
|
|
{
|
|
return $this->hasOne('App\Currency', 'id', 'currency')->value('type');
|
|
}
|
|
|
|
|
|
public function getCurrencyNameAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('name');
|
|
}
|
|
|
|
public function getIsLegalAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('is_legal');
|
|
}
|
|
|
|
public function getIsLeverAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('is_lever');
|
|
}
|
|
|
|
public function getIsMatchAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('is_match');
|
|
}
|
|
|
|
public function getIsMicroAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('is_micro');
|
|
}
|
|
|
|
public function currencyCoin()
|
|
{
|
|
return $this->belongsTo(Currency::class, 'currency', 'id');
|
|
}
|
|
|
|
public static function MmakeWallet($user_id)
|
|
{
|
|
|
|
$init_balance = Setting::getValueByKey('init_balance');
|
|
|
|
|
|
self::insert([
|
|
'currency' => 3,
|
|
'user_id' => $user_id,
|
|
'change_balance' => $init_balance,
|
|
'address' => null,
|
|
'create_time' => time()
|
|
]);
|
|
|
|
$currency = Currency::where('is_legal',1)->orderBy('sort', 'asc')->get();
|
|
foreach ($currency as $key => $value) {
|
|
$res = self::where([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id
|
|
])->first();
|
|
if(!$res){
|
|
self::insert([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id,
|
|
'address' => null,
|
|
'create_time' => time()
|
|
]);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
public static function makeWalletold($user_id)
|
|
{
|
|
// $currency = Currency::all();
|
|
$currency = Currency::where('is_legal',1)->orderBy('sort', 'asc')->get();
|
|
foreach ($currency as $key => $value) {
|
|
$res = self::where([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id
|
|
])->first();
|
|
if(!$res){
|
|
self::insert([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id,
|
|
'address' => null,
|
|
'create_time' => time()
|
|
]);
|
|
}
|
|
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
public static function makeWallet($user_id)
|
|
{
|
|
|
|
$currency = Currency::where('is_legal',1)->orderBy('sort', 'asc')->get();
|
|
foreach ($currency as $key => $value) {
|
|
$res = self::where([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id
|
|
])->first();
|
|
if(!$res){
|
|
self::insert([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id,
|
|
'address' => null,
|
|
'create_time' => time()
|
|
]);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
}
|
|
public static function makeWalletbak($user_id)
|
|
{
|
|
$currency = Currency::all();
|
|
|
|
foreach ($currency as $key => $value) {
|
|
$res = self::where([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id
|
|
])->first();
|
|
if(!$res){
|
|
self::insert([
|
|
'currency' => $value->id,
|
|
'user_id' => $user_id,
|
|
'address' => null,
|
|
'create_time' => time()
|
|
]);
|
|
}
|
|
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public static function getAddress(UsersWallet $wallet){
|
|
$saveFlag = false;
|
|
|
|
if($wallet->currency == 3){
|
|
|
|
$return = ['omni'=>$wallet->address_2,'erc20' => $wallet->address];
|
|
}else{
|
|
|
|
|
|
$return = $wallet->address;
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
|
|
public static function getUsdtWallet($userId){
|
|
return self::where("user_id", $userId)
|
|
->where("currency", 3)
|
|
->first();
|
|
}
|
|
|
|
public static function getDF1Wallet($userId){
|
|
$res = self::where("user_id", $userId)
|
|
->where("currency", 29)
|
|
->first();
|
|
return $res;
|
|
}
|
|
|
|
public function getCurrencyLogoAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('logo');
|
|
}
|
|
|
|
|
|
public function getUsdtPriceAttribute()
|
|
{
|
|
return $this->currencyCoin()->value('price') ?? 1;
|
|
}
|
|
|
|
public function getPbPriceAttribute()
|
|
{
|
|
$currency_id = $this->attributes['currency'];
|
|
return Currency::getPbPrice($currency_id);
|
|
}
|
|
|
|
public function getCnyPriceAttribute()
|
|
{
|
|
$currency_id = $this->attributes['currency'];
|
|
return Currency::getCnyPrice($currency_id);
|
|
}
|
|
|
|
public function user()
|
|
{
|
|
return $this->belongsTo(Users::class, 'user_id', 'id');
|
|
}
|
|
|
|
public function getPrivateAttribute($value)
|
|
{
|
|
|
|
return empty($value) ? '' : decrypt($value);
|
|
}
|
|
public function setPrivateAttribute($value)
|
|
{
|
|
$this->attributes['private'] = encrypt($value);
|
|
}
|
|
|
|
public function getAccountNumberAttribute($value)
|
|
{
|
|
return $this->user()->value('account_number') ?? '';
|
|
}
|
|
}
|