public static function getInstance(dataCenterUser $userinfo, dataCenterServer $serverinfo) { if (!self::$instance) { self::$instance = new dataCenterLog($userinfo, $serverinfo); } return self::$instance; }
function __construct($userinfo, $serverinfo) { $userObj = new dataCenterUser($userinfo); $serverObj = new dataCenterServer($serverinfo); $this->logObj = dataCenterLog::getInstance($userObj, $serverObj); }
public function post_data($data) { if (empty($data)) { return; } $data = json_decode($data, true); $player_id = $data['player_id']; $act = $data['act']; $params = $data['params']; if (!isset($params['time'])) { $params['time'] = time(); } // var_dump($data); $userinfo = $this->_make_user_info($player_id); $serverinfo = array('pid' => OPERATOR_ID, 'sid' => SERVER_ID, 'gid' => GAME_ID, 'operatorid' => 1); $userObj = new dataCenterUser($userinfo); $serverObj = new dataCenterServer($serverinfo); $logObj = new dataCenterLog($userObj, $serverObj); switch ($act) { case 'login': /** * ad_info 广告用户来源 这里 只判断是否是广告用户 0 非 1是 * status on|off 表示上线或下线 * keep_time 在线时间,单位秒,下线的话则需要发送 */ // var_dump($logObj); $logObj->sendLogin($params['ad_info'], $params['status'], $params['keep_time'], $params['time']); break; case 'est': /** * ad_info 广告用户来源 这里 只判断是否是广告用户 0 非 1是 * step 根据创角流程发送完成的步骤 */ $logObj->sendEst($params['ad_info'], $params['step'], $params['time']); break; case 'pay': /** * pay_type 1兑换游戏币 2直够道具 * channel 渠道详细见 渠道文件 * money_coin 游戏币 必须 * order_id 数据中心与平台支付对账使用 必须发 */ $logObj->sendPay($params['pay_type'], $params['channel'], $params['money_coin'], $params['order_id'], $params['time']); break; case 'curr': /** * curr_type 加币类型 客服接口,任务奖励,充值活动 * act 加币行为 类似一个子类型,可以为空省略 * total 加币数量 包括黄金和黑钻 * order_id 充值对账流水号 可空 * gold 真钻 * black_gold 黑钻 */ $logObj->sendCurr($params['curr_type'], $params['act'], $params['total'], $params['order_id'], $params['gold'], $params['black_gold'], $params['time']); break; case 'prop': /** * act 消费行为 购买某道具,竞技场增加体力,清除功能cd * level 消费等级 道具等级,清除cd次数,可以为空 * price 行为单价 * gold 消费真钻数 * black_gold 消费黑钻数 * count 消费数量,默认1 */ // Com_Log::write('checkParamProp',var_export($struct,true)); $res = $logObj->sendProp($params['act'], $params['level'], $params['price'], $params['gold'], $params['black_gold'], $params['count'], $params['time']); break; case 'sub': /** * subtype 扣币类型 客服接口,交易 * act 扣币行为 类似一个子类型可以为空 * total 扣币数量 * gold 扣币真钻数 * black_gold 消费黑钻数 */ $logObj->sendSub($params['subtype'], $params['act'], $params['total'], $params['order_id'], $params['gold'], $params['black_gold'], $params['time']); break; case 'ser': //先修改userinfo //PCU $userinfo = array('uid' => '1', 'passport' => '1'); $pcuUserObj = new dataCenterUser($userinfo); $logObj->setUserinfo($pcuUserObj); /** * 人数信息,ouid和iuid应被设为1 * @param pcutime 时间戳,单位秒 统计时间点 * @param person_cnt 在线人数 * @param timestamp 时间戳,单位秒 * @return int */ $logObj->sendSer($params['time'], $params['online_num'], time()); break; case 'event': /** * event_type 事件大类 可以为空 * sub_event_type 事件小类 可以为空 * event_id 事件id 数字型 事件大类,小类与id至少有一个不为空 * change 变化量,也可以是其他含义,可为空 * refer 变化前的值,也可以是其他含义,可为空 * current 变化后的值,也可以是其他含义,可为空,change,refer,current 3者不可全为空,确保事件发生有值 */ $logObj->sendEvent($params['event_type'], $params['sub_event_type'], $params['event_id'], $params['change'], $params['refer'], $params['current'], $params['time']); break; } unset($userObj, $logObj, $serverObj); }