123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455 |
- <?php
- namespace huolib\oa;
- class OaGame extends Oa {
- public function __construct() {
- parent::__construct();
- }
- /**
- * 添加游戏
- *
- * @param array $game_data
- *
- * @return array|bool
- */
- public static function addOaGame($game_data = array()) {
- if (self::canOa()) {
- $_param = [];
- $_need_column_arr = self::addGameNeedColumn();
- foreach ($_need_column_arr as $k) {
- if (!isset($game_data[$k])) {
- return array(
- 'code' => 403,
- 'msg' => '参数错误',
- 'data' => $game_data
- );
- } else {
- $_param[$k] = $game_data[$k];
- }
- }
- $_update_column_arr = self::updateGameColumn();
- foreach ($_update_column_arr as $v) {
- if (isset($game_data[$v])) {
- $_param[$v] = $game_data[$v];
- }
- }
- $_return_data = self::sendToOA('GAME_ADD', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- 'param' => $_param,
- );
- } else {
- return true;
- }
- }
- /**
- * 添加游戏需字段
- *
- * @return array
- */
- public static function addGameNeedColumn() {
- $_need_column_arr = array(
- 'app_id',
- 'gamename',
- 'classify',
- 'gameflag',
- 'create_time',
- 'status',
- 'pinyin',
- 'initial',
- 'game_version',
- );
- return $_need_column_arr;
- }
- /**
- * 更新游戏字段
- *
- * @return array
- */
- public static function updateGameColumn() {
- $_column_arr = array(
- 'update_time',
- 'status',
- 'pinyin',
- 'initial',
- 'teststatus',
- 'icon',
- 'target_cnt',
- 'target_level',
- 'run_time',
- 'parent_id',
- 'gamename',
- 'classify',
- 'gameflag',
- 'game_version',
- );
- return $_column_arr;
- }
- /**
- * 修改游戏
- *
- * @param array $update_data
- *
- * @return array|bool
- */
- public static function updateOaGame($update_data = array()) {
- if (self::canOa()) {
- if (!isset($update_data['app_id']) || !$update_data['app_id'] || !is_numeric($update_data['app_id'])) {
- return array(
- 'code' => 403,
- 'msg' => '参数错误',
- 'data' => $update_data,
- );
- }
- $_up_info = array();
- $_up_column_arr = self::updateGameColumn();
- foreach ($_up_column_arr as $k) {
- if (isset($update_data[$k])) {
- $_up_info[$k] = $update_data[$k];
- }
- }
- $_param = [];
- $_param['app_id'] = $update_data['app_id'];
- $_param['upinfo'] = json_encode($_up_info);
- $_return_data = self::sendToOA('GAME_UPDATE', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data
- );
- } else {
- return true;
- }
- }
- /**
- * 删除游戏
- *
- * @param array $delete_data
- *
- * @return array|bool
- */
- public static function deleteOaGame($delete_data = array()) {
- if (self::canOa()) {
- if (!isset($delete_data['app_id']) || !$delete_data['app_id'] || !is_numeric($delete_data['app_id'])) {
- return array(
- 'code' => 403,
- 'msg' => '参数错误',
- 'data' => $delete_data,
- );
- }
- $_param = [];
- $_param['app_id'] = $delete_data['app_id'];
- $_param['delete_time'] = (isset($delete_data['delete_time']) && $delete_data['delete_time'])
- ? $delete_data['delete_time'] : time();
- $_return_data = self::sendToOA('GAME_DELETE', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- );
- } else {
- return true;
- }
- return false;
- }
- /**
- * 还原已删除游戏
- *
- * @param array $restore_data
- *
- * @return array|bool
- */
- public static function restoreOaGame($restore_data = array()) {
- if (self::canOa()) {
- if (!isset($restore_data['app_id']) || !$restore_data['app_id'] || !is_numeric($restore_data['app_id'])) {
- return array(
- 'code' => 403,
- 'msg' => '参数错误',
- 'data' => $restore_data,
- );
- }
- $_param = [];
- $_param['app_id'] = $restore_data['app_id'];
- $_param['restore_time'] = (isset($restore_data['restore_time']) && $restore_data['restore_time'])
- ? $restore_data['restore_time'] : time();
- $_return_data = self::sendToOA('GAME_RESTORE', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- );
- } else {
- return true;
- }
- return false;
- }
- /**
- * 添加游戏区服需字段
- *
- * @return array
- */
- public static function addGameServerNeedColumn() {
- $_need_column_arr = array(
- 'app_id',
- 'server_id',
- 'ser_name',
- 'ser_code',
- 'create_time',
- );
- return $_need_column_arr;
- }
- /**
- * 更新游戏区服需字段
- *
- * @return array
- */
- public static function updateGameServerNeedColumn() {
- $_need_column_arr = array(
- 'app_id',
- 'server_id',
- 'ser_name',
- 'ser_code',
- 'update_time',
- );
- return $_need_column_arr;
- }
- /**
- * 更新游戏区服字段
- *
- * @return array
- */
- public static function updateGameServerColumn() {
- $_column_arr = array(
- 'app_id',
- 'server_id',
- 'ser_name',
- 'ser_code',
- 'create_time',
- 'gamename',
- 'server_desc',
- 'status',
- 'is_delete',
- 'start_time',
- 'update_time',
- );
- return $_column_arr;
- }
- /**
- * 添加游戏区服
- *
- * @param array $data
- *
- * @return array|bool
- */
- public static function addOaGameServer($data = array()) {
- if (self::canOa()) {
- $_param = [];
- $_need_add_column_arr = self::addGameServerNeedColumn();
- foreach ($_need_add_column_arr as $k) {
- if (!isset($data[$k]) || !$data[$k] || is_bool($data[$k])) {
- return array(
- 'code' => 403,
- 'msg' => '参数错误',
- 'data' => $data
- );
- } else {
- $_param[$k] = $data[$k];
- }
- }
- $_up_column_arr = self::updateGameServerColumn();
- foreach ($_up_column_arr as $v) {
- if (isset($data[$v])) {
- $_param[$v] = $data[$v];
- }
- }
- $_param['create_time'] = isset($data['create_time']) ? $data['create_time'] : time();
- $_return_data = self::sendToOA('SERVER_ADD', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- );
- } else {
- return true;
- }
- }
- /**
- * 更新游戏区服信息
- *
- * @param array $data
- *
- * @return array|bool
- */
- public static function updateOaGameServer($data = array()) {
- if (self::canOa()) {
- $_param = [];
- $_need_add_column_arr = self::updateGameServerNeedColumn();
- foreach ($_need_add_column_arr as $k) {
- if (!isset($data[$k]) || !$data[$k] || is_bool($data[$k])) {
- return array(
- 'code' => 403,
- 'msg' => '参数错误',
- 'data' => $data
- );
- } else {
- $_param[$k] = $data[$k];
- }
- }
- $_up_column_arr = self::updateGameServerColumn();
- foreach ($_up_column_arr as $v) {
- if (isset($data[$v])) {
- $_param[$v] = $data[$v];
- }
- }
- $_return_data = self::sendToOA('SERVER_UPDATE', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- );
- } else {
- return true;
- }
- }
- /**
- * 更改玩家归属
- *
- * @param string $username
- * @param string $agent_name
- *
- * @return array|bool
- *
- */
- public static function memUpdateAgentName($username = '', $agent_name = '') {
- if (self::canOa()) {
- $_param = [];
- $_param['username'] = $username;
- $_param['agentname'] = $agent_name;
- $_return_data = self::sendToOA('MEM_UPDATE', $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- );
- } else {
- return array(
- 'code' => 200,
- 'msg' => '处理完成'
- );
- }
- }
- /**
- * 扶植首充回调到oa
- *
- * @param int $id
- * @param int $game_id
- * @param int $status
- * @param int $type
- * @param string $reason
- *
- * @return array|bool
- */
- public static function oaGmCallBack($id = 0, $game_id = 0, $status = 0, $type = 0, $reason = '') {
- if (self::canOa()) {
- if (empty($id) || empty($game_id) || empty($status) || empty($type)) {
- return false;
- }
- $_param = [];
- $_param['id'] = $id;
- $_param['status'] = $status;
- $_param['reason'] = $reason;
- $_param['type_id'] = $type;
- $_param['app_id'] = $game_id;
- $url_code = '';
- switch ($type) {
- case 1:
- $url_code = 'GM_FIRST';
- break;
- case 2:
- $url_code = 'GM_FOSTER';
- break;
- }
- if ($url_code) {
- $_return_data = self::sendToOA($url_code, $_param);
- return array(
- 'code' => 200,
- 'msg' => '处理完成',
- 'data' => $_return_data,
- );
- }
- return false;
- } else {
- return true;
- }
- }
- /**
- * 判断是否能使用oa
- *
- * @return bool
- */
- public static function canOa() {
- return self::hasOa();
- }
- /**
- * 与oa通信
- *
- * @param string $type 地址url的标识不待_URL
- * @param array $param
- *
- * @return bool|请求结果
- */
- public static function sendToOA($type = '', $param = array()) {
- if (self::hasOa()) {
- $_url_code = $type.'_URL';
- return self::request($_url_code, $param);
- } else {
- return true;
- }
- }
- /**
- *
- * 自定义错误处理
- *
- * @param $msg 输出的信息
- * @param string $level 输出等级
- */
- private function _error($msg, $level = 'error') {
- $_info = 'huosdk\oa\Oalogin Error:'.$msg;
- \think\Log::write($_info, $level);
- }
- }
|