123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?php
- /**
- * Commonfunc.php UTF-8
- * 公共函数
- *
- * @date : 2016年11月9日下午11:29:44
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @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;
- }
- }
|