204 lines
8.1 KiB
PHP
204 lines
8.1 KiB
PHP
<?php
|
|
|
|
|
|
namespace services;
|
|
|
|
require_once('phpcommon/tglog.php');
|
|
|
|
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 BATTLE_AWARD_PVP = "battle_award_pvp"; //PVP战斗奖励
|
|
const BATTLE_AWARD_PVE = "battle_award_pve"; //PVE战斗奖励
|
|
const BATTLE_AWARD_MATCH = "battle_award_match"; //排位赛战斗奖励
|
|
|
|
const PRONAME = 'game_2006_api';
|
|
const GAMEID = 2006;
|
|
|
|
public static function consumeCEG($event,$old_nft,$new_nft,$param = [])
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['type'] = self::CONSUME;
|
|
$data['log_class'] = $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['properties'] = array_merge($data,$nft,$param);
|
|
|
|
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
public static function consumeCEC($event, $old_nft,$new_nft,$param = [])
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['type'] = self::CONSUME;
|
|
$data['log_class'] = $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['properties'] = array_merge($data,$nft,$param);
|
|
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
public static function productCEG($event,$nft,$param = [])
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['type'] = self::PRODUCT;
|
|
$data['log_class'] = $event['name'];
|
|
$data['event_product'] = 'CEG';
|
|
$data['event_product_val'] = $event['val'];
|
|
$data['ceg_discount_rate'] = FormulaService::CEG_Discount_Rate(); //CEG折扣比率
|
|
|
|
$nftInfo = self::nftProductInfo($nft);
|
|
$logInfo['properties'] = array_merge($data,$nftInfo,$param);
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
public static function productFragment($event,$param = [])
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['type'] = self::PRODUCT;
|
|
$data['log_class'] = $event['name'];
|
|
$data['event_product'] = 'Fragment';
|
|
$data['event_product_item_id'] = $event['item_id'];
|
|
$data['event_product_val'] = $event['number'];
|
|
$logInfo['properties'] = array_merge($data,$param);
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
public static function LevelUpOrQualityUp( $event, $old_nft,$new_nft)
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['log_class'] = $event['name'];
|
|
|
|
$nft = self::nftInfo($old_nft,$new_nft);
|
|
$logInfo['properties'] = array_merge($data,$nft);
|
|
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
public static function fragmentSynth($event,$nft)
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['log_class'] = $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);
|
|
$logInfo['properties'] = $data;
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
public static function ConsumableMaterial($event,$params)
|
|
{
|
|
$logInfo = self::tokenRecord();
|
|
$data = self::userInfo();
|
|
$data['log_class'] = $event['name'];
|
|
foreach ($params as $k=>$v){
|
|
$data['param'.($k+1)] = $v;
|
|
}
|
|
$logInfo['properties'] = $data;
|
|
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
|
|
}
|
|
|
|
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']?$old_nft['item_id']:null, //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
|
|
'nft_info' => json_encode($old_nft),
|
|
'new_nft' => json_encode($new_nft)
|
|
);
|
|
return $info;
|
|
}
|
|
|
|
private static function nftProductInfo($nft)
|
|
{
|
|
$info = array(
|
|
'nft_unique_id' => $nft['idx'], //NFT idx
|
|
'nft_token_id' => $nft['token_id']?$nft['token_id']:null, //NFT token ID
|
|
'nft_item_id' => $nft['item_id']?$nft['item_id']:null, //NFT item ID
|
|
'nft_info' => json_encode($nft),
|
|
);
|
|
return $info;
|
|
}
|
|
|
|
|
|
private static function tokenRecord()
|
|
{
|
|
// $logInfo['log_class'] = $logInfo['log_class'];
|
|
// unset($logInfo['log_class']);
|
|
$data = array(
|
|
"#account_id" => myself()->_getAccountId(),
|
|
"#event_name"=> "token_record",
|
|
"#ip"=> $_SERVER['REMOTE_ADDR'],
|
|
"#time"=> myself()->_getNowTime(),
|
|
"#type"=> "track",
|
|
"properties"=>''
|
|
);
|
|
return $data;
|
|
}
|
|
|
|
}
|