* @version : H5IOS 1.0 */ namespace huosdk\h5ios\admin\controller; use cmf\view\Filter; use huo\controller\game\GameCache; use huo\controller\game\GamePaySwitchCache; use huo\controller\member\MemCache; use huo\logic\game\GamePaySwitchLogic; use huo\model\game\GameServerSwitchModel; use huo\model\game\PsMemWhiteModel; use huolib\tool\Page; use huosdk\h5ios\core\constant\GameConst; use huosdk\h5ios\core\constant\OrderConst; use menu\controller\Menu; class PaySwitchController extends CommonController { protected $class_name = 'pay_switch'; function _initialize() { parent::_initialize(); } /** * 点击切换不切换 * adminh5ios/pay_switch/setSwitch * adminh5ios/paySwitch/setSwitch * */ public function setSwitch() { $_app_id = $this->request->param('app_id/d', 0); $_pay_switch = $this->request->param('pay_switch/d', 1); if (empty($_app_id) || empty($_pay_switch)) { $this->adminError(lang('param error')); } $_data['pay_switch'] = $_pay_switch; $_data['id'] = $_app_id; $_rs = GameCache::ins()->updateGame($_app_id, $_data); if (false === $_rs) { $this->adminError(lang('ERROR')); } else { $this->adminSuccess(lang('SUCCESS')); } } /*** * 编辑切换规则 * adminh5ios/pay_switch/edit * adminh5ios/paySwitch/edit * * @param string $tempatle * * @return mixed */ public function edit($tempatle = 'edit') { $_app_id = $this->request->param('app_id/d', 0); $this->_games($_app_id, 0, 2, 2, GameConst::GAME_IOS_SWITCH_H5, false, true, [], '', 'disabled'); if (empty($_app_id)) { $this->adminError(lang('PARAM_ERROR')); } $_data = GamePaySwitchCache::ins()->getInfoByAppId($_app_id); $_system = ['and' => 1, 'ios' => 1]; if (empty($_data)) { $_data['start_time'] = '00:00:00'; $_data['end_time'] = '23:59:59'; $_data['price'] = 0.00; $_data['is_domestic'] = OrderConst::PAY_SWITCH_YES; $_data['is_overseas'] = OrderConst::PAY_SWITCH_YES; $_data['is_first'] = OrderConst::PAY_SWITCH_YES; $_data['pay_type'] = OrderConst::PAY_SWITCH_PAY_TYPE_1; $_data['switch_app_id'] = 0; $_data['start_ip'] = ''; $_data['end_ip'] = ''; $_data['no_switch_version'] = ''; $_data['combat_num_mini'] = 0; $_data['combat_num_max'] = 0; $_data['ip_white'] = ''; $_data['area'] = ''; $_data['mem_id'] = ''; } else { $_tmp_system = explode(',', $_data['system']); if (!empty($_tmp_system)) { if (in_array(GameConst::GAME_ANDROID, $_tmp_system)) { $_system['and'] = 2; } if (in_array(GameConst::GAME_IOS, $_tmp_system)) { $_system['ios'] = 2; } } } $this->assign('system', $_system); $this->assign('data', $_data); $this->assign('app_id', $_app_id); return $this->fetch('pay_switch/edit'); } /** * 编辑切换规则提交 * adminh5ios/pay_switch/editPost * adminh5ios/paySwitch/editPost * * @throws */ public function editPost() { $_params = $this->request->param(); $_params['is_domestic'] = isset($_params['is_domestic']) ? $_params['is_domestic'] : 2; $_params['is_overseas'] = isset($_params['is_overseas']) ? $_params['is_overseas'] : 2; $_params['is_first'] = isset($_params['is_first']) ? $_params['is_first'] : 1; $_params['system'] = isset($_params['system']) ? $_params['system'] : [3, 4]; $_params['system'] = implode(',', $_params['system']); $_model = new GamePaySwitchLogic(); if (empty($_params['app_id'])) { $this->adminError(lang('PLEASE_SELECT_A_GAME')); } if (!$_model->checkGame($_params['app_id'])) { $_result = $_model->addPaySwitch($_params); if (false == $_result) { $this->adminError(lang('ADD_FAILED')); } $this->adminSuccess(lang('ADD_SUCCESS'), url('adminh5ios/game/index')); } $_result = GamePaySwitchCache::ins()->updatePaySwitch($_params['app_id'], $_params); if (false == $_result) { $this->adminError(lang('EDIT_FAILED')); } $this->adminSuccess(lang('EDIT_SUCCESS'), url('adminh5ios/game/index')); } /** * 编辑区服切换 * adminh5ios/pay_switch/editSever * adminh5ios/paySwitch/editSever */ public function editSever() { $_app_id = $this->request->param('app_id/d', 0); if (empty($_app_id)) { $this->adminError(lang('PARAM_ERROR')); } $_game_data = GameCache::ins()->getInfoByAppId($_app_id); $this->assign('game', $_game_data); $_gss_model = new GameServerSwitchModel(); $_parent_id = get_val($_game_data, 'parent_id', 0); $_ser_array = $_gss_model->getIdName($_parent_id); //获取区服id_name(id 为自增id 非区服id) $_ids = $_gss_model->getSwitchNo($_parent_id); //获取切换标记为 不切换的id $_check_box = Filter::checkCommon($_ser_array, 'switch_no[]', $_ids); $this->assign('check_box', $_check_box); return $this->fetch('pay_switch/edit_server'); } /** * 编辑区服切换提交 * adminh5ios/pay_switch/editSeverPost * adminh5ios/paySwitch/editSeverPost */ public function editSeverPost() { $_app_id = $this->request->param('app_id/d', 0); $_ids = $this->request->param('switch_no/a', []); //新的不需要切换ids $_gss_model = new GameServerSwitchModel(); $_old_ids = $_gss_model->getSwitchNo($_app_id); //获取原不需要切换ids /* 在新数组但不在旧数组的表示新增的,需要标记为不切换 */ $_no_ids = array_diff($_ids, $_old_ids); if (!empty($_no_ids)) { $_data = ['is_switch' => OrderConst::PAY_SWITCH_NO]; foreach ($_no_ids as $_v) { $_gss_model->updateById($_v, $_data); } } /* 在旧数组但不在新数组的表示为切换*/ $_yes_ids = array_diff($_old_ids, $_ids); if (!empty($_yes_ids)) { $_data = ['is_switch' => OrderConst::PAY_SWITCH_YES]; foreach ($_yes_ids as $_v) { $_gss_model->updateById($_v, $_data); } } $this->adminSuccess(lang('UPDATE_SUCCESS')); } /** * 支付切换玩家白名单 * adminh5ios/pay_switch/memWhite * adminh5ios/paySwitch/memWhite */ public function memWhite() { $_param = $this->request->param(); $_mem_text = Filter::text('mem_id', get_val($_param, 'mem_id', ''), lang('MSG_INPUT_MEM_ID')); $this->assign('mem_text', $_mem_text); $_username_text = Filter::text('username', get_val($_param, 'username', ''), lang('MSG_INPUT_ACCOUNT')); $this->assign('username_text', $_username_text); $_nickname_text = Filter::text('nickname', get_val($_param, 'nickname', ''), lang('MSG_INPUT_NICK')); $this->assign('nickname_text', $_nickname_text); $this->_time(); if (empty($_param['app_id'])) { $this->adminError(lang('GAME_ID_ERROR')); } $_page = get_val($_param, 'page', 1); $_list_rows = get_val($_param, 'list_rows', 10); $_data = (new PsMemWhiteModel())->getlist($_param, $_page.','.$_list_rows); $_data = (new Page())->paginate($_data['count'], $_data['list'], $_page, $_list_rows); $this->assign('page', $_data->render()); $this->assign('items', $_data->items()); $this->assign('app_id', $_param['app_id']); return $this->fetch('pay_switch/mem_white'); } /** * 添加玩家支付白名单 * adminh5ios/pay_switch/addMemWhite * adminh5ios/paySwitch/addMemWhite */ public function addMemWhite() { $_mem_id = $this->request->param('mem_id/d', 0); if (empty($_mem_id)) { $this->adminError(lang('MSG_INPUT_MEM_ID')); } $_app_id = $this->request->param('app_id/d', 0); if (empty($_app_id)) { $this->adminError(lang('GAME_ID_ERROR')); } $_mem_data = MemCache::ins()->getInfoById($_mem_id); if (empty($_mem_data)) { $this->adminError(lang('MEM_ID_ERROR')); } $_data = []; $_data['app_id'] = $_app_id; $_data['mem_id'] = $_mem_id; $_data['username'] = get_val($_mem_data, 'username', ''); $_data['nickname'] = get_val($_mem_data, 'nickname', ''); $_rs = (new PsMemWhiteModel())->addData($_data); if (false == $_rs) { $this->adminError(lang('ADD_FAILED')); } $this->adminSuccess(lang('ADD_SUCCESS')); } /** * 删除玩家白名单 * adminh5ios/pay_switch/delMemWhite * adminh5ios/paySwitch/delMemWhite */ public function delMemWhite() { $_mem_id = $this->request->param('mem_id/d', 0); if (empty($_mem_id)) { $this->adminError(lang('MSG_INPUT_MEM_ID')); } $_app_id = $this->request->param('app_id/d', 0); if (empty($_app_id)) { $this->adminError(lang('GAME_ID_ERROR')); } $_rs = (new PsMemWhiteModel())->delData($_app_id, $_mem_id); if (false == $_rs) { $this->adminError(lang('DELETE_FAILED')); } $this->adminSuccess(lang('DELETE_SUCCESS')); } /** * 添加菜单 * adminh5ios/pay_switch/addMenu * adminh5ios/paySwitch/addMenu * * @param int $parent_id * @param int $list_order * * @return int */ public function addMenu($parent_id = 0, $list_order = 0) { $_controller = 'pay_switch';/* 控制器名 */ $_app = $this->app; /* 应用名 */ $_menu_class = new Menu(); $_menu_class->setApp($_app); /* 删除原有菜单 */ $_menu_class->deleteMenu($_controller, $_app); /* 设置切换 */ $_menu_class->addTop($_controller, $parent_id, $list_order, '设置切换', 'setSwitch', '', 'setSwitch', '', 1, 0); /* 编辑切换规则 */ $_menu_class->addTop($_controller, $parent_id, $list_order, '编辑切换规则', 'edit Switch Rule', '', 'edit', '', 1, 0); /* 编辑切换规则提交 */ $_menu_class->addTop( $_controller, $parent_id, $list_order, '编辑切换规则提交', 'edit Switch Rule Post', '', 'editPost', '', 1, 0 ); /* 编辑区服切换 */ $_menu_class->addTop( $_controller, $parent_id, $list_order, '编辑区服切换', 'edit Switch Server', '', 'editSever', '', 1, 0 ); /* 编辑编辑区服切换提交 */ $_menu_class->addTop( $_controller, $parent_id, $list_order, '编辑区服切换提交', 'edit Switch Server Post', '', 'editSeverPost', '', 1, 0 ); /* 玩家白名单 */ $_menu_class->addTop($_controller, $parent_id, $list_order, '玩家白名单', 'memWhite', '', 'memWhite', '', 1, 0); /* 添加玩家白名单 */ $_menu_class->addTop( $_controller, $parent_id, $list_order, '添加玩家白名单', 'addMemWhite', '', 'addMemWhite', '', 1, 0 ); /* 删除玩家白名单 */ $_menu_class->addTop( $_controller, $parent_id, $list_order, '删除玩家白名单', 'delMemWhite', '', 'delMemWhite', '', 1, 0 ); return $parent_id; } }