记录有ceg产出的nft

This commit is contained in:
hujiabin 2022-10-20 17:12:25 +08:00
parent 52b7050c87
commit df90ff750b
7 changed files with 134 additions and 5 deletions

View File

@ -599,12 +599,14 @@ DROP TABLE IF EXISTS `t_nft_active`;
CREATE TABLE `t_nft_active` ( CREATE TABLE `t_nft_active` (
`idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id', `idx` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
`account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id', `account_id` varchar(60) NOT NULL DEFAULT '' COMMENT '账号id',
`uniid` varchar(255) NOT NULL DEFAULT '' COMMENT 'nft uniid',
`token_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'token id', `token_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'token id',
`daytime` int(11) NOT NULL DEFAULT '0' COMMENT '今天0点时间',
`token_type` int(11) NOT NULL DEFAULT '0' COMMENT 'nft类型 1:英雄 2:枪支 3:芯片 5:碎片箱子', `token_type` int(11) NOT NULL DEFAULT '0' COMMENT 'nft类型 1:英雄 2:枪支 3:芯片 5:碎片箱子',
`createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `createtime` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间', `modifytime` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`idx`), PRIMARY KEY (`idx`),
UNIQUE KEY `token_id` (`token_id`), UNIQUE KEY `token_id_daytime` (`token_id`, `daytime`,`token_type`),
KEY `account_id_token_type` (`account_id`,`token_type`) KEY `account_id_token_type` (`account_id`,`token_type`)
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;

View File

@ -8,6 +8,7 @@ define('V_ITEM_GOLD', 10001); //金币
define('V_ITEM_DIAMOND', 10002); //钻石 define('V_ITEM_DIAMOND', 10002); //钻石
define('V_ITEM_EXP', 10003); //经验 define('V_ITEM_EXP', 10003); //经验
define('V_ITEM_ACTIVE', 10004); //活跃度 define('V_ITEM_ACTIVE', 10004); //活跃度
define('V_ITEM_BCEG', 10010); //BCEG
define('TN_BEGIN', 8001); define('TN_BEGIN', 8001);
define('TN_ACTIVE', 8002); define('TN_ACTIVE', 8002);

View File

@ -193,7 +193,7 @@ class BaseAuthedController extends BaseController {
public function _isVirtualItem($itemId) public function _isVirtualItem($itemId)
{ {
return in_array($itemId, array(V_ITEM_GOLD, V_ITEM_DIAMOND, V_ITEM_EXP, V_ITEM_ACTIVE)); return in_array($itemId, array(V_ITEM_GOLD, V_ITEM_DIAMOND, V_ITEM_EXP, V_ITEM_ACTIVE,V_ITEM_BCEG));
} }
public function _addVirtualItem($itemId, $itemNum) public function _addVirtualItem($itemId, $itemNum)
@ -220,8 +220,13 @@ class BaseAuthedController extends BaseController {
)); ));
} }
break; break;
case V_ITEM_EXP: case V_ITEM_BCEG:
{ {
$this->_updateUserInfo(array(
'bceg' => function () use($itemNum) {
return "bceg + ${itemNum}";
}
));
} }
break; break;
case V_ITEM_ACTIVE: case V_ITEM_ACTIVE:

View File

@ -179,6 +179,7 @@ class Gun extends BaseModel {
$gunLucky = \services\FormulaService::Weapon_Advanced_Lucky_Value($row['quality']); $gunLucky = \services\FormulaService::Weapon_Advanced_Lucky_Value($row['quality']);
$dto = array( $dto = array(
'idx' => $row['idx'], 'idx' => $row['idx'],
'token_id' => $row['token_id'],
'gun_uniid' => $row['idx'], 'gun_uniid' => $row['idx'],
'gun_id' => $row['gun_id'], 'gun_id' => $row['gun_id'],
'gun_lv' => $row['gun_lv'], 'gun_lv' => $row['gun_lv'],

View File

@ -0,0 +1,40 @@
<?php
namespace models;
use mt;
use phpcommon\SqlHelper;
class NftActive extends BaseModel
{
public static function upsert($data){
if ($data['token_id']){
$where = array(
'token_id' =>$data['token_id'],
);
}else{
$where = array(
'uniid' =>$data['uniid'],
);
}
SqlHelper::upsert
(myself()->_getSelfMysql(),
't_nft_active',
$where,
array(
),
array(
'account_id' => myself()->_getAccountId(),
'uniid' =>$data['uniid'],
'token_id' =>$data['token_id']?$data['token_id']:'',
'daytime' =>strtotime(date('Y-m-d',myself()->_getNowTime())),
'token_type' =>$data['token_type'],
'createtime' => myself()->_getNowTime(),
'modifytime' => myself()->_getNowTime(),
)
);
}
}

View File

@ -39,6 +39,7 @@ class User extends BaseModel {
'history_best_rank' => $row['history_best_rank'], 'history_best_rank' => $row['history_best_rank'],
'score' => $row['score'], 'score' => $row['score'],
'history_best_score' => $row['history_best_score'], 'history_best_score' => $row['history_best_score'],
'bceg' => cegFormat($row['bceg']),
'gold' => cegFormat($row['gold']), 'gold' => cegFormat($row['gold']),
'diamond' => cecFormat($row['diamond']), 'diamond' => cecFormat($row['diamond']),
'hero_id' => $row['hero_id'], 'hero_id' => $row['hero_id'],
@ -71,6 +72,7 @@ class User extends BaseModel {
'history_best_rank' => $row['history_best_rank'], 'history_best_rank' => $row['history_best_rank'],
'score' => $row['score'], 'score' => $row['score'],
'history_best_score' => $row['history_best_score'], 'history_best_score' => $row['history_best_score'],
'bceg' => cegFormat($row['bceg']),
'gold' => cegFormat($row['gold']), 'gold' => cegFormat($row['gold']),
'diamond' => cecFormat($row['diamond']), 'diamond' => cecFormat($row['diamond']),
'hero_id' => $row['hero_id'], 'hero_id' => $row['hero_id'],

View File

@ -21,9 +21,12 @@ require_once('models/Battle.php');
require_once('models/Bag.php'); require_once('models/Bag.php');
require_once('models/Hero.php'); require_once('models/Hero.php');
require_once('models/Gun.php'); require_once('models/Gun.php');
require_once('models/Chip.php');
require_once('models/Nft.php');
require_once('models/FragmentPool.php'); require_once('models/FragmentPool.php');
require_once('models/RealtimeData.php'); require_once('models/RealtimeData.php');
require_once('models/BattleHistory.php'); require_once('models/BattleHistory.php');
require_once('models/NftActive.php');
require_once('services/RankActivityService.php'); require_once('services/RankActivityService.php');
require_once('services/FormulaService.php'); require_once('services/FormulaService.php');
@ -32,6 +35,9 @@ require_once('services/PropertyChgService.php');
require_once('services/LogService.php'); require_once('services/LogService.php');
use models\Chip;
use models\Nft;
use models\NftActive;
use mt; use mt;
use services; use services;
use phpcommon\SqlHelper; use phpcommon\SqlHelper;
@ -140,8 +146,10 @@ class BattleDataService extends BaseService {
$this->weapon2Dto['pve_ceg_uplimit'] : $this->weapon2Dto['pvp_ceg_uplimit']; $this->weapon2Dto['pve_ceg_uplimit'] : $this->weapon2Dto['pvp_ceg_uplimit'];
} }
} }
//录入战斗记录 //录入战斗记录
$this->saveBattleHistory(); // $this->saveBattleHistory();
switch ($matchMode) { switch ($matchMode) {
case self::MATCH_MODE_PVP: case self::MATCH_MODE_PVP:
@ -839,12 +847,82 @@ class BattleDataService extends BaseService {
'new_weaponPvpCeg1' => $weaponPvpCeg1, 'new_weaponPvpCeg1' => $weaponPvpCeg1,
'new_weaponPvpCeg2' => $weaponPvpCeg2, 'new_weaponPvpCeg2' => $weaponPvpCeg2,
))); )));
$gold = $heroPvpCeg + $weaponPvpCeg1 + $weaponPvpCeg2; $gold = $heroPvpCeg + $weaponPvpCeg1 + $weaponPvpCeg2;print_r($heroPvpCeg);
if ($heroPvpCeg>0){
$this->_addNftActive($this->heroDto,1);
}
if ($weaponPvpCeg1>0){
$this->_addNftActive($this->weapon1Dto,2);
}
if ($weaponPvpCeg2>0){
$this->_addNftActive($this->weapon2Dto,2);
}
if ($gold > 0) { if ($gold > 0) {
myself()->_addVirtualItem(V_ITEM_GOLD, $gold); myself()->_addVirtualItem(V_ITEM_GOLD, $gold);
} }
} }
private function _addNftActive($nftDb,$type){
if (!$nftDb){
return ;
}
switch ($type){
case Nft::HERO_TYPE:
{
$data = array(
'uniid' => $nftDb['hero_uniid'],
'token_id' => $nftDb['token_id'],
'token_type' => Nft::HERO_TYPE,
);
NftActive::upsert($data);
if ($nftDb['chip_ids']){
$chip_ids = explode("|",$nftDb['chip_ids']);
if (count($chip_ids)>0){
foreach ($chip_ids as $chip_id){
$chipDb = Chip::getChipByIdx($chip_id);
self::_addNftActive($chipDb,Nft::CHIP_TYPE);
}
}
}
}
break;
case Nft::EQUIP_TYPE:
{
$data = array(
'uniid' => $nftDb['gun_uniid'],
'token_id' => $nftDb['token_id'],
'token_type' => Nft::EQUIP_TYPE,
);
NftActive::upsert($data);
if ($nftDb['chip_ids']){
$chip_ids = explode("|",$nftDb['chip_ids']);
if (count($chip_ids)>0){
foreach ($chip_ids as $chip_id){
$chipDb = Chip::getChipByIdx($chip_id);
self::_addNftActive($chipDb,Nft::CHIP_TYPE);
}
}
}
}
break;
case Nft::CHIP_TYPE:
{
$data = array(
'uniid' => $nftDb['idx'],
'token_id' => $nftDb['token_id'],
'token_type' => Nft::CHIP_TYPE,
);
NftActive::upsert($data);
}
break;
default:
{
}
}
}
private function rewardCegPve() private function rewardCegPve()
{ {
$log_param = [ $log_param = [