123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <?php
- /**
- * Role.php UTF-8
- * 角色处理
- *
- * @date : 2018/1/19 21:01
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\member;
- use huo\controller\common\Base;
- use huo\controller\request\Device;
- use huo\controller\request\Game as GameRq;
- use huo\controller\request\Mem;
- use huo\controller\request\Role as RoleRq;
- use huo\model\game\GameServerSwitchModel;
- use huo\model\log\MemRoleLogModel;
- use huo\model\member\MgRoleModel;
- use huolib\constant\OrderConst;
- use huoMpAd\MpReportData;
- class Role extends Base {
- /**
- * 插入记录
- *
- * @param Mem $mem
- * @param RoleRq $role
- * @param GameRq $game_rq
- * @param float $money
- *
- * @param Device|null $device_rq
- *
- * @return bool|mixed
- */
- public function insertLog(Mem $mem, RoleRq $role, GameRq $game_rq, $money = 0.00, Device $device_rq = null) {
- $_role_model = new MemRoleLogModel();
- $_data = $role->toArray();
- $_data['mg_mem_id'] = $mem->getMgMemId();
- $_data['app_id'] = $game_rq->getHAppId();
- $_data['money'] = $money;
- $_data['create_time'] = time();
- /* 异步处理数据 */
- (new \huo\controller\queue\Role($game_rq->getHAppId()))->upRole($game_rq, $mem, $role, $device_rq);
- return $_role_model->insertLog($_data);
- }
- /**
- * 更新橘色数据
- *
- * @param $data
- *
- * @return bool
- */
- public function updateData($data) {
- if (empty($data['mg_mem_id']) || empty($data['app_id']) || empty($data['server_id'])
- || empty($data['role_id'])) {
- return false;
- }
- $_mg_mem_id = $data['mg_mem_id'];
- $_app_id = $data['app_id'];
- $_server_id = $data['server_id'];
- $_role_id = $data['role_id'];
- $_model = new MgRoleModel();
- $_data = $_model->getDetailByMemGameServerRole($_mg_mem_id, $_app_id, $_server_id, $_role_id);
- if (empty($_data)) {
- /* 新增插入 */
- $_data = $data;
- if (!empty($data['last_login_time'])) {
- $_data['ext']['last_login_time'] = time();
- }
- $_rs = $_model->addData($_data);
- if (false != $_rs && !empty($_app_id) && 81234702 != $_app_id && !empty($_server_id)) {
- /* 魔龙契约 传入的游戏区服有问题暂时不写入 */
- /* 查找区服是否存在,不存在则插入数据 */
- $_gss_model = new GameServerSwitchModel();
- $_ser_data = $_gss_model->getInfo($_app_id, $_server_id);
- if (empty($_ser_data)) {
- $_ser_data = [
- 'app_id' => $_app_id,
- 'server_id' => $_server_id,
- 'server_name' => $data['server_name'],
- 'is_switch' => OrderConst::PAY_SWITCH_YES,
- ];
- $_gss_model->addData($_ser_data);
- }
- }
- return $_rs;
- } else {
- if (empty($data['money']) && $_data['role_level'] >= $data['role_level']
- && empty($data['last_login_time'])) {
- /* 角色未升级或者未更新 不更新数据 */
- return true;
- }
- if (empty($_data['os']) && !empty($data['os'])) {
- $_data['os'] = $data['os'];
- }
- if (!empty($data['money'])) {
- $_data['money'] += $data['money'];
- }
- if (!empty($data['combat_num'])) {
- $_data['combat_num'] = $data['combat_num'];
- }
- if (!empty($data['role_name'])) {
- $_data['role_name'] = $data['role_name'];
- }
- if (!empty($data['server_name'])) {
- $_data['server_name'] = $data['server_name'];
- }
- if ($_data['role_level'] < $data['role_level']) {
- $_data['role_level'] = $data['role_level'];
- }
- if (!empty($data['last_login_time'])) {
- $_data['ext']['last_login_time'] = $data['last_login_time'];
- }
- if (empty($_data['ext']['last_login_time'])) {
- $_data['ext']['last_login_time'] = time();
- }
- if (empty($data['ext']['login_day'])) {
- $data['ext']['login_day'] = 1;
- } elseif (date('Y-m-d') != date('Y-m-d', $_data['ext']['last_login_time'])) {
- $data['ext']['login_day'] += 1;
- }
- $_data['update_time'] = \time();
- return $_model->updateData($_data, $_data['id']);
- }
- }
- }
|