game2006api/webapp/services/LogService.php
songliang a622d38b21 ...
2023-07-25 19:55:49 +08:00

190 lines
7.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 USER_RENAME = "user_rename"; //用户改名
const HERO_LEVEL_UP = "hero_level_Up"; //英雄升级
const CHIP_LEVEL_UP = "chip_level_Up"; //芯片升级
const SHOP_BUY_ITEM = "shop_buy_item_normal"; //商城购买物品
const SHOP_BUY_ITEM_DAILY = "shop_buy_item_daily"; //商城每日精选购买物品
const SHOP_BUY_ITEM_BLIND_BOX = "shop_buy_item_blind_box"; //商城限购购买物品
const CONSUME_TYPE = 0; //消耗 ↑
const PRODUCT_TYPE = 1; //产出 ↓
const BATTLE_AWARD_PVP = "battle_award_pvp"; //PVP战斗奖励
const STAR_MISSION_AWARD = "star_mission_award"; //星星之路奖励
const BATTLE_PASS_AWARD = "battle_pass_award"; //通行证奖励
const SIGN_AWARD = "sign_award"; //签到奖励
const CEBG_TO_DIAMOND = "cebg_to_diamond"; //CEBG兑换钻石
const RECHARGE_DIAMOND = "recharge_diamond"; //充值钻石
const RECHARGE_CEBG_BONUS = "recarge_cebg_bonus"; //充值CEBG奖励
const MARKET_SELL_GOLD = "market_sell_gold"; //市场出售金币
const MARKET_CANCEL_SELL_GOLD = "market_cancel_sell_gold"; //市场取消出售金币
const MARKET_BUY_GOLD = "market_buy_gold"; //市场购买金币
const PRONAME = 'game_2006_api';
const GAMEID = 2006;
const GOLD_TYPE = 0;
const DIAMOND_TYPE = 1;
public static function consumeGold($event,$param = [])
{
$logInfo = self::goldRecord($param);
$data = self::userInfo();
$data['type'] = self::CONSUME_TYPE;
$data['event_name'] = $event['name'];
$data['event_type'] = self::GOLD_TYPE;
$data['event_demand'] = 'gold';
$data['event_demand_val'] = $event['val'];
$logInfo['properties'] = array_merge($data,$param);
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
}
public static function consumeDiamond($event,$param = [])
{
$logInfo = self::diamondRecord(myself()->_getAccountId());
$data = self::userInfo();
$data['type'] = self::CONSUME_TYPE;
$data['event_name'] = $event['name'];
$data['event_type'] = self::DIAMOND_TYPE;
$data['event_demand'] = 'diamond';
$data['event_demand_val'] = $event['val'];
$logInfo['properties'] = array_merge($data,$param);
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
}
public static function productGold($event,$param = [])
{
$logInfo = self::goldRecord($param);
$data = self::userInfo();
$data['type'] = self::PRODUCT_TYPE;
$data['event_name'] = $event['name'];
$data['event_type'] = self::GOLD_TYPE;
$data['event_product'] = 'gold';
$data['event_product_val'] = $event['val'];
$logInfo['properties'] = array_merge($data,$param);
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
}
public static function productGoldCallback($base, $event,$param = [])
{
$logInfo = self::goldRecord($base['account_id']);
$data = self::userInfoByAccountId($base['account_id']);
$data['type'] = self::PRODUCT_TYPE;
$data['event_name'] = $event['name'];
$data['event_type'] = self::GOLD_TYPE;
$data['event_product'] = 'gold';
$data['event_product_val'] = $event['val'];
$logInfo['properties'] = array_merge($data,$param);
TGLog::writeToLog(self::PRONAME,self::GAMEID,$logInfo);
}
public static function productDiamondCallback($base, $event,$param = [])
{
$logInfo = self::diamondRecord($base['account_id']);
$data = self::userInfoByAccountId($base['account_id']);
$data['type'] = self::PRODUCT_TYPE;
$data['event_name'] = $event['name'];
$data['event_type'] = self::DIAMOND_TYPE;
$data['event_product'] = 'diamond';
$data['event_product_val'] = $event['val'];
$logInfo['properties'] = array_merge($data,$param);
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
'adress' => myself()->_getAddress(), //账号openid
'name' => $user['name'], //用户名字
'rank' => $user['rank'], //段位
'gold' => $user['gold'], //金币
'diamond' => $user['diamond'], //钻石
'account_register_time' => myself()->_getRegisterTime(), //账号注册时间
'ip' => $_SERVER['REMOTE_ADDR'], //用户ip
'_os' => getReqVal('_os', ''),
'_net' => getReqVal('_net', ''),
);
return $info;
}
private static function userInfoByAccountId($account_id) {
$user = User::find($account_id);
$info = array(
'account_id' => $user['account_id'], //账号id
'channel' => $user['channel'], //账号channel
'openid' => 'unknown',
'adress' => $user['address'], //账号openid
'name' => $user['name'], //用户名字
'rank' => $user['rank'], //段位
'gold' => $user['gold'], //金币
'diamond' => $user['diamond'], //钻石
'account_register_time' => $user['createtime'], //账号注册时间
'ip' => $_SERVER['REMOTE_ADDR'], //用户ip
'_os' => getReqVal('_os', ''),
'_net' => getReqVal('_net', ''),
);
return $info;
}
private static function goldRecord($params = [])
{
if (isset($params['account_id']) && !empty($params['account_id'])) {
$account_id = $params['account_id'];
} else {
$account_id = myself()->_getAccountId();
}
// $logInfo['log_class'] = $logInfo['log_class'];
// unset($logInfo['log_class']);
$data = array(
"#account_id" => $account_id,
"#event_name"=> "gold_record",
"#ip"=> $_SERVER['REMOTE_ADDR'],
"#time"=> myself()->_getNowTime(),
"#type"=> "track",
"properties"=>''
);
return $data;
}
private static function diamondRecord($account_id)
{
$data = [
"#account_id" => $account_id,
"#event_name"=> "diamond_record",
"#ip"=> $_SERVER['REMOTE_ADDR'],
"#time"=> myself()->_getNowTime(),
"#type"=> "track",
"properties"=>''
];
return $data;
}
}