GameController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. namespace app\v1\controller\center;
  3. use plugin\saiadmin\basic\BaseController;
  4. use app\v1\logic\center\GameLogic;
  5. use app\v1\validate\center\GameValidate;
  6. use plugin\saiadmin\app\logic\system\SystemDeptLogic;
  7. use plugin\saiadmin\exception\ApiException;
  8. use support\Request;
  9. use support\Response;
  10. /**
  11. * 游戏列表控制器
  12. */
  13. class GameController extends BaseController
  14. {
  15. protected $systemDeptLogic;
  16. /**
  17. * 构造函数
  18. */
  19. public function __construct()
  20. {
  21. $this->logic = new GameLogic();
  22. $this->validate = new GameValidate;
  23. $this->systemDeptLogic = new SystemDeptLogic();
  24. parent::__construct();
  25. }
  26. /**
  27. * 数据列表
  28. * @param Request $request
  29. * @return Response
  30. */
  31. public function index(Request $request): Response
  32. {
  33. $where = $request->more([
  34. ['main_id', ''],
  35. ['name', ''],
  36. ['os', ''],
  37. ['status', ''],
  38. ]);
  39. $list = $this->logic->getIndex($where);
  40. return $this->success($list);
  41. }
  42. /**
  43. * 添加游戏
  44. */
  45. public function addGame(Request $request): Response
  46. {
  47. $data = $request->post();
  48. $cp_callback_type = $data['cp_callback_type'];
  49. if($cp_callback_type == 1){
  50. // 读取主游戏的KEY
  51. if(!$data['main_game_id']){
  52. return $this->fail('请选择主游戏');
  53. }
  54. $main_game_info = $this->logic->read($data['main_game_id']);
  55. $data['appkey'] = $main_game_info['appkey'];
  56. $data['login_key'] = $main_game_info['login_key'];
  57. $data['pay_key'] = $main_game_info['pay_key'];
  58. }else{
  59. // 生成新的KEY
  60. $data['appkey'] = md5('appkey'.uniqid());
  61. $data['login_key'] = md5('login_key'.uniqid());
  62. $data['pay_key'] = md5('pay_key'.uniqid());
  63. }
  64. $this->logic->add($data);
  65. return $this->success();
  66. }
  67. /**
  68. * 更新游戏
  69. */
  70. public function updateGame(Request $request, $id): Response
  71. {
  72. $data = $request->post();
  73. $game_info = $this->logic->read($id);
  74. $cp_callback_type = $data['cp_callback_type'];
  75. $game_info_cp_callback_type = $game_info['cp_callback_type'];
  76. $main_game_id = $data['main_game_id'];
  77. $game_info_main_game_id = $game_info['main_game_id'];
  78. // 如果主游戏ID改变,并且游戏发货规则为1,则获取主游戏KEY
  79. if(($main_game_id !== $game_info_main_game_id) && $cp_callback_type===1){
  80. $main_game_info = $this->logic->read($main_game_id);
  81. $data['appkey'] = $main_game_info['appkey'];
  82. $data['login_key'] = $main_game_info['login_key'];
  83. $data['pay_key'] = $main_game_info['pay_key'];
  84. $this->logic->edit($id,$data);
  85. }else if($cp_callback_type !== $game_info_cp_callback_type){
  86. // 如果游戏发货规则改变,则根据规则生成新的KEY
  87. if($cp_callback_type == 0){
  88. // 如果是独立KEY, 则生成新的KEY
  89. $data['appkey'] = md5('appkey'.uniqid());
  90. $data['login_key'] = md5('login_key'.uniqid());
  91. $data['pay_key'] = md5('pay_key'.uniqid());
  92. }else{
  93. // 如果是主游戏KEY, 则获取主游戏KEY
  94. $appkey = $this->logic->read($main_game_id)['appkey'];
  95. $login_key = $this->logic->read($main_game_id)['login_key'];
  96. $pay_key = $this->logic->read($main_game_id)['pay_key'];
  97. $data['appkey'] = $appkey;
  98. $data['login_key'] = $login_key;
  99. $data['pay_key'] = $pay_key;
  100. }
  101. }
  102. $this->logic->edit($id, $data);
  103. return $this->success();
  104. }
  105. /**
  106. * 设置部门游戏权限
  107. */
  108. public function setGameListByDeptId(Request $request): Response
  109. {
  110. $game_list = $request->post('game_list');
  111. $dept_id = $request->post('dept_id');
  112. $this->logic->setGameListByDeptId($dept_id, $game_list);
  113. return $this->success();
  114. }
  115. }