Ejemplo n.º 1
0
 public static function getInstance(dataCenterUser $userinfo, dataCenterServer $serverinfo)
 {
     if (!self::$instance) {
         self::$instance = new dataCenterLog($userinfo, $serverinfo);
     }
     return self::$instance;
 }
Ejemplo n.º 2
0
 function __construct($userinfo, $serverinfo)
 {
     $userObj = new dataCenterUser($userinfo);
     $serverObj = new dataCenterServer($serverinfo);
     $this->logObj = dataCenterLog::getInstance($userObj, $serverObj);
 }
Ejemplo n.º 3
0
 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);
 }