| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?php
- /**
- * Register.php UTF-8
- * 注册
- *
- * @date : 2018/4/24 21:47
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\member;
- use huo\controller\finance\Income;
- use huo\controller\integral\MemIa;
- use huo\controller\request\Channel;
- use huo\controller\request\Device;
- use huo\controller\request\Game;
- use huo\controller\request\Mem;
- use huoAgentSwitch\controller\AgentSwitchController;
- use huolib\constant\IaConst;
- use huolib\status\MemberStatus;
- use huolib\utils\UserUtils;
- use think\Exception;
- use think\Log;
- class Register extends Member {
- /**
- * 玩家注册
- *
- * @param Game $game_rq
- * @param Channel $channel
- * @param Device $device
- * @param Mem $member
- *
- * @return mixed
- */
- public function register(Game $game_rq, Channel $channel, Device $device, Mem $member) {
- $_username = $member->getUsername();
- $_password = $member->getPassword();
- $_mobile = $member->getMobile();
- if (empty($_mobile)) {
- $_um_chk = UserUtils::checkNameMobile($_username);
- if (MemberStatus::NO_ERROR != $_um_chk) {
- return $this->retErrMsg($_um_chk);
- }
- }
- /* 在checkName之前先做格式验证 */
- $_reg_chk = UserUtils::checkRegister($_username, $_password);
- if (MemberStatus::NO_ERROR != $_reg_chk) {
- $_err_msg = 'func='.__FUNCTION__.'&class='.__CLASS__.'&step=1&game'.json_encode($game_rq->toArray())
- .'&channel'
- .json_encode($channel->toArray()).'&device'.json_encode($device->toArray()).'&member'
- .json_encode($member->toArray());
- Log::write($_err_msg, Log::DEBUG);
- return $this->retErrMsg($_reg_chk);
- }
- if (true == $this->checkUserName($_username)) {
- $_rs = MemberStatus::USERNAME_EXISTS;
- $_err_msg = 'func='.__FUNCTION__.'&class='.__CLASS__.'&step=2&game'.json_encode($game_rq->toArray())
- .'&channel'
- .json_encode($channel->toArray()).'&device'.json_encode($device->toArray()).'&member'
- .json_encode($member->toArray());
- Log::write($_err_msg, Log::DEBUG);
- return $this->retErrMsg($_rs);
- }
- /*确保所有检查通过后,再插入数据*/
- try {
- $_mem_data = $this->reg($game_rq, $channel, $device, $member);
- if (!empty($_mem_data['id'])) {
- $_rdata = $this->getReturnData($_mem_data, $game_rq->getHAppId(), $device->getDeviceType());
- $member->setIsReg(1);
- $this->insertLoginLog($game_rq, $channel, $device, $member, $_rdata);
- /* LTV统计 */
- $_ltv_class = new \ltv\Ltv();
- $_ltv_class->reg($_mem_data['app_id'], $_mem_data['agent_id'], $_mem_data['create_time']);
- return $this->retSucMsg(MemberStatus::NO_ERROR, $_rdata);
- } else {
- $_err_msg = 'func='.__FUNCTION__.'&class='.__CLASS__.'&step=3&game'.json_encode($game_rq->toArray())
- .'&channel'
- .json_encode($channel->toArray()).'&device'.json_encode($device->toArray()).'&member'
- .json_encode($member->toArray());
- Log::write($_err_msg, Log::ERROR);
- $_rs = MemberStatus::UNKNOWN_ERROR;
- return $this->retErrMsg($_rs);
- }
- } catch (Exception $_e) {
- $_err_msg = 'func='.__FUNCTION__.'&class='.__CLASS__.'&step=4&game'.json_encode($game_rq->toArray())
- .'&channel'
- .json_encode($channel->toArray()).'&device'.json_encode($device->toArray()).'&member'
- .json_encode($member->toArray()).'&Exception'
- .$_e->getMessage();
- Log::write($_err_msg, Log::ERROR);
- $_rs = MemberStatus::UNKNOWN_ERROR;
- return $this->retErrMsg($_rs);
- }
- }
- /**
- * @param Game $game_rq
- * @param Channel $channel
- * @param Device $device
- * @param Mem $member
- *
- * @return array|bool|mixed
- */
- public function reg(Game $game_rq, Channel $channel, Device $device, Mem $member) {
- $this->setMemRq($game_rq, $channel, $device, $member);
- //渠道切量
- (new AgentSwitchController())->memSwitch($member);
- $_mem_data = $member->toArray();
- $member->setAppId($game_rq->getHAppId());
- $_mem_data['vb_id'] = $game_rq->getVbId(); /* 关联马甲包 */
- $_mem_id = $this->addMember($_mem_data);
- $_mem_data = MemCache::ins()->getInfoById($_mem_id);
- /* 手机注册为绑定 获得积分 */
- $_mobile = $member->getMobile();
- if (!empty($_mobile)) {
- (new MemIa($member->getMemId()))->doItgAct(IaConst::IA_BIND_MOBILE);
- }
- /* 计算渠道cpa*/
- (new Income())->incomeFroCpa($_mem_id);
- /* 插入登陆记录 */
- return $_mem_data;
- }
- /**
- * 手机注册
- *
- * @param Game $game_rq
- * @param Channel $channel
- * @param Device $device
- * @param Mem $member
- * @param $mobile
- *
- * @return mixed
- */
- public function regMobile(Game $game_rq, Channel $channel, Device $device, Mem $member, $mobile) {
- /* Modified by ouzhongfu BEGIN 2020/4/3 ISSUES:11805 手机注册:手机号直接为帐号 */
- #$_username = $this->genUsername();
- #$member->setUsername($_username);
- $member->setUsername($mobile);
- /* END 2020/4/3 ISSUES:11805 */
- $member->setMobile($mobile);
- $member->setRegMobile($mobile);
- /* 校验手机号是否已注册 */
- if (true == $this->checkUserName($mobile)) {
- $_rs = MemberStatus::PHONE_IS_REG;
- $_err_msg = 'func='.__FUNCTION__.'&class='.__CLASS__.'&game'.json_encode($game_rq->toArray())
- .'&channel'
- .json_encode($channel->toArray()).'&device'.json_encode($device->toArray()).'&member'
- .json_encode($member->toArray());
- Log::write($_err_msg, Log::DEBUG);
- return $this->retErrMsg($_rs);
- }
- return $this->register($game_rq, $channel, $device, $member);
- }
- }
|