game2006api/webapp/models/UserSeasonRing.php
hujiabin 1ef5fc42ea 1
2022-11-01 19:56:51 +08:00

104 lines
2.9 KiB
PHP

<?php
namespace models;
require_once('services/NftService.php');
use mt;
use phpcommon\SqlHelper;
use phpcommon;
use services\FormulaService;
use services\NftService;
class UserSeasonRing extends BaseModel
{
public static function ringList($targetId)
{
$ringList = array();
self::getRingList($targetId,function ($row) use(&$ringList) {
$list = array(
'item_id' =>$row['item_id'],
'season_id' =>$row['season'],
);
array_push($ringList, $list);
});
return $ringList;
}
public static function getRingList($targetId,$cb)
{
SqlHelper::ormSelect(
myself()->_getSelfMysql(),
't_user_season_ring',
array(
'account_id' => $targetId
),
function ($row) use($cb) {
$cb($row);
}
);
// print_r(NftService::getRing(phpcommon\extractOpenId($targetId)));die;
foreach (NftService::getRing(phpcommon\extractOpenId($targetId)) as $nftDb) {
if (! $nftDb['deleted']){
$row = SqlHelper::ormSelectOne(
myself()->_getSelfMysql(),
't_user_season_ring',
array(
'token_id' => $nftDb['token_id'],
)
);
if (!$row) {
$itemMeta = mt\Item::get($nftDb['item_id']);
if ($itemMeta) {
self::addNftRing($itemMeta, $nftDb['token_id'],$targetId,$nftDb['param1']);
$row = SqlHelper::ormSelectOne(
myself()->_getSelfMysql(),
't_user_season_ring',
array(
'token_id' => $nftDb['token_id'],
)
);
}
if ($row) {
$cb($row);
}
}
}
}
}
public static function addNftRing($itemMeta, $tokenId,$accountId,$param1)
{
return self::internalAddHero(
myself()->_getMysql($tokenId),
$itemMeta,
$accountId,
$tokenId,
$param1);
}
public static function internalAddHero($conn, $itemMeta, $accountId, $tokenId,$param1)
{
$fieldsKv = array(
'season' => $param1,
'item_id' => $itemMeta['id'],
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime()
);
if ($accountId) {
$fieldsKv['account_id'] = $accountId;
}
if ($tokenId) {
$fieldsKv['token_id'] = $tokenId;
}
SqlHelper::insert(
$conn,
't_user_season_ring',
$fieldsKv
);
}
}