PaySwitchController.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <?php
  2. /**
  3. * PaySwitchController.php UTF-8
  4. * 支付切换
  5. *
  6. * @date : 2020/9/15 11:28
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : chenbingling <cbl@huosdk.com>
  10. * @version : H5IOS 1.0
  11. */
  12. namespace huosdk\h5ios\admin\controller;
  13. use cmf\view\Filter;
  14. use huo\controller\game\GameCache;
  15. use huo\controller\game\GamePaySwitchCache;
  16. use huo\controller\member\MemCache;
  17. use huo\logic\game\GamePaySwitchLogic;
  18. use huo\model\game\GameServerSwitchModel;
  19. use huo\model\game\PsMemWhiteModel;
  20. use huolib\tool\Page;
  21. use huosdk\h5ios\core\constant\GameConst;
  22. use huosdk\h5ios\core\constant\OrderConst;
  23. use menu\controller\Menu;
  24. class PaySwitchController extends CommonController {
  25. protected $class_name = 'pay_switch';
  26. function _initialize() {
  27. parent::_initialize();
  28. }
  29. /**
  30. * 点击切换不切换
  31. * adminh5ios/pay_switch/setSwitch
  32. * adminh5ios/paySwitch/setSwitch
  33. * */
  34. public function setSwitch() {
  35. $_app_id = $this->request->param('app_id/d', 0);
  36. $_pay_switch = $this->request->param('pay_switch/d', 1);
  37. if (empty($_app_id) || empty($_pay_switch)) {
  38. $this->adminError(lang('param error'));
  39. }
  40. $_data['pay_switch'] = $_pay_switch;
  41. $_data['id'] = $_app_id;
  42. $_rs = GameCache::ins()->updateGame($_app_id, $_data);
  43. if (false === $_rs) {
  44. $this->adminError(lang('ERROR'));
  45. } else {
  46. $this->adminSuccess(lang('SUCCESS'));
  47. }
  48. }
  49. /***
  50. * 编辑切换规则
  51. * adminh5ios/pay_switch/edit
  52. * adminh5ios/paySwitch/edit
  53. *
  54. * @param string $tempatle
  55. *
  56. * @return mixed
  57. */
  58. public function edit($tempatle = 'edit') {
  59. $_app_id = $this->request->param('app_id/d', 0);
  60. $this->_games($_app_id, 0, 2, 2, GameConst::GAME_IOS_SWITCH_H5, false, true, [], '', 'disabled');
  61. if (empty($_app_id)) {
  62. $this->adminError(lang('PARAM_ERROR'));
  63. }
  64. $_data = GamePaySwitchCache::ins()->getInfoByAppId($_app_id);
  65. $_system = ['and' => 1, 'ios' => 1];
  66. if (empty($_data)) {
  67. $_data['start_time'] = '00:00:00';
  68. $_data['end_time'] = '23:59:59';
  69. $_data['price'] = 0.00;
  70. $_data['is_domestic'] = OrderConst::PAY_SWITCH_YES;
  71. $_data['is_overseas'] = OrderConst::PAY_SWITCH_YES;
  72. $_data['is_first'] = OrderConst::PAY_SWITCH_YES;
  73. $_data['pay_type'] = OrderConst::PAY_SWITCH_PAY_TYPE_1;
  74. $_data['switch_app_id'] = 0;
  75. $_data['start_ip'] = '';
  76. $_data['end_ip'] = '';
  77. $_data['no_switch_version'] = '';
  78. $_data['combat_num_mini'] = 0;
  79. $_data['combat_num_max'] = 0;
  80. $_data['ip_white'] = '';
  81. $_data['area'] = '';
  82. $_data['mem_id'] = '';
  83. } else {
  84. $_tmp_system = explode(',', $_data['system']);
  85. if (!empty($_tmp_system)) {
  86. if (in_array(GameConst::GAME_ANDROID, $_tmp_system)) {
  87. $_system['and'] = 2;
  88. }
  89. if (in_array(GameConst::GAME_IOS, $_tmp_system)) {
  90. $_system['ios'] = 2;
  91. }
  92. }
  93. }
  94. $this->assign('system', $_system);
  95. $this->assign('data', $_data);
  96. $this->assign('app_id', $_app_id);
  97. return $this->fetch('pay_switch/edit');
  98. }
  99. /**
  100. * 编辑切换规则提交
  101. * adminh5ios/pay_switch/editPost
  102. * adminh5ios/paySwitch/editPost
  103. *
  104. * @throws
  105. */
  106. public function editPost() {
  107. $_params = $this->request->param();
  108. $_params['is_domestic'] = isset($_params['is_domestic']) ? $_params['is_domestic'] : 2;
  109. $_params['is_overseas'] = isset($_params['is_overseas']) ? $_params['is_overseas'] : 2;
  110. $_params['is_first'] = isset($_params['is_first']) ? $_params['is_first'] : 1;
  111. $_params['system'] = isset($_params['system']) ? $_params['system'] : [3, 4];
  112. $_params['system'] = implode(',', $_params['system']);
  113. $_model = new GamePaySwitchLogic();
  114. if (empty($_params['app_id'])) {
  115. $this->adminError(lang('PLEASE_SELECT_A_GAME'));
  116. }
  117. if (!$_model->checkGame($_params['app_id'])) {
  118. $_result = $_model->addPaySwitch($_params);
  119. if (false == $_result) {
  120. $this->adminError(lang('ADD_FAILED'));
  121. }
  122. $this->adminSuccess(lang('ADD_SUCCESS'), url('adminh5ios/game/index'));
  123. }
  124. $_result = GamePaySwitchCache::ins()->updatePaySwitch($_params['app_id'], $_params);
  125. if (false == $_result) {
  126. $this->adminError(lang('EDIT_FAILED'));
  127. }
  128. $this->adminSuccess(lang('EDIT_SUCCESS'), url('adminh5ios/game/index'));
  129. }
  130. /**
  131. * 编辑区服切换
  132. * adminh5ios/pay_switch/editSever
  133. * adminh5ios/paySwitch/editSever
  134. */
  135. public function editSever() {
  136. $_app_id = $this->request->param('app_id/d', 0);
  137. if (empty($_app_id)) {
  138. $this->adminError(lang('PARAM_ERROR'));
  139. }
  140. $_game_data = GameCache::ins()->getInfoByAppId($_app_id);
  141. $this->assign('game', $_game_data);
  142. $_gss_model = new GameServerSwitchModel();
  143. $_parent_id = get_val($_game_data, 'parent_id', 0);
  144. $_ser_array = $_gss_model->getIdName($_parent_id); //获取区服id_name(id 为自增id 非区服id)
  145. $_ids = $_gss_model->getSwitchNo($_parent_id); //获取切换标记为 不切换的id
  146. $_check_box = Filter::checkCommon($_ser_array, 'switch_no[]', $_ids);
  147. $this->assign('check_box', $_check_box);
  148. return $this->fetch('pay_switch/edit_server');
  149. }
  150. /**
  151. * 编辑区服切换提交
  152. * adminh5ios/pay_switch/editSeverPost
  153. * adminh5ios/paySwitch/editSeverPost
  154. */
  155. public function editSeverPost() {
  156. $_app_id = $this->request->param('app_id/d', 0);
  157. $_ids = $this->request->param('switch_no/a', []); //新的不需要切换ids
  158. $_gss_model = new GameServerSwitchModel();
  159. $_old_ids = $_gss_model->getSwitchNo($_app_id); //获取原不需要切换ids
  160. /* 在新数组但不在旧数组的表示新增的,需要标记为不切换 */
  161. $_no_ids = array_diff($_ids, $_old_ids);
  162. if (!empty($_no_ids)) {
  163. $_data = ['is_switch' => OrderConst::PAY_SWITCH_NO];
  164. foreach ($_no_ids as $_v) {
  165. $_gss_model->updateById($_v, $_data);
  166. }
  167. }
  168. /* 在旧数组但不在新数组的表示为切换*/
  169. $_yes_ids = array_diff($_old_ids, $_ids);
  170. if (!empty($_yes_ids)) {
  171. $_data = ['is_switch' => OrderConst::PAY_SWITCH_YES];
  172. foreach ($_yes_ids as $_v) {
  173. $_gss_model->updateById($_v, $_data);
  174. }
  175. }
  176. $this->adminSuccess(lang('UPDATE_SUCCESS'));
  177. }
  178. /**
  179. * 支付切换玩家白名单
  180. * adminh5ios/pay_switch/memWhite
  181. * adminh5ios/paySwitch/memWhite
  182. */
  183. public function memWhite() {
  184. $_param = $this->request->param();
  185. $_mem_text = Filter::text('mem_id', get_val($_param, 'mem_id', ''), lang('MSG_INPUT_MEM_ID'));
  186. $this->assign('mem_text', $_mem_text);
  187. $_username_text = Filter::text('username', get_val($_param, 'username', ''), lang('MSG_INPUT_ACCOUNT'));
  188. $this->assign('username_text', $_username_text);
  189. $_nickname_text = Filter::text('nickname', get_val($_param, 'nickname', ''), lang('MSG_INPUT_NICK'));
  190. $this->assign('nickname_text', $_nickname_text);
  191. $this->_time();
  192. if (empty($_param['app_id'])) {
  193. $this->adminError(lang('GAME_ID_ERROR'));
  194. }
  195. $_page = get_val($_param, 'page', 1);
  196. $_list_rows = get_val($_param, 'list_rows', 10);
  197. $_data = (new PsMemWhiteModel())->getlist($_param, $_page.','.$_list_rows);
  198. $_data = (new Page())->paginate($_data['count'], $_data['list'], $_page, $_list_rows);
  199. $this->assign('page', $_data->render());
  200. $this->assign('items', $_data->items());
  201. $this->assign('app_id', $_param['app_id']);
  202. return $this->fetch('pay_switch/mem_white');
  203. }
  204. /**
  205. * 添加玩家支付白名单
  206. * adminh5ios/pay_switch/addMemWhite
  207. * adminh5ios/paySwitch/addMemWhite
  208. */
  209. public function addMemWhite() {
  210. $_mem_id = $this->request->param('mem_id/d', 0);
  211. if (empty($_mem_id)) {
  212. $this->adminError(lang('MSG_INPUT_MEM_ID'));
  213. }
  214. $_app_id = $this->request->param('app_id/d', 0);
  215. if (empty($_app_id)) {
  216. $this->adminError(lang('GAME_ID_ERROR'));
  217. }
  218. $_mem_data = MemCache::ins()->getInfoById($_mem_id);
  219. if (empty($_mem_data)) {
  220. $this->adminError(lang('MEM_ID_ERROR'));
  221. }
  222. $_data = [];
  223. $_data['app_id'] = $_app_id;
  224. $_data['mem_id'] = $_mem_id;
  225. $_data['username'] = get_val($_mem_data, 'username', '');
  226. $_data['nickname'] = get_val($_mem_data, 'nickname', '');
  227. $_rs = (new PsMemWhiteModel())->addData($_data);
  228. if (false == $_rs) {
  229. $this->adminError(lang('ADD_FAILED'));
  230. }
  231. $this->adminSuccess(lang('ADD_SUCCESS'));
  232. }
  233. /**
  234. * 删除玩家白名单
  235. * adminh5ios/pay_switch/delMemWhite
  236. * adminh5ios/paySwitch/delMemWhite
  237. */
  238. public function delMemWhite() {
  239. $_mem_id = $this->request->param('mem_id/d', 0);
  240. if (empty($_mem_id)) {
  241. $this->adminError(lang('MSG_INPUT_MEM_ID'));
  242. }
  243. $_app_id = $this->request->param('app_id/d', 0);
  244. if (empty($_app_id)) {
  245. $this->adminError(lang('GAME_ID_ERROR'));
  246. }
  247. $_rs = (new PsMemWhiteModel())->delData($_app_id, $_mem_id);
  248. if (false == $_rs) {
  249. $this->adminError(lang('DELETE_FAILED'));
  250. }
  251. $this->adminSuccess(lang('DELETE_SUCCESS'));
  252. }
  253. /**
  254. * 添加菜单
  255. * adminh5ios/pay_switch/addMenu
  256. * adminh5ios/paySwitch/addMenu
  257. *
  258. * @param int $parent_id
  259. * @param int $list_order
  260. *
  261. * @return int
  262. */
  263. public function addMenu($parent_id = 0, $list_order = 0) {
  264. $_controller = 'pay_switch';/* 控制器名 */
  265. $_app = $this->app; /* 应用名 */
  266. $_menu_class = new Menu();
  267. $_menu_class->setApp($_app);
  268. /* 删除原有菜单 */
  269. $_menu_class->deleteMenu($_controller, $_app);
  270. /* 设置切换 */
  271. $_menu_class->addTop($_controller, $parent_id, $list_order, '设置切换', 'setSwitch', '', 'setSwitch', '', 1, 0);
  272. /* 编辑切换规则 */
  273. $_menu_class->addTop($_controller, $parent_id, $list_order, '编辑切换规则', 'edit Switch Rule', '', 'edit', '', 1, 0);
  274. /* 编辑切换规则提交 */
  275. $_menu_class->addTop(
  276. $_controller, $parent_id, $list_order, '编辑切换规则提交', 'edit Switch Rule Post', '', 'editPost', '', 1, 0
  277. );
  278. /* 编辑区服切换 */
  279. $_menu_class->addTop(
  280. $_controller, $parent_id, $list_order, '编辑区服切换', 'edit Switch Server', '', 'editSever', '', 1, 0
  281. );
  282. /* 编辑编辑区服切换提交 */
  283. $_menu_class->addTop(
  284. $_controller, $parent_id, $list_order, '编辑区服切换提交', 'edit Switch Server Post', '', 'editSeverPost', '', 1, 0
  285. );
  286. /* 玩家白名单 */
  287. $_menu_class->addTop($_controller, $parent_id, $list_order, '玩家白名单', 'memWhite', '', 'memWhite', '', 1, 0);
  288. /* 添加玩家白名单 */
  289. $_menu_class->addTop(
  290. $_controller, $parent_id, $list_order, '添加玩家白名单', 'addMemWhite', '', 'addMemWhite', '', 1, 0
  291. );
  292. /* 删除玩家白名单 */
  293. $_menu_class->addTop(
  294. $_controller, $parent_id, $list_order, '删除玩家白名单', 'delMemWhite', '', 'delMemWhite', '', 1, 0
  295. );
  296. return $parent_id;
  297. }
  298. }