* @version : HUOOA 1.0 */ namespace api\oa\controller; class OaFirstFosterController extends OacallbackController { function _initialize() { parent::_initialize(); $this->firstFosterCheck(); $this->index(); } public function firstFosterCheck() { $this->checkTypeId(); $this->checkGameId(); $this->checkUsername(); $this->checkSerCode(); $this->checkRoleName(); $this->checkMemberRole(); } /** * 检测请求类型 参数 * * @return bool */ public function checkTypeId() { if (!isset($this->param['type_id']) || empty($this->param['type_id'])) { return $this->oa_class->hs_api_responce('407', '类型ID错误'); } return true; } /** * 游戏id参数 * * @return bool */ public function checkGameId() { if (empty($this->param['game_id'])) { return $this->oa_class->hs_api_responce('405', '游戏ID错误'); } return true; } /** * 玩家账号检测 * * @return bool */ public function checkUsername() { if (empty($this->param['username'])) { return $this->oa_class->hs_api_responce('406', '玩家用户名错误'); } return true; } /** * 渠道标识检测 * * @return bool */ public function checkSerCode() { if (empty($this->param['ser_code'])) { return $this->oa_class->hs_api_responce('415', '区服code错误'); } return true; } /** * 玩家角色名参数检测 * * @return bool */ public function checkRoleName() { if (empty($this->param['role_name'])) { return $this->oa_class->hs_api_responce('415', '角色名错误'); } return true; } /** * 检测玩家用户名和角色名对应关系 */ public function checkMemberRole() { $_oa_first_foster_class = new \huolib\oa\OaFirstFoster(); $this->param = $_oa_first_foster_class->checkMemberRole($this->param); } /** * */ public function index() { $this->firstFosterCheck(); switch ($this->param['type_id']) { case 1: $this->gmFirst(); break; case 2: $this->gmFoster(); break; } } /** * 申请首充 * * @return mixed */ public function gmFirst() {/* 申请首充 */ $this->checkIsFirst(); /* 直接插入扶植记录表 */ $_re = $this->addGmLog(); /* 首充完直接发币?发完币绑定对应推广员 */ if ($_re && 1 == 2) { } return $this->oa_class->hs_api_responce('200', '申请提交成功'); } /** * 申请扶植 * * @return mixed */ public function gmFoster() {/* 申请扶植 */ /* 直接插入扶植记录表 */ $_re = $this->addGmLog(); if (empty($_re)) { return $this->oa_class->hs_api_responce('502', '信息错误'); } return $this->oa_class->hs_api_responce('200', '申请提交成功'); } /** *检测是否首充 */ public function checkIsFirst() { $this->checkAgent(); $this->checkPayFirst(); } /** * 添加操作记录 * * @return $this|int|string */ public function addGmLog() { $_oa_first_foster_class = new \huolib\oa\OaFirstFoster(); return $_oa_first_foster_class->addGmLog($this->param); } /** * * @return bool */ public function updateMembers() { $_mem_map['id'] = $this->param['sdk_mem_id']; $_up_data = []; $_up_data['agentgame'] = $this->param['agentgame']; $_up_data['agent_id'] = $this->param['sdk_agent_id']; $_up_data['update_time'] = time(); $_u_re = \think\Db::name('members')->where($_mem_map)->update($_up_data); if (empty($_u_re)) { return $this->oa_class->hs_api_responce('402', '更新用户归属错误'); } return true; } /** * 检测渠道 * * @return bool */ public function checkAgent() { $_oa_first_foster_class = new \huolib\oa\OaFirstFoster(); $this->param = $_oa_first_foster_class->checkAgent($this->param); return true; } /** * 判断是否首充 * * @return $this|bool */ public function checkPayFirst() { $_oa_first_foster_class = new \huolib\oa\OaFirstFoster(); return $_oa_first_foster_class->checkPayFirst($this->param); } /** * 获取ip * * @param int $type * @param bool $adv * * @return mixed */ public function get_client_ip($type = 0, $adv = false) { $type = $type ? 1 : 0; static $ip = null; if ($ip !== null) { return $ip[$type]; } if ($adv) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $pos = array_search('unknown', $arr); if (false !== $pos) { unset($arr[$pos]); } $ip = trim($arr[0]); } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } // IP地址合法验证 $long = sprintf("%u", ip2long($ip)); $ip = $long ? array($ip, $long) : array('0.0.0.0', 0); return $ip[$type]; } }