game2006api/webapp/models/Transaction.php
aozhiwei c9d3a20170 1
2023-08-31 15:41:36 +08:00

386 lines
12 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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()
)
);
}
}