91 lines
2.4 KiB
PHP
91 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace services;
|
|
|
|
require_once('models/Nft.php');
|
|
|
|
use models\Nft;
|
|
|
|
class NftService extends BaseService {
|
|
|
|
private static $heroList = null;
|
|
private static $heroHash = null;
|
|
private static $equipList = null;
|
|
private static $equipHash = null;
|
|
private static $chipList = null;
|
|
private static $chipHash = null;
|
|
|
|
public static function isHeroOwner($tokenId)
|
|
{
|
|
self::mustBeHeros();
|
|
$nftDB = getXVal(self::$heroHash, $tokenId);
|
|
return $nftDb && $nftDB['owner_address'] == myself()->_getOpenId();
|
|
}
|
|
|
|
public static function isEquipOwner($tokenId)
|
|
{
|
|
self::mustBeEquips();
|
|
$nftDb = getXVal(self::$equipHash, $tokenId);
|
|
return $nftDb && $nftDB['owner_address'] == myself()->_getOpenId();
|
|
}
|
|
|
|
public static function isChipOwner($tokenId)
|
|
{
|
|
self::mustBeChips();
|
|
$nftDb = getXVal(self::$chipHash, $tokenId);
|
|
return $nftDb && $nftDB['owner_address'] == myself()->_getOpenId();
|
|
}
|
|
|
|
public static function getHeros()
|
|
{
|
|
self::mustBeHeros();
|
|
return self::$heroList;
|
|
}
|
|
|
|
public static function getEquips()
|
|
{
|
|
self::mustBeEquips();
|
|
return self::$equipList;
|
|
}
|
|
|
|
public static function getChips()
|
|
{
|
|
self::mustBeChips();
|
|
return self::$chipList;
|
|
}
|
|
|
|
private static function mustBeHeros()
|
|
{
|
|
if (is_null(self::$heroList)) {
|
|
self::$heroList = Nft::GetNftListByType(myself()->_getOpenId(), Nft::HERO_TYPE);
|
|
self::$heroHash = array();
|
|
foreach (self::$heroList as $nftDb) {
|
|
self::$heroHash[$nftDb['token_id']] = $nftDb;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static function mustBeEquips()
|
|
{
|
|
if (is_null(self::$equipList)) {
|
|
self::$equipList = Nft::GetNftListByType(myself()->_getOpenId(), Nft::EQUIP_TYPE);
|
|
self::$equipHash = array();
|
|
foreach (self::$equipList as $nftDb) {
|
|
self::$equipHash[$nftDb['token_id']] = $nftDb;
|
|
}
|
|
}
|
|
}
|
|
|
|
private static function mustBeChips()
|
|
{
|
|
if (is_null(self::$chipList)) {
|
|
self::$chipList = Nft::GetNftListByType(myself()->_getOpenId(), Nft::CHIP_TYPE);
|
|
self::$chipHash = array();
|
|
foreach (self::$chipList as $nftDb) {
|
|
self::$chipHash[$nftDb['token_id']] = $nftDb;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|