123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- <?php
- /**
- * Role.php UTF-8
- * 角色处理
- *
- * @date : 2018/5/30 16:48
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\data;
- use huo\controller\member\MemCache;
- use huo\model\log\DayMemLogModel;
- use huo\model\log\DmlSwitchModel;
- use huolib\constant\MemConst;
- use huolib\constant\OrderConst;
- use huolib\queue\request\Channel;
- use huolib\queue\request\Common;
- use huolib\queue\request\Device;
- use huolib\queue\request\Game;
- use huolib\queue\request\Mem as MemRq;
- use huolib\queue\request\Role as RoleRq;
- use huoMpAd\MpReportData;
- use think\Log;
- class Role {
- /**
- * 角色创建
- * 记录玩家创建角色时刻的日志。
- * 在创角界面,输入完角色名后,系统显示“创角成功”即可调用该接口。
- * http://doc.1tsdk.com/138?page_id=3383
- *
- * @param Common $com_rq
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- *
- * @return bool
- */
- public function create(
- Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq, MemRq $mem_rq, RoleRq $role_rq
- ) {
- // TODO: luowei 2021-04-06 创建暂时不上报
- // // 创建角色,回传上报MP后台
- // try {
- // (new MpReportData())->createRoleReport(
- // $mem_rq->getMgMemId(), $role_rq->getServerId(), $role_rq->getRoleId()
- // );
- // } catch (\Exception $exception) {
- // \think\Log::write(['mp_report_error', $exception->getTraceAsString(), 'error', true]);
- // }
- $this->upRole($com_rq, $device_rq, $game_rq, $agent_rq, $mem_rq, $role_rq);
- return true;
- }
- /**
- * 角色登录
- * 记录玩家角色登录的日志。此处应与账户登录区分。
- *
- * 在角色界面,点击“登录游戏”后进入到游戏界面时调用该接口。
- *
- * ①一个服务器下只有一个角色,没有“登录游戏”按钮,以角色登录到游戏界面时调用接口;
- *
- * ②一个服务器下可有多个角色,以执行“登录游戏”操作进入游戏界面时调用接口。
- * http://doc.1tsdk.com/138?page_id=3384
- *
- * @param Common $com_rq
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- *
- * @return bool
- */
- public function online(
- Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq, MemRq $mem_rq, RoleRq $role_rq
- ) {
- $this->upRole($com_rq, $device_rq, $game_rq, $agent_rq, $mem_rq, $role_rq);
- return true;
- }
- /**
- * 角色升级
- * 记录玩家升级的日志。玩家升级的时候调用该接口。
- * http://doc.1tsdk.com/138?page_id=3385
- *
- * @param Common $com_rq
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- *
- * @return bool
- */
- public function levelup(
- Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq, MemRq $mem_rq, RoleRq $role_rq
- ) {
- $this->upRole($com_rq, $device_rq, $game_rq, $agent_rq, $mem_rq, $role_rq);
- return true;
- }
- /**
- * 角色退出
- * 记录玩家角色登出的日志。此处应与账户登出区分。
- *
- * ①一个服务器只存在一个角色且不能重建的情况下,返回“选择服务器”界面即可调用该接口。
- *
- * ②一个服务器可存在多个角色,返回“选择角色”界面即可调用该接口。
- * http://doc.1tsdk.com/138?page_id=3386
- *
- * @param Common $com_rq
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- *
- * @return bool
- */
- public function offline(
- Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq, MemRq $mem_rq, RoleRq $role_rq
- ) {
- $this->upRole($com_rq, $device_rq, $game_rq, $agent_rq, $mem_rq, $role_rq);
- return true;
- }
- /**
- * 更新角色信息
- *
- * @param Common $com_rq
- * @param Device $device_rq
- * @param Game $game_rq
- * @param Channel $agent_rq
- * @param MemRq $mem_rq
- * @param RoleRq $role_rq
- * @param float $money
- *
- * @return bool
- */
- public function upRole(
- Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq, MemRq $mem_rq, RoleRq $role_rq
- , $money = 0.00
- ) {
- $_data['mg_mem_id'] = $mem_rq->getMgMemId();
- $_data['app_id'] = $com_rq->getAppId();
- $_data['server_id'] = $role_rq->getServerId();
- $_data['server_name'] = $role_rq->getServerName();
- $_data['role_id'] = $role_rq->getRoleId();
- $_data['role_name'] = $role_rq->getRoleName();
- $_data['role_level'] = $role_rq->getRoleLevel();
- $_data['combat_num'] = $role_rq->getCombatNum();
- $_data['last_login_time'] = $role_rq->getLastLoginTime();
- $_data['money'] = $money;
- $_data['os'] = $device_rq->getOs();
- if (MemConst::STATUS_NORMAL == $mem_rq->getStatus()) {
- //玩家状态
- $_mem_data = MemCache::ins()->getInfoById($mem_rq->getMemId());
- if (!empty($_mem_data) && MemConst::STATUS_NORMAL != $_mem_data['status']) {
- if (MemConst::STATUS_TRY == $_mem_data['status']) {
- $_mem_data['status'] = MemConst::STATUS_NORMAL;
- MemCache::ins()->updateMem($mem_rq->getMemId(), $_mem_data);
- }
- $_day_mem = new DayMem();
- $_model = new DayMemLogModel();
- $_map = [];
- $_map['date'] = date('Y-m-d', $com_rq->getTs());
- $_map['mem_id'] = $mem_rq->getMemId();
- $_map['app_id'] = $com_rq->getAppId();
- $_day_mem_data = $_model->getDetail($_map);
- /* 非空则更新 */
- if (!empty($_day_mem_data)) {
- $_day_mem->setDataFromDayMem($_day_mem_data);
- $_day_mem->setAuthCnt($_day_mem->getAuthCnt() + 1);
- $_model->updateLog($_day_mem->toArray(), $_day_mem_data['id']);
- }
- $_is_switch = OrderConst::PAY_SWITCH_NO; //默认不切换
- if (!empty($_mem_data) && OrderConst::PAY_SWITCH_YES == $_mem_data['is_switch']) {
- $_is_switch = OrderConst::PAY_SWITCH_YES;
- }
- if (OrderConst::PAY_SWITCH_YES == $_is_switch) {
- $_model = new DmlSwitchModel();
- $_day_mem_data = $_model->getDetail($_map);
- if (!empty($_day_mem_data)) {
- $_day_mem->setDataFromDayMem($_day_mem_data);
- $_day_mem->setAuthCnt($_day_mem->getAuthCnt() + 1);
- $_model->updateLog($_day_mem->toArray(), $_day_mem_data['id']);
- }
- }
- }
- }
- // if (\huolib\oa\Oa::hasOa()) {
- // $_oa_login = new \huolib\oa\OaUpInfo();
- // $_param = array();
- // $_param['create_time'] = $com_rq->getTs();
- // $_param['app_id'] = $com_rq->getAppId();
- // $_param['agent_id'] = $agent_rq->getCh();
- // $_param['mem_id'] = $mem_rq->getMemId();
- // $_param['ip'] = $device_rq->getIp();
- // $_param['imei'] = $device_rq->getDeviceId();
- // $_param['userua'] = $device_rq->getUserua();
- // $_param['role_level'] = $role_rq->getRoleLevel();
- // $_param['role_id'] = $role_rq->getRoleId();
- // $_param['role_name'] = $role_rq->getRoleName();
- // $_param['server_id'] = $role_rq->getServerId();
- // $_param['server_name'] = $role_rq->getServerName();
- // $_param['from'] = \huolib\oa\Oa::osToFrom($device_rq->getOs());
- // $u_re = $_oa_login->upInfo($_param);
- // if ($u_re) {
- // }
- // /* 处理渠道信息显示 */
- // $_agent_param = array();
- // $_agent_param['agent_id'] = $_param['agent_id'];
- // $_agent_param['app_id'] = $_param['app_id'];
- // $_agent_param['now_time'] = $_param['create_time'];
- // $_agent_oa_class = new \huolib\oa\AgentOa($_agent_param['agent_id']);
- // $_a_re = $_agent_oa_class->baseUpdate($_agent_param);
- // if ($_a_re) {
- // }
- // }
- return (new \huo\controller\member\Role())->updateData($_data);
- }
- }
|