* @version : HUOSDK 7.0 * @modified: 2016年11月9日下午11:29:44 */ namespace huo\controller\common; use huo\controller\agent\AgentCache; use huo\controller\member\MemCache; use huolib\constant\GameConst; use wxapp\aes\ErrorCode; use wxapp\aes\WXBizDataCrypt; class CommonFunc { /** * 生成Order * * @param int $mem_id * @param string $agent_game * @param int $agent_id * @param string $device_id * * @return int|string */ public static function getAgentId($mem_id = 0, $agent_game = '', $agent_id = 0, $device_id = '') { if (!empty($mem_id)) { $_mem_data = MemCache::ins()->getInfoById($mem_id); return $_mem_data['agent_id']; } if (empty($agent_id)) { $agent_id = (new HuoSession($mem_id))->getAgentId(); } if (!empty($agent_game)) { /* 根据agentgame获得agent_id */ return AgentCache::ins()->getAgentIdByAg($agent_game); } /* 通过设备判定渠道归属 */ if (!empty($device_id)) { // TODO: wuyonghong 2018/4/26 根据设备判定渠道归属 return $agent_id; } return $agent_id; } /** * @return float 默认为1 */ public static function getPtbRmbRate() { $_rate = config('ptb_rmb_rate'); if (empty($_rate)) { $_rate = 1; } return $_rate; } /** * @return float 默认为1 */ public static function getGmRmbRate() { $_rate = config('gm_rmb_rate'); if (empty($_rate)) { $_rate = 1; } return $_rate; } /** * 获取金币与人民币比例 * * @return float 默认为100 */ public static function getGoldRmbRate() { $_rate = config('gold_rmb_rate'); if (empty($_rate)) { $_rate = 100; } return $_rate; } /** * 获取心跳时长 */ public static function getHeartbeatTime() { $_g_heartbeat_time = config('G_HEARTBEAT_TIME'); if (empty($_g_heartbeat_time)) { /* 默认时长300秒 */ return 300; } return $_g_heartbeat_time; } /** * @param $classify * * @return array|int */ public static function getAppAppId($classify = 0) { $_and_app_id = config('app_app_id'); $_ios_app_id = config('ios_app_id'); switch ($classify) { case GameConst::GAME_IOS: return $_ios_app_id; case GameConst::GAME_ANDROID: return $_and_app_id; default: return [$_and_app_id, $_ios_app_id]; } } /** * 从加密数据中获取unionid * * @param $app_key * @param $session_key * * @return mixed|string */ public static function getUnionIdByEncryptedData($app_key, $session_key) { $_iv = request()->param('iv/s', ''); $_encrypted_data = request()->param('encrypted_data/s', ''); $_union_id = ''; if (!empty($_iv) && !empty($_encrypted_data)) { $_wx_biz_data_crypt = new WXBizDataCrypt($app_key, $session_key); $_err_code = $_wx_biz_data_crypt->decryptData($_encrypted_data, $_iv, $_wx_data); if (ErrorCode::$OK == $_err_code) { $_wx_data = json_decode($_wx_data, true); $_union_id = get_val($_wx_data, 'unionId', ''); } } return $_union_id; } public static function safeDivMinValue($a, $b) { $_div = $a - $b; return ($_div < 0) ? 0 : $_div; } }