386 lines
12 KiB
PHP
386 lines
12 KiB
PHP
<?php
|
||
|
||
namespace models;
|
||
|
||
use mt;
|
||
use phpcommon\SqlHelper;
|
||
|
||
class Transaction extends BaseModel {
|
||
|
||
const MINT_721_ACTION_TYPE = 1;
|
||
const MINT_1155_ACTION_TYPE = 2;
|
||
const EVOLVE_721_ACTION_TYPE = 3;
|
||
const EVOLVE_CHIP_ACTION_TYPE = 4;
|
||
const MINT_SHARD_BATCH_ACTION_TYPE = 5;
|
||
const SHARD_MIX_BY_USER_ACTION_TYPE = 6;
|
||
const PLUGIN_CHIP_ACTION_TYPE = 7;
|
||
const UNPLUG_CHIP_ACTION_TYPE = 8;
|
||
|
||
const BUY_BEGIN_ACTION_TYPE = 100;
|
||
|
||
const BUY_EXP_ACTION_TYPE = 101;
|
||
const BUY_PASS_ACTION_TYPE = 102;
|
||
const BUY_GOODS_ACTION_TYPE = 103;
|
||
const RESET_HERO_LEVEL_TYPE = 104;
|
||
const BUY_GOODS_FROM_MARKET_ACTION_TYPE = 105;
|
||
const BUY_OUTAPP_PLANET_ACTION_TYPE = 110;
|
||
|
||
const BUY_END_ACTION_TYPE = 200;
|
||
|
||
const CREATED_STATUS = 1;
|
||
const REPORTED_STATUS = 2;
|
||
const COMPLETED_STATUS = 3;
|
||
|
||
public static function all()
|
||
{
|
||
$rows = SqlHelper::ormSelect(
|
||
myself()->_getSelfMysql(),
|
||
't_transaction',
|
||
array(
|
||
'address' => myself()->_getAddress(),
|
||
'client_confirmed' => 1
|
||
)
|
||
);
|
||
return $rows;
|
||
}
|
||
|
||
public static function find($transId)
|
||
{
|
||
$row = SqlHelper::ormSelectOne(
|
||
myself()->_getSelfMysql(),
|
||
't_transaction',
|
||
array(
|
||
'address' => myself()->_getAddress(),
|
||
'trans_id' => $transId,
|
||
)
|
||
);
|
||
return $row;
|
||
}
|
||
|
||
public static function findEx($transId)
|
||
{
|
||
$row = SqlHelper::ormSelectOne(
|
||
myself()->_getMysql($transId),
|
||
't_transaction',
|
||
array(
|
||
'trans_id' => $transId,
|
||
)
|
||
);
|
||
return $row;
|
||
}
|
||
|
||
public static function add($transId, $action, $tokenId, $tokenType, $itemUniId, $itemId, $itemNum, $result)
|
||
{
|
||
SqlHelper::insert(
|
||
myself()->_getSelfMysql(),
|
||
't_transaction',
|
||
array(
|
||
'account_id' => myself()->_getAccountId(),
|
||
'address' => myself()->_getAddress(),
|
||
'trans_id' => $transId,
|
||
'action' => $action,
|
||
'token_id' => $tokenId,
|
||
'token_type' => $tokenType,
|
||
'item_uniid' => $itemUniId,
|
||
'item_id' => $itemId,
|
||
'item_num' => $itemNum,
|
||
'result' => $result,
|
||
'status' => self::CREATED_STATUS,
|
||
'createtime' => myself()->_getNowTime(),
|
||
'modifytime' => myself()->_getNowTime(),
|
||
)
|
||
);
|
||
}
|
||
|
||
public static function addEx($address,$transId, $action, $tokenId, $tokenType, $itemUniId, $itemId, $itemNum, $result)
|
||
{
|
||
SqlHelper::insert(
|
||
myself()->_getMysql(''),
|
||
't_transaction',
|
||
array(
|
||
'account_id' => '',
|
||
'address' => $address,
|
||
'trans_id' => $transId,
|
||
'action' => $action,
|
||
'token_id' => $tokenId,
|
||
'token_type' => $tokenType,
|
||
'item_uniid' => $itemUniId,
|
||
'item_id' => $itemId,
|
||
'item_num' => $itemNum,
|
||
'result' => $result,
|
||
'status' => self::CREATED_STATUS,
|
||
'createtime' => myself()->_getNowTime(),
|
||
'modifytime' => myself()->_getNowTime(),
|
||
)
|
||
);
|
||
}
|
||
|
||
public static function getActionDesc($transDb)
|
||
{
|
||
switch ($transDb['action']) {
|
||
case self::MINT_721_ACTION_TYPE:
|
||
case self::MINT_1155_ACTION_TYPE:
|
||
{
|
||
return 'Mint';
|
||
}
|
||
break;
|
||
case self::EVOLVE_721_ACTION_TYPE:
|
||
{
|
||
return 'Advance';
|
||
}
|
||
break;
|
||
case self::EVOLVE_CHIP_ACTION_TYPE:
|
||
{
|
||
return 'Upgrade';
|
||
}
|
||
break;
|
||
case self::MINT_SHARD_BATCH_ACTION_TYPE:
|
||
{
|
||
return 'Mint';
|
||
}
|
||
break;
|
||
case self::SHARD_MIX_BY_USER_ACTION_TYPE:
|
||
{
|
||
return 'Synthesis';
|
||
}
|
||
break;
|
||
case self::PLUGIN_CHIP_ACTION_TYPE:
|
||
{
|
||
return 'Equipment';
|
||
}
|
||
break;
|
||
case self::UNPLUG_CHIP_ACTION_TYPE:
|
||
{
|
||
return 'Remove';
|
||
}
|
||
break;
|
||
default:
|
||
{
|
||
return 'None';
|
||
}
|
||
}
|
||
}
|
||
|
||
public static function getJumpInfo($transDb)
|
||
{
|
||
$jumpInfo = null;
|
||
switch ($transDb['action']) {
|
||
case self::MINT_721_ACTION_TYPE:
|
||
{
|
||
switch ($transDb['token_type']) {
|
||
case Nft::HERO_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 1, //英雄激活(英雄详情)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case Nft::EQUIP_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 2,//武器激活(武器详情)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case Nft::EQUIP_CHIP:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 3,//武器激活(武器详情)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
}
|
||
|
||
}
|
||
break;
|
||
case self::MINT_1155_ACTION_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 3, //芯片生成(芯片列表)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case self::EVOLVE_721_ACTION_TYPE:
|
||
{
|
||
switch ($transDb['token_type']) {
|
||
case Nft::HERO_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 4, //英雄升阶(英雄进阶界面)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case Nft::EQUIP_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 5,//武器升阶(武器进阶界面)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
case self::EVOLVE_CHIP_ACTION_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 6, //芯片进阶(芯片升级界面)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case self::MINT_SHARD_BATCH_ACTION_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 7, //碎片生成(碎片列表)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case self::SHARD_MIX_BY_USER_ACTION_TYPE:
|
||
{//碎片合成
|
||
switch ($transDb['token_type']) {
|
||
case Nft::HERO_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 1, //英雄合成(英雄详情)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case Nft::EQUIP_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 2,//武器合成(武器详情)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
case self::PLUGIN_CHIP_ACTION_TYPE:
|
||
{
|
||
switch ($transDb['token_type']) {
|
||
case Nft::HERO_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 8, //英雄芯片镶嵌(目标英雄详情介面的Chip页签)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case Nft::EQUIP_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 9,//武器芯片镶嵌(目标枪械详情介面的Chip页签)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
case self::UNPLUG_CHIP_ACTION_TYPE:
|
||
{
|
||
switch ($transDb['token_type']) {
|
||
case Nft::HERO_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 8, //英雄芯片卸下(目标英雄详情介面的Chip页签)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
case Nft::EQUIP_TYPE:
|
||
{
|
||
$jumpInfo = array(
|
||
'action' => 9,//武器芯片卸下(目标枪械详情介面的Chip页签)
|
||
'params' => array(
|
||
$transDb['token_id']
|
||
)
|
||
);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
default:
|
||
{
|
||
|
||
}
|
||
}
|
||
return $jumpInfo;
|
||
}
|
||
|
||
public static function getStatusDesc($transDb)
|
||
{
|
||
switch ($transDb['status']) {
|
||
case self::CREATED_STATUS:
|
||
case self::REPORTED_STATUS:
|
||
{
|
||
return 2;
|
||
}
|
||
break;
|
||
case self::COMPLETED_STATUS:
|
||
{
|
||
return 1;
|
||
}
|
||
break;
|
||
default:
|
||
{
|
||
return 'None';
|
||
}
|
||
}
|
||
}
|
||
|
||
public static function reportResult($transId, $result)
|
||
{
|
||
SqlHelper::update(
|
||
myself()->_getSelfMysql(),
|
||
't_transaction',
|
||
array(
|
||
'address' => myself()->_getAddress(),
|
||
'trans_id' => $transId
|
||
),
|
||
array(
|
||
'client_result' => $result,
|
||
'client_confirmed' => 1,
|
||
'modifytime' => myself()->_getNowTime()
|
||
)
|
||
);
|
||
}
|
||
|
||
}
|