OaFirstFoster.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: guxiannong
  5. * Date: 2018/7/19
  6. * Time: 15:37
  7. */
  8. namespace huolib\oa;
  9. use think\Db;
  10. class OaFirstFoster extends Oa {
  11. public function __construct() {
  12. parent::__construct();
  13. }
  14. /**
  15. * 检测玩家角色
  16. *
  17. * @param array $param
  18. *
  19. * @return $this|array
  20. */
  21. public function checkMemberRole($param = array()) {
  22. if (empty($param)) {
  23. return $this->hs_api_responce('414', '参数为空'.$this->getVal($param, 'role_name'));
  24. }
  25. if (!isset($param['role_name']) || empty($param['role_name'])) {
  26. return $this->hs_api_responce('414', '角色名错误'.$this->getVal($param, 'role_name'));
  27. }
  28. if (!isset($param['username']) || empty($param['username'])) {
  29. return $this->hs_api_responce('414', '玩家用户名错误'.$this->getVal($param, 'username'));
  30. }
  31. /* 找到玩家 和 玩家角色 */
  32. $_mem_map = array();
  33. $_mem_map['username'] = $param['username'];
  34. $_member_info = \think\Db::name(self::MEMBER_DB_NAME)->where($_mem_map)->find();
  35. if (empty($_member_info)) {
  36. return $this->hs_api_responce('501', '玩家信息错误');
  37. }
  38. $_return = $param;
  39. $_mem_id = $_member_info['id'];/* 玩家id */
  40. $_return['oa_mem_id'] = $this->getVal($param, 'mem_id');
  41. $_return['sdk_mem_id'] = $_mem_id;
  42. $_return['sdk_agent_id'] = $_member_info['agent_id'];
  43. $_return['agentgame'] = '';
  44. if (!isset($param['sdk_agent_name'])
  45. || (isset($param['sdk_agent_name'])
  46. && !$param['sdk_agent_name'])
  47. ) {
  48. if (isset($_member_info['agent_id']) && $_member_info['agent_id']) {
  49. $_us_map = [];
  50. $_us_map['agent_id'] = $_member_info['agent_id'];
  51. $_us_map['app_id'] = $this->getVal($param, 'game_id');
  52. $_return['agentgame'] = \think\Db::name(self::AGENT_GAME_DB_NAME)->where($_us_map)->value('agent_game');
  53. }
  54. } else {
  55. if (!$_member_info['agent_id']) {
  56. $_us_map = [];
  57. $_us_map['user_login'] = $param['sdk_agent_name'];
  58. $_agent_info = \think\Db::name(self::AGENT_DB_NAME)->where($_us_map)->find();
  59. $_return['agent_id'] = $_agent_info['id'];
  60. $_us_map = [];
  61. $_us_map['agent_id'] = $_agent_info['id'];
  62. $_us_map['app_id'] = $this->getVal($param, 'game_id');
  63. $_return['agentgame'] = \think\Db::name(self::AGENT_GAME_DB_NAME)->where($_us_map)->value('agent_game');
  64. }
  65. }
  66. $_map = array();
  67. $_map['mem_id'] = $_mem_id;
  68. $_map['app_id'] = $this->getVal($param, 'game_id');
  69. $_map['server_id'] = $this->getVal(param, 'ser_code');
  70. $_map['role_name'] = $this->getVal(param, 'role_name');
  71. $_member_role_info = \think\Db::name(self::MG_ROLE_DB_NAME)->where($_map)->find();
  72. if (empty($_member_role_info)) {
  73. $_last_sql = \think\Db::name(self::MG_ROLE_DB_NAME)->getLastSql();
  74. return $this->hs_api_responce('414', '角色名错误'.$_last_sql.'bbb');
  75. }
  76. return $_return;
  77. }
  78. /**
  79. * 检测渠道信息
  80. *
  81. * @param array $param
  82. *
  83. * @return $this|array
  84. */
  85. public function checkAgent($param = array()) {
  86. $_return = $param;
  87. $_mem_map = [];
  88. $_mem_map['username'] = $this->getVal($param, 'username'); //;
  89. $_member_info = \think\Db::name(self::MEMBER_DB_NAME)->where($_mem_map)->find();
  90. if (empty($_member_info) || (!array_key_exists('agent_game', $_member_info))
  91. || (!array_key_exists(
  92. 'agent_id', $_member_info
  93. ))
  94. ) {
  95. \think\Log::write($_member_info, 'error');
  96. \think\Log::write($_mem_map, 'error');
  97. return $this->hs_api_responce('414', '玩家信息d11cdd错误 ');
  98. }
  99. if ((!empty($_member_info['agent_game']) && $_member_info['agent_game'] != 'default')
  100. || !empty($_member_info['agent_id'])
  101. ) {
  102. return $this->hs_api_responce('416', $param['agentgame'].'已有绑定渠道 ');
  103. }
  104. if (!isset($param['sdk_agent_name']) || empty($param['sdk_agent_name'])) {
  105. return $this->hs_api_responce('417', '申请人信息错误');
  106. }
  107. /*user_login*/
  108. $_u_map['user_login'] = $param['sdk_agent_name'];
  109. $_users_info = \think\Db::name(self::AGENT_DB_NAME)->where($_u_map)->find();
  110. if (!empty($_users_info) && isset($_users_info['id']) && $_users_info['id']) {
  111. $_return['sdk_agent_id'] = $_users_info['id'];
  112. }
  113. return $_return;
  114. }
  115. /**
  116. * 检查是否首充
  117. *
  118. * @param array $param
  119. *
  120. * @return $this|bool
  121. */
  122. public function checkPayFirst($param = array()) {
  123. $_amp['mem_id'] = $this->getVal($param, 'sdk_mem_id');/* 所有游戏未充值 */
  124. $_amp['app_id'] = $this->getVal($param, 'game_id');/* 该游戏未有充值 */
  125. $_amp['status'] = self::PAY_STATUS_SUCCESS;/* 成功充值 */
  126. $_re = \think\Db::name(self::PAY_DB_NAME)->where($_amp)->find();
  127. if ($_re !== false && empty($_re)) {
  128. return true;
  129. }
  130. return $this->hs_api_responce('418', '未满足首充条件 ');
  131. }
  132. /**
  133. * 添加操作记录
  134. *
  135. * @param array $param
  136. *
  137. * @return $this|int|string
  138. */
  139. public function addGmLog($param = array()) {
  140. $_insert_arr = [];
  141. $_insert_arr['oa_gm_id'] = $this->getVal($param, 'id');
  142. $_insert_arr['node_id'] = $this->getVal($param, 'node_id');
  143. $_insert_arr['node_name'] = $this->getVal($param, 'node_name');
  144. $_insert_arr['agent_id'] = $this->getVal($param, 'sdk_agent_id', 0);
  145. $_insert_arr['username'] = $this->getVal($param, 'username');
  146. $_insert_arr['oa_mem_id'] = $this->getVal($param, 'oa_mem_id');
  147. $_insert_arr['mem_id'] = $this->getVal($param, 'sdk_mem_id');
  148. $_insert_arr['plat_id'] = $this->getVal($param, 'plat_id');
  149. $_insert_arr['type_id'] = $this->getVal($param, 'type_id');
  150. $_insert_arr['oa_app_id'] = $this->getVal($param, 'oa_app_id');
  151. $_insert_arr['oa_server_id'] = $this->getVal($param, 'server_id');
  152. $_insert_arr['ser_code'] = $this->getVal($param, 'ser_code');
  153. $_insert_arr['role_name'] = $this->getVal($param, 'role_name');
  154. $_insert_arr['game_id'] = $this->getVal($param, 'game_id');
  155. $_insert_arr['money'] = $this->getVal($param, 'money');
  156. $_insert_arr['check_status'] = $this->getVal($param, 'check_status');
  157. $_insert_arr['status'] = $this->getVal($param, 'status');
  158. $_insert_arr['content'] = $this->getVal($param, 'content');
  159. $_insert_arr['check_reason'] = $this->getVal($param, 'check_reason');
  160. $_insert_arr['fail_reason'] = $this->getVal($param, 'fail_reason');
  161. $_time = time();
  162. $_insert_arr['create_time'] = $_time;
  163. $_insert_arr['update_time'] = $_time;
  164. $_re = \think\Db::name(self::OA_GM_LOG_DB_NAME)->insertGetId($_insert_arr);
  165. if (empty($_re)) {
  166. return $this->hs_api_responce('502', '信息错误');
  167. }
  168. return $_re;
  169. }
  170. }