From f51f9ae9e6159d288cc0418a01c493be1b0b411d Mon Sep 17 00:00:00 2001 From: hujiabin Date: Mon, 26 Sep 2022 21:08:55 +0800 Subject: [PATCH] log service --- webapp/controller/ChipController.class.php | 74 ++++++---- .../controller/FragmentController.class.php | 98 ++++++++++++- webapp/controller/GunController.class.php | 87 ++++++++++++ webapp/controller/HeroController.class.php | 97 +++++++++++++ webapp/models/Fragment.php | 4 +- webapp/models/Gun.php | 1 + webapp/models/Hero.php | 1 + webapp/models/Nft.php | 6 +- webapp/services/FormulaService.php | 4 +- webapp/services/LogService.php | 131 +++++++++++++++++- 10 files changed, 464 insertions(+), 39 deletions(-) diff --git a/webapp/controller/ChipController.class.php b/webapp/controller/ChipController.class.php index a62d5ccc..220445fa 100644 --- a/webapp/controller/ChipController.class.php +++ b/webapp/controller/ChipController.class.php @@ -145,7 +145,6 @@ class ChipController extends BaseAuthedController if (!$this->_doDemount($unique_id,$token_id)){ return; } - $this->_writeLog($token_id); //埋点 $hero = Hero::toDto(Hero::find($unique_id)); $propertyChgService->addHeroChg(); $this->_rspData([ @@ -156,7 +155,6 @@ class ChipController extends BaseAuthedController if (! $this->_doDemountGun($unique_id,$token_id)){ return; } - $this->_writeLog($token_id); //埋点 $gun = Gun::toDto(Gun::find($unique_id)); $propertyChgService->addGunChg(); $this->_rspData([ @@ -182,7 +180,6 @@ class ChipController extends BaseAuthedController if (! $this->_doDemount($unique_id,$token_id_old)){ return; } - $this->_writeLog($token_id_old); //埋点 if (! $this->_doInlayHero($unique_id,$token_id_new)){ return; } @@ -196,7 +193,6 @@ class ChipController extends BaseAuthedController if (! $this->_doDemountGun($unique_id,$token_id_old)){ return; } - $this->_writeLog($token_id_old); //埋点 if (! $this->_doInlayGun($unique_id,$token_id_new)){ return; } @@ -345,11 +341,23 @@ class ChipController extends BaseAuthedController return; } $cumulative_cost = 0; + $params = array(); foreach ($token_id_param as $val){ $chip_param = Chip::getChipByTokenId($val); + array_push($params,array( + 'unique_id'=>$chip_param['idx'], + 'token_id'=>$chip_param['token_id'], + )); $cumulative_cost += \services\FormulaService::getChipCumulativeCost($chip_param['chip_grade']); Chip::deleteChip(['token_id'=>$val]); } + { + //埋点 + $event = [ + 'name' => LogService::CHIP_SYNTH_MATERIAL, + ]; + LogService::ConsumableMaterial($event,$params); + } $num = round(round(($cumulative_cost/$upgrade_cost),5)*10000); $propertyChgService = new services\PropertyChgService(); $propertyChgService->addChip(); @@ -397,6 +405,18 @@ class ChipController extends BaseAuthedController } User::update(['gold'=>$user['gold']-$mint_cost]); Chip::update($chip['token_id'],$fieldsKv); + $old_chip = Chip::toDto($chip); + $new_chip = Chip::toDto(Chip::getChipByTokenId($token_id)); + { + //埋点 + $event = [ + 'name' => LogService::CHIP_LUCKY, + 'val' => $mint_cost + ]; + $old_chip['level'] = $old_chip['chip_grade']; + $new_chip['level'] = $new_chip['chip_grade']; + LogService::consumeCEG($event,$old_chip,$new_chip); + } $propertyChgService = new services\PropertyChgService(); $propertyChgService->addUserChg(); $propertyChgService->addChip(); @@ -530,6 +550,7 @@ class ChipController extends BaseAuthedController } public function test(){ + // $nft_active = SqlHelper::ormSelect( // myself()->_getSelfMysql(), // 't_nft_active', @@ -550,9 +571,7 @@ class ChipController extends BaseAuthedController // Chip::update($chip['token_id'],['strength'=>$tili]); // } // $this->_rspOk(); -// $a = mt\Parameter::getByName('CEG_Parameter'); - $a =FormulaService::Hero_Parts_Synthetic_Cost(); - print_r($_SERVER); + } @@ -627,6 +646,16 @@ class ChipController extends BaseAuthedController return false; } User::update(['gold'=>$user['gold']-$mint]); + $chipDto = Chip::toDto($chip); + { + //埋点 + $event = [ + 'name' => LogService::CHIP_DEMOUNT, + 'val' => $mint + ]; + $chipDto['level'] = $chipDto['chip_grade']; + LogService::consumeCEG($event,$chipDto,$chipDto); + } } $where = ['inlay_state'=>0,'strength'=>$chip['strength_max']]; Hero::update($unique_id,$fieldsKv); @@ -656,6 +685,16 @@ class ChipController extends BaseAuthedController return false; } User::update(['gold'=>$user['gold']-$mint]); + $chipDto = Chip::toDto($chip); + { + //埋点 + $event = [ + 'name' => LogService::CHIP_DEMOUNT, + 'val' => $mint + ]; + $chipDto['level'] = $chipDto['chip_grade']; + LogService::consumeCEG($event,$chipDto,$chipDto); + } } $where = ['inlay_state'=>0,'strength'=>$chip['strength_max']]; Gun::update($unique_id,$fieldsKv); @@ -839,25 +878,4 @@ class ChipController extends BaseAuthedController } } - private function _writeLog($token_id){ - $userDb = User::find($this->_getAccountId()); - $chipDb = Chip::getChipByTokenId($token_id); - $nftDb = Nft::getNft($token_id); - { - $itemMeta = \mt\Item::get($nftDb['item_id']); - $nft = array( - 'id' => $itemMeta['id'], - 'name' => $itemMeta['name'], - 'type' => '芯片NFT', - 'level' => $chipDb['chip_grade'], - 'createtime' => $nftDb['createtime'], - 'is_ceg' => 1, - ); - $event = array( - 'name' => LogService::CHIP_DEMOUNT, - ); -// LogService::jsonContentToLog($userDb,$nft,$event); - } - } - } \ No newline at end of file diff --git a/webapp/controller/FragmentController.class.php b/webapp/controller/FragmentController.class.php index 166eb560..ae79c7b2 100644 --- a/webapp/controller/FragmentController.class.php +++ b/webapp/controller/FragmentController.class.php @@ -4,10 +4,12 @@ require_once('models/Fragment.php'); require_once('models/Nft.php'); require_once('services/PropertyChgService.php'); +require_once('services/LogService.php'); use models\Fragment; use models\Nft; use services\FormulaService; +use services\LogService; class FragmentController extends BaseAuthedController { @@ -143,12 +145,34 @@ class FragmentController extends BaseAuthedController // return; // } //销毁碎片 + $params =array(); foreach ($token_id_arr as $val){ + array_push($params,array( + 'unique_id'=>null, + 'token_id'=>$val, + )); Fragment::deleteFragment(['token_id'=>$val]); } + { + //埋点 + $event = [ + 'name' => LogService::FRAGMENT_SYNTH_MATERIAL, + ]; + + LogService::ConsumableMaterial($event,$params); + } // $this->_decItems($costItems); //生成NFT英雄 - Nft::addNft($itemMeta); + $tokenid = Nft::addNft($itemMeta); + { + //埋点 + $nftDb = Nft::getNft($tokenid); + $event = array( + 'name' => LogService::HERO_FRAGMENT, + 'val' => mt\Parameter::getByName('jigsaw_merge_h_price')['param_value'] + ); + LogService::fragmentSynth($event,$nftDb); + } $propertyChgService = new services\PropertyChgService(); $propertyChgService->addUserChg(); $propertyChgService->addFragment(); @@ -184,15 +208,37 @@ class FragmentController extends BaseAuthedController // return; // } //销毁碎片 + $params =array(); foreach ($token_id_arr as $val){ + array_push($params,array( + 'unique_id'=>null, + 'token_id'=>$val, + )); Fragment::deleteFragment(['token_id'=>$val]); } + { + //埋点 + $event = [ + 'name' => LogService::FRAGMENT_SYNTH_MATERIAL, + ]; + + LogService::ConsumableMaterial($event,$params); + } // $this->_decItems($costItems); $itemMetaList = mt\Item::getMetaListByType(mt\Item::HERO_TYPE); $key = rand(0,count($itemMetaList)-1); $itemMeta = $itemMetaList[$key]; //生成NFT英雄 - Nft::addNft($itemMeta); + $tokenid = Nft::addNft($itemMeta); + { + //埋点 + $nftDb = Nft::getNft($tokenid); + $event = array( + 'name' => LogService::HERO_FRAGMENT, + 'val' => mt\Parameter::getByName('jigsaw_merge_h_price')['param_value'] + ); + LogService::fragmentSynth($event,$nftDb); + } $propertyChgService = new services\PropertyChgService(); $propertyChgService->addUserChg(); $propertyChgService->addFragment(); @@ -248,12 +294,34 @@ class FragmentController extends BaseAuthedController // return; // } //销毁碎片 + $params = array(); foreach ($token_id_arr as $val){ + array_push($params,array( + 'unique_id'=>null, + 'token_id'=>$val, + )); Fragment::deleteFragment(['token_id'=>$val]); } + { + //埋点 + $event = [ + 'name' => LogService::FRAGMENT_SYNTH_MATERIAL, + ]; + + LogService::ConsumableMaterial($event,$params); + } // $this->_decItems($costItems); //生成NFT英雄 - Nft::addNft($itemMeta); + $tokenid = Nft::addNft($itemMeta); + { + //埋点 + $nftDb = Nft::getNft($tokenid); + $event = array( + 'name' => LogService::GUN_FRAGMENT, + 'val' => mt\Parameter::getByName('jigsaw_merge_w_price')['param_value'] + ); + LogService::fragmentSynth($event,$nftDb); + } $propertyChgService = new services\PropertyChgService(); $propertyChgService->addUserChg(); $propertyChgService->addFragment(); @@ -290,15 +358,37 @@ class FragmentController extends BaseAuthedController // return; // } //销毁碎片 + $params = array(); foreach ($token_id_arr as $val){ + array_push($params,array( + 'unique_id'=>null, + 'token_id'=>$val, + )); Fragment::deleteFragment(['token_id'=>$val]); } + { + //埋点 + $event = [ + 'name' => LogService::FRAGMENT_SYNTH_MATERIAL, + ]; + + LogService::ConsumableMaterial($event,$params); + } // $this->_decItems($costItems); $itemMetaList = mt\Item::getMetaListByType(mt\Item::GUN_TYPE); $key = rand(0,count($itemMetaList)-1); $itemMeta = $itemMetaList[$key]; //生成NFT英雄 - Nft::addNft($itemMeta); + $tokenid = Nft::addNft($itemMeta); + { + //埋点 + $nftDb = Nft::getNft($tokenid); + $event = array( + 'name' => LogService::GUN_FRAGMENT, + 'val' => mt\Parameter::getByName('jigsaw_merge_w_price')['param_value'] + ); + LogService::fragmentSynth($event,$nftDb); + } $propertyChgService = new services\PropertyChgService(); $propertyChgService->addUserChg(); $propertyChgService->addFragment(); diff --git a/webapp/controller/GunController.class.php b/webapp/controller/GunController.class.php index 09ebab39..2dd1ef93 100644 --- a/webapp/controller/GunController.class.php +++ b/webapp/controller/GunController.class.php @@ -15,6 +15,7 @@ require_once('models/Chip.php'); require_once('services/AwardService.php'); require_once('services/PropertyChgService.php'); require_once('services/RankActivityService.php'); +require_once('services/LogService.php'); use phpcommon\SqlHelper; use models\GunSkin; @@ -23,6 +24,7 @@ use models\User; use models\Gun; use models\Bag; use models\Chip; +use services\LogService; class GunController extends BaseAuthedController { @@ -159,6 +161,7 @@ class GunController extends BaseAuthedController { $this->_rspErr(5, "It's already the highest level"); return; } + $is_cec = false; if ($gunDb['gun_lv']+1 <15){ $costItems = array( array( @@ -177,6 +180,7 @@ class GunController extends BaseAuthedController { 'item_num' => \services\FormulaService::Weapon_Upgrade_CEC_Expend($gunDb['gun_lv']+1) ) ); + $is_cec = true; } $lackItem = null; @@ -185,6 +189,30 @@ class GunController extends BaseAuthedController { return; } + $gunDto = Gun::toDto($gunDb); + { + //埋点 + $eventCEG = [ + 'name' => LogService::GUN_LEVEL_UP_CONSUME, + 'val' => \services\FormulaService::Weapon_Upgrade_CEG_Expend($gunDb['gun_lv']+1) + ]; + $gunDto['level'] = $gunDto['gun_lv']; + $gunDto['item_id'] = $gunDto['gun_id']; + LogService::consumeCEG($eventCEG,$gunDto,$gunDto); + } + if ($is_cec){ + { + //埋点 + $eventCEC = [ + 'name' => LogService::GUN_LEVEL_UP_CONSUME, + 'val' => \services\FormulaService::Weapon_Upgrade_CEC_Expend($gunDb['gun_lv']+1) + ]; + $gunDto['level'] = $gunDto['gun_lv']; + $gunDto['item_id'] = $gunDto['gun_id']; + LogService::consumeCEC($eventCEC,$gunDto,$gunDto); + } + } + $this->_decItems($costItems); Gun::update($gunUniId, array( @@ -357,6 +385,28 @@ class GunController extends BaseAuthedController { $propertyChgService = new services\PropertyChgService(); $propertyChgService->addGunChg(); $propertyChgService->addUserChg(); + + $gunDto = Gun::toDto($gunDb); + { + //埋点 + $eventCEG = [ + 'name' => LogService::GUN_QUALITY_UP_CONSUME, + 'val' => \services\FormulaService::Weapon_Advanced_CEG_Expend($gunDb['quality']+1) + ]; + $gunDto['level'] = $gunDto['gun_lv']; + $gunDto['item_id'] = $gunDto['gun_id']; + LogService::consumeCEG($eventCEG,$gunDto,$gunDto); + } + { + //埋点 + $eventCEC = [ + 'name' => LogService::GUN_QUALITY_UP_CONSUME, + 'val' => \services\FormulaService::Weapon_Advanced_CEC_Expend($gunDb['quality']+1) + ]; + $gunDto['level'] = $gunDto['gun_lv']; + $gunDto['item_id'] = $gunDto['gun_id']; + LogService::consumeCEC($eventCEC,$gunDto,$gunDto); + } $this->_rspData(array( 'property_chg' => $propertyChgService->toDto(), )); @@ -464,6 +514,18 @@ class GunController extends BaseAuthedController { $rankActivityService = new services\RankActivityService(); $rankActivityService->heroUpgradeLevel($gunDb['gun_lv'] + 1); } + + { + //埋点 + $event = [ + 'name' => LogService::GUN_LEVEL_UP, + ]; + $oldGun['level'] = $oldGun['gun_lv']; + $oldGun['item_id'] = $oldGun['gun_id']; + $newGun['level'] = $newGun['gun_lv']; + $newGun['item_id'] = $newGun['gun_id']; + LogService::LevelUpOrQualityUp($event,$oldGun,$newGun); + } $this->_rspData(array( 'property_chg' => $propertyChgService->toDto(), 'old_gun' => $oldGun, @@ -519,6 +581,19 @@ class GunController extends BaseAuthedController { 'unlock_time' => 0, ) ); + { + //埋点 + $event = [ + 'name' => LogService::GUN_QUALITY_UP_MATERIAL, + ]; + $params = array( + array( + 'unique_id'=>$costGunDb['idx'], + 'token_id'=>$costGunDb['token_id'], + ) + ); + LogService::ConsumableMaterial($event,$params); + } $rnd = rand(1, 100); $probability = \services\FormulaService::Weapon_Advanced_Probability($gunDb['quality'] + 1)*100; if ($rnd > $probability) { @@ -569,6 +644,18 @@ class GunController extends BaseAuthedController { $this->_rspErr(1, 'quality is full'); return; } + + { + //埋点 + $event = [ + 'name' => LogService::GUN_QUALITY_UP, + ]; + $oldGun['level'] = $oldGun['gun_lv']; + $oldGun['item_id'] = $oldGun['gun_id']; + $newGun['level'] = $newGun['gun_lv']; + $newGun['item_id'] = $newGun['gun_id']; + LogService::LevelUpOrQualityUp($event,$oldGun,$newGun); + } $this->_rspData(array( 'state' => 1, 'property_chg' => $propertyChgService->toDto(), diff --git a/webapp/controller/HeroController.class.php b/webapp/controller/HeroController.class.php index 67d1affc..747174af 100644 --- a/webapp/controller/HeroController.class.php +++ b/webapp/controller/HeroController.class.php @@ -19,6 +19,7 @@ require_once('models/Chip.php'); require_once('services/AwardService.php'); require_once('services/PropertyChgService.php'); require_once('services/RankActivityService.php'); +require_once('services/LogService.php'); @@ -27,6 +28,7 @@ use models\Hero; use models\Bag; use models\HeroSkin; use models\Chip; +use services\LogService; class HeroController extends BaseAuthedController { @@ -299,6 +301,17 @@ class HeroController extends BaseAuthedController { $rankActivityService = new services\RankActivityService(); $rankActivityService->heroUpgradeLevel($heroDb['hero_lv'] + 1); } + { + //埋点 + $event = [ + 'name' => LogService::HERO_LEVEL_UP, + ]; + $oldHero['level'] = $oldHero['hero_lv']; + $oldHero['item_id'] = $oldHero['hero_id']; + $newHero['level'] = $newHero['hero_lv']; + $newHero['item_id'] = $newHero['hero_id']; + LogService::LevelUpOrQualityUp($event,$oldHero,$newHero); + } $this->_rspData(array( 'property_chg' => $propertyChgService->toDto(), 'old_hero' => $oldHero, @@ -352,6 +365,19 @@ class HeroController extends BaseAuthedController { 'unlock_time' => 0, ) ); + { + //埋点 + $event = [ + 'name' => LogService::HERO_QUALITY_UP_MATERIAL, + ]; + $params = array( + array( + 'unique_id'=>$costHeroDb['idx'], + 'token_id'=>$costHeroDb['token_id'], + ) + ); + LogService::ConsumableMaterial($event,$params); + } $rnd = rand(1, 100); $probability = \services\FormulaService::Hero_Advanced_Probability($heroDb['quality'] + 1)*100; if ($rnd > $probability) { @@ -364,6 +390,17 @@ class HeroController extends BaseAuthedController { ); $oldHero['advanced_count'] += 1; $newHero['advanced_count'] += 1; + { + //埋点 + $event = [ + 'name' => LogService::HERO_QUALITY_UP, + ]; + $oldHero['level'] = $oldHero['hero_lv']; + $oldHero['item_id'] = $oldHero['hero_id']; + $newHero['level'] = $newHero['hero_lv']; + $newHero['item_id'] = $newHero['hero_id']; + LogService::LevelUpOrQualityUp($event,$oldHero,$newHero); + } $this->_rspRawData(array( 'errcode' => 0, 'errmsg' => '', @@ -405,6 +442,17 @@ class HeroController extends BaseAuthedController { $this->_rspErr(1, 'quality is full'); return; } + { + //埋点 + $event = [ + 'name' => LogService::HERO_QUALITY_UP, + ]; + $oldHero['level'] = $oldHero['hero_lv']; + $oldHero['item_id'] = $oldHero['hero_id']; + $newHero['level'] = $newHero['hero_lv']; + $newHero['item_id'] = $newHero['hero_id']; + LogService::LevelUpOrQualityUp($event,$oldHero,$newHero); + } $this->_rspData(array( 'state' => 1, 'property_chg' => $propertyChgService->toDto(), @@ -457,6 +505,7 @@ class HeroController extends BaseAuthedController { $this->_rspErr(5, "It's already the highest level"); return; } + $is_cec = false; if ($heroDb['hero_lv']+1 <15){ $costItems = array( array( @@ -475,6 +524,7 @@ class HeroController extends BaseAuthedController { 'item_num' => \services\FormulaService::Hero_Upgrade_CEC_Expend($heroDb['hero_lv']+1) ) ); + $is_cec = true; } $lackItem = null; @@ -482,6 +532,29 @@ class HeroController extends BaseAuthedController { $this->_rspErr(3, $this->_getLackItemErrMsg($lackItem)); return; } + $heroDto = Hero::toDto($heroDb); + { + //埋点 + $eventCEG = [ + 'name' => LogService::HERO_LEVEL_UP_CONSUME, + 'val' => \services\FormulaService::Hero_Upgrade_CEG_Expend($heroDb['hero_lv']+1) + ]; + $heroDto['level'] = $heroDto['hero_lv']; + $heroDto['item_id'] = $heroDto['hero_id']; + LogService::consumeCEG($eventCEG,$heroDto,$heroDto); + } + if ($is_cec){ + { + //埋点 + $eventCEC = [ + 'name' => LogService::HERO_LEVEL_UP_CONSUME, + 'val' => \services\FormulaService::Hero_Upgrade_CEC_Expend($heroDb['hero_lv']+1) + ]; + $heroDto['level'] = $heroDto['hero_lv']; + $heroDto['item_id'] = $heroDto['hero_id']; + LogService::consumeCEC($eventCEC,$heroDto,$heroDto); + } + } $this->_decItems($costItems); { @@ -641,6 +714,7 @@ class HeroController extends BaseAuthedController { $this->_rspErr(3, $this->_getLackItemErrMsg($lackItem)); return; } + $this->_decItems($costItems); Hero::update($heroUniId, array( @@ -660,6 +734,29 @@ class HeroController extends BaseAuthedController { $propertyChgService->addHeroChg(); $propertyChgService->addBagChg(); $propertyChgService->addUserChg(); + + $heroDto = Hero::toDto($heroDb); + { + //埋点 + $eventCEG = [ + 'name' => LogService::HERO_QUALITY_UP_CONSUME, + 'val' => \services\FormulaService::Hero_Advanced_CEG_Expend($heroDb['quality']+1) + ]; + $heroDto['level'] = $heroDto['hero_lv']; + $heroDto['item_id'] = $heroDto['hero_id']; + LogService::consumeCEG($eventCEG,$heroDto,$heroDto); + } + { + //埋点 + $eventCEC = [ + 'name' => LogService::HERO_QUALITY_UP_CONSUME, + 'val' => \services\FormulaService::Hero_Advanced_CEC_Expend($heroDb['quality']+1) + ]; + $heroDto['level'] = $heroDto['hero_lv']; + $heroDto['item_id'] = $heroDto['hero_id']; + LogService::consumeCEC($eventCEC,$heroDto,$heroDto); + } + $this->_rspData(array( 'property_chg' => $propertyChgService->toDto(), )); diff --git a/webapp/models/Fragment.php b/webapp/models/Fragment.php index afa6f91a..8d0f8a7b 100644 --- a/webapp/models/Fragment.php +++ b/webapp/models/Fragment.php @@ -35,7 +35,7 @@ class Fragment extends BaseModel if (!$row) { $itemMeta = mt\Item::get($nftDb['item_id']); if ($itemMeta) { - self::addNftHero($itemMeta, $nftDb['token_id']); + self::addFragment($itemMeta, $nftDb['token_id']); $row = SqlHelper::ormSelectOne( myself()->_getSelfMysql(), 't_fragment', @@ -52,7 +52,7 @@ class Fragment extends BaseModel } - public static function addNftHero($fragmentMeta, $tokenId) + public static function addFragment($fragmentMeta, $tokenId) { return self::internalAddHero( myself()->_getMysql($tokenId), diff --git a/webapp/models/Gun.php b/webapp/models/Gun.php index e8834b20..55d7cbef 100644 --- a/webapp/models/Gun.php +++ b/webapp/models/Gun.php @@ -173,6 +173,7 @@ class Gun extends BaseModel { } $gunLucky = \services\FormulaService::Weapon_Advanced_Lucky_Value($row['quality']); $dto = array( + 'idx' => $row['idx'], 'gun_uniid' => $row['idx'], 'gun_id' => $row['gun_id'], 'gun_lv' => $row['gun_lv'], diff --git a/webapp/models/Hero.php b/webapp/models/Hero.php index eba6b92d..fe4f5b9a 100644 --- a/webapp/models/Hero.php +++ b/webapp/models/Hero.php @@ -179,6 +179,7 @@ class Hero extends BaseModel { } $heroLucky = \services\FormulaService::Hero_Advanced_Lucky_Value($row['quality']); $dto = array( + 'idx' => $row['idx'], 'token_id' => $row['token_id'], 'hero_uniid' => $row['idx'], 'hero_id' => $row['hero_id'], diff --git a/webapp/models/Nft.php b/webapp/models/Nft.php index f128e6ea..e094b24d 100644 --- a/webapp/models/Nft.php +++ b/webapp/models/Nft.php @@ -270,7 +270,9 @@ class Nft extends BaseModel { public static function addNft($itemMeta){ if ($itemMeta) { + $tokenID = myself()->_getNowTime(); $tokenType = Nft::getTokenType($itemMeta); + if ($tokenType == Nft::NONE_TYPE) { return false; } else { @@ -278,7 +280,7 @@ class Nft extends BaseModel { myself()->_getMarketMysql(), 't_nft', array( - 'token_id' => myself()->_getNowTime(), + 'token_id' => $tokenID, 'token_type' => $tokenType, 'game_id' => 2006, 'item_id' => $itemMeta['id'], @@ -287,7 +289,7 @@ class Nft extends BaseModel { 'modifytime' => myself()->_getNowTime(), ) ); - return true; + return $tokenID; } } else { return false; diff --git a/webapp/services/FormulaService.php b/webapp/services/FormulaService.php index 0dc85b4e..8e40de08 100644 --- a/webapp/services/FormulaService.php +++ b/webapp/services/FormulaService.php @@ -447,8 +447,8 @@ class FormulaService extends BaseService { //芯片升星累计成本 public static function getChipCumulativeCost($grade){ - //( SIGN(芯片星级<6)*(15*芯片星级*(芯片星级-1)+10)+SIGN(芯片星级>5)*SIGN(芯片星级<10)*(80*(芯片星级-4)*( 芯片星级-3)+50) +SIGN(芯片星级>9)*SIGN(芯片星级<14)*(370*(芯片星级-8)*( 芯片星级-7)*(2*芯片星级-15)/6+80*(芯片星级-8)+2100) +SIGN(芯片星级>13)*SIGN(芯片星级<16)*(600*(芯片星级-8)*(芯片星级-7)*(2*芯片星级-15)/6-14000)) *CEG_Discount_Rate - return (($grade<6?1:0)*(15*$grade*($grade-1)+10)+($grade>5?1:0)*($grade<10?1:0)*(80*($grade-4)*( $grade-3)+50) +($grade>9?1:0)*($grade<14?1:0)*(370*($grade-8)*( $grade-7)*(2*$grade-15)/6+80*($grade-8)+2100) +($grade>13?1:0)*($grade<16?1:0)*(600*($grade-8)*($grade-7)*(2*$grade-15)/6-14000)) *self::CEG_Discount_Rate(); + //( SIGN(0<芯片星级<6)*(15*芯片星级*(芯片星级-1)+10)+SIGN(芯片星级>5)*SIGN(芯片星级<10)*(80*(芯片星级-4)*( 芯片星级-3)+50) +SIGN(芯片星级>9)*SIGN(芯片星级<14)*(370*(芯片星级-8)*( 芯片星级-7)*(2*芯片星级-15)/6+80*(芯片星级-8)+2100) +SIGN(芯片星级>13)*SIGN(芯片星级<16)*(600*(芯片星级-8)*(芯片星级-7)*(2*芯片星级-15)/6-14000)) *CEG_Discount_Rate + return (($grade>0?1:0)*($grade<6?1:0)*(15*$grade*($grade-1)+10)+($grade>5?1:0)*($grade<10?1:0)*(80*($grade-4)*( $grade-3)+50) +($grade>9?1:0)*($grade<14?1:0)*(370*($grade-8)*( $grade-7)*(2*$grade-15)/6+80*($grade-8)+2100) +($grade>13?1:0)*($grade<16?1:0)*(600*($grade-8)*($grade-7)*(2*$grade-15)/6-14000)) *self::CEG_Discount_Rate(); //( SIGN(芯片星级<6)*((15*芯片星级+10)*(芯片星级-1)+10)+SIGN(芯片星级>5)*SIGN(芯片星级<10)*(80*(芯片星级-4)*( 芯片星级-3)+90) +SIGN(芯片星级>9)*SIGN(芯片星级<14)*(370*(芯片星级-8)*( 芯片星级-7)*(2*芯片星级-15)/6+80*(芯片星级-8)+2140) +SIGN(芯片星级>13)*SIGN(芯片星级<16)*(600*(芯片星级-8)*(芯片星级-7)*(2*芯片星级-15)/6-13960)) *CEG_Discount_Rate // return (($grade<6?1:0)*((15*$grade+10)*($grade-1)+10)+($grade>5?1:0)*($grade<10?1:0)*(80*($grade-4)*($grade-3)+90)+($grade>9?1:0)*($grade<14?1:0)*(370*($grade-8)*($grade-7)*(2*$grade-15)/6+80*($grade-8)+2140)+($grade>13?1:0)*($grade<16?1:0)*(600*($grade-8)*($grade-7)*(2*$grade-15)/6-13960))*self::CEG_Discount_Rate(); diff --git a/webapp/services/LogService.php b/webapp/services/LogService.php index 48329301..ecfa703d 100644 --- a/webapp/services/LogService.php +++ b/webapp/services/LogService.php @@ -3,8 +3,137 @@ namespace services; +require_once('phpcommon/tglog.php'); -class LogService +require_once('models/User.php'); + +use mt; +use models\User; +use phpcommon\TGLog; +class LogService extends BaseService { + const HERO_LEVEL_UP = "hero_levelUp"; //英雄升级 + const HERO_LEVEL_UP_CONSUME = "hero_levelUp_consume"; //英雄升级mint + const GUN_LEVEL_UP = "weapon_levelUp"; //枪械升级 + const GUN_LEVEL_UP_CONSUME = "weapon_levelUp_consume"; //枪械升级mint + const HERO_QUALITY_UP = "hero_qualityUp"; //英雄升星 + const HERO_QUALITY_UP_CONSUME = "hero_qualityUp_consume"; //英雄升星mint + const HERO_QUALITY_UP_MATERIAL = "hero_qualityUp_material"; //英雄升星消耗材料 + const GUN_QUALITY_UP = "weapon_qualityUp"; //枪械升星 + const GUN_QUALITY_UP_CONSUME = "weapon_qualityUp_consume"; //枪械升星mint + const GUN_QUALITY_UP_MATERIAL = "weapon_qualityUp_material";//枪械升星消耗材料 + const CHIP_DEMOUNT = "chip_demount"; //芯片拆卸mint + const CHIP_LUCKY = "chip_lucky"; //芯片幸运值mint + const CHIP_SYNTH_MATERIAL = "chip_synth_material"; //芯片合成材料 + const HERO_FRAGMENT = "hero_fragment_synth"; //英雄碎片合成U + const GUN_FRAGMENT = "weapon_fragment_synth"; //枪械碎片合成U + const FRAGMENT_SYNTH_MATERIAL = "fragment_synth_material"; //芯片合成材料 + + const CONSUME = 0; //消耗 + const PRODUCT = 1; //产出 + + const PRONAME = 'game_20006_api'; + const GAMEID = 2006; + + public static function consumeCEG($event,$old_nft,$new_nft) + { + $data = self::userInfo(); + $data['type'] = self::CONSUME; + $data['event_name'] = $event['name']; + $data['event_demand'] = 'CEG'; + $data['event_demand_val'] = $event['val']; + $data['ceg_discount_rate'] = FormulaService::CEG_Discount_Rate(); //CEG折扣比率 + + $nft = self::nftInfo($old_nft,$new_nft); + $logInfo = array_merge($data,$nft); + + TGLog::writeToLogWindows(self::PRONAME,self::GAMEID,json_encode($logInfo)); + } + + public static function consumeCEC($event, $old_nft,$new_nft) + { + $data = self::userInfo(); + $data['type'] = self::CONSUME; + $data['event_name'] = $event['name']; + $data['event_demand'] = 'CEC'; + $data['event_demand_val'] = $event['val']; + $data['cec_discount_rate'] = FormulaService::CEC_Discount_Rate(); //CEC折扣比率 + + $nft = self::nftInfo($old_nft,$new_nft); + $logInfo = array_merge($data,$nft); + + TGLog::writeToLogWindows(self::PRONAME,self::GAMEID,json_encode($logInfo)); + } + + public static function product($event) + { + } + + public static function LevelUpOrQualityUp( $event, $old_nft,$new_nft) + { + $data = self::userInfo(); + $data['event_name'] = $event['name']; + + $nft = self::nftInfo($old_nft,$new_nft); + $logInfo = array_merge($data,$nft); + + TGLog::writeToLogWindows(self::PRONAME,self::GAMEID,json_encode($logInfo)); + } + + public static function fragmentSynth($event,$nft) + { + $data = self::userInfo(); + $data['event_name'] = $event['name']; + $data['event_demand'] = 'U'; + $data['event_demand_val'] = $event['val']; + $data['nft_token_id'] = $nft['token_id']; + $data['nft_item_id'] = $nft['item_id']; + $data['nft_info'] = json_encode($nft); + TGLog::writeToLogWindows(self::PRONAME,self::GAMEID,json_encode($data)); + } + + public static function ConsumableMaterial($event,$params) + { + $data = self::userInfo(); + $data['event_name'] = $event['name']; + foreach ($params as $k=>$v){ + $data['param'.($k+1)] = $v; + } + TGLog::writeToLogWindows(self::PRONAME,self::GAMEID,json_encode($data)); + } + + private static function userInfo(){ + $user = User::find(myself()->_getAccountId()); + $info = array( + 'account_id' => myself()->_getAccountId(), //账号id + 'channel' => myself()->_getChannel(), //账号channel + 'openid' => myself()->_getOpenId(), //账号openid + 'name' => $user['name'], //用户名字 + 'rank' => $user['rank'], //段位 + 'gold' => $user['gold'], //CEG金币 + 'diamond' => $user['diamond'], //CEC钻石 + 'account_register_time' => myself()->_getRegisterTime(), //账号注册时间 + 'ip' => $_SERVER['REMOTE_ADDR'], //用户ip + '_os' => getReqVal('_os', ''), + '_net' => getReqVal('_net', ''), + ); + return $info; + } + + private static function nftInfo($old_nft,$new_nft){ + $info = array( + 'nft_unique_id' => $old_nft['idx'], //NFT idx + 'nft_token_id' => $old_nft['token_id']?$old_nft['token_id']:null, //NFT token ID + 'nft_item_id' => $old_nft['item_id'], //NFT item ID + 'nft_ quality' => $old_nft['quality'] ? $old_nft['quality'] : null, //NFT品阶 + 'nft_level' => $old_nft['level'] ? $old_nft['level'] : null, //NFT等级 + 'nft_ quality2' => $new_nft['quality'] ? $new_nft['quality'] : null, //NFT品阶2 + 'nft_level2' => $new_nft['level'] ? $new_nft['level'] : null, //NFT等级2 + 'old_nft' => json_encode($old_nft), + 'new_nft' => json_encode($new_nft) + ); + return $info; + } + } \ No newline at end of file