* @version : HUOSDK 8.5 */ namespace huoIdentify\controller; use huo\controller\common\Base; use huolib\constant\IdentifyConst; class UnderageLimitMsg extends Base { /** * 获取提示信息 * * @param int $type 提示类型 * * @return array */ public static function getMsg($type) { $_identify_conf = (new IdentifyConf())->getConf(true); $_close_type = IdentifyConst::JS_CLOSE_WEB; // 弹出关闭类型 1 关闭app 2 关闭弹窗 switch ($type) { case IdentifyConst::UNDERAGE_ONLINE_TIME_LIMIT: //未成年玩家每日在线时长限制 $_limit_minute = $_identify_conf['underage']['day_limit_time']; $_msg = self::getDayLimitMsg($_limit_minute); $_close_type = IdentifyConst::JS_CLOSE_APP; break; case IdentifyConst::UNDERAGE_HOLIDAY_ONLINE_TIME_LIMIT: //未成年玩家节假日在线时长限制 $_limit_minute = $_identify_conf['underage']['holiday_limit_time']; $_msg = self::getHolidayLimitMsg($_limit_minute); $_close_type = IdentifyConst::JS_CLOSE_APP; break; case IdentifyConst::UNDERAGE_PERIOD_LIMIT: //未成年玩家节假日在线时长限制 $_limit_today_time = $_identify_conf['underage']['limit_today_time']; $_limit_next_day_time = $_identify_conf['underage']['limit_next_day_time']; $_period = $_limit_today_time.':00-'.$_limit_next_day_time.':00'; $_msg = self::getPeriodLimitMsg($_period); $_close_type = IdentifyConst::JS_CLOSE_APP; break; case IdentifyConst::UNDERAGE_AGE_8_CHARGE_LIMIT: //8岁以下不允许支付 $_age = $_identify_conf['underage']['charge_limit'][0]['max_age']; $_msg = self::getAge8ChargeLimitMsg($_age); $_close_type = IdentifyConst::JS_CLOSE_WEB; break; case IdentifyConst::UNDERAGE_AGE_8_16_CHARGE_LIMIT: //8-16岁限制消费 $_limit = $_identify_conf['underage']['charge_limit'][1]; $_age = $_limit['min_age'].'-'.$_limit['max_age']; $_week_money = $_limit['week_money']; $_month_money = $_limit['month_money']; $_msg = self::getAge816ChargeLimitMsg($_age, $_week_money, $_month_money); $_close_type = IdentifyConst::JS_CLOSE_WEB; break; case IdentifyConst::UNDERAGE_AGE_16_18_CHARGE_LIMIT: //8-16岁限制消费 $_limit = $_identify_conf['underage']['charge_limit'][2]; $_age = $_limit['min_age'].'-'.$_limit['max_age']; $_week_money = $_limit['week_money']; $_month_money = $_limit['month_money']; $_msg = self::getAge816ChargeLimitMsg($_age, $_week_money, $_month_money); $_close_type = IdentifyConst::JS_CLOSE_WEB; break; case IdentifyConst::UNDERAGE_ALLOW_LOGIN_LIMIT: //未成年用户仅限在周五、周六、周日及法定节假日每日20:00-21:00登录游戏 $_allow_start_time = $_identify_conf['underage']['allow_start_time']; $_allow_start_time_minute = $_identify_conf['underage']['allow_start_time_minute']; $_allow_start_time = mktime( $_allow_start_time, $_allow_start_time_minute, 0, date('m'), date('d'), date('Y') ); $_allow_start_time = date('H:i', $_allow_start_time); $_allow_end_time = $_identify_conf['underage']['allow_end_time']; $_allow_end_time_minute = $_identify_conf['underage']['allow_end_time_minute']; $_allow_end_time = mktime( $_allow_end_time, $_allow_end_time_minute, 0, date('m'), date('d'), date('Y') ); $_allow_end_time = date('H:i', $_allow_end_time); $_period = $_allow_start_time.'-'.$_allow_end_time; $_msg = self::getPeriodAllowLimitMsg($_period); $_close_type = IdentifyConst::JS_CLOSE_APP; break; default: $_msg = ''; } return [ 'msg' => $_msg, 'close_type' => $_close_type, ]; } /** * 未成年玩家每日在线时长限制 * * @param int $limit_minute 每日在线时长限制(分钟) * * @return string */ public static function getDayLimitMsg($limit_minute) { $_msg = sprintf( '根据国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的相关要求,网络游戏未成年用户平日游戏时长限制为%d分钟,您今天已游玩了%d分钟', $limit_minute, $limit_minute ); return $_msg; } /** * 未成年玩家节假日在线时长限制 * * @param int $limit_minute 节假日在线时长限制(分钟) * * @return string */ public static function getHolidayLimitMsg($limit_minute) { $_msg = sprintf( '根据国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的相关要求,网络游戏未成年用户节假日游戏时长限制为%d分钟,您今天已游玩了%d分钟', $limit_minute, $limit_minute ); return $_msg; } /** * 未成年玩家每日游玩时间限制 * * @param string $period 限制时间段 * * @return string */ public static function getPeriodLimitMsg($period) { $_msg = sprintf('根据国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的相关要求,每天的%s,网络游戏未成年用户不允许登录', $period); return $_msg; } /** * 未成年玩家每日游玩时间限制 * * @param string $period 限制时间段 * * @return string */ public static function getPeriodAllowLimitMsg($period) { $_msg = sprintf('根据国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的相关要求,网络游戏未成年用户仅限在周五、周六、周日及法定节假日每日%s登录游戏,您现在无法登录游戏', $period); return $_msg; } /** * 未成年玩家充值限制 * * @param int $age 限制年龄 * * @return string */ public static function getAge8ChargeLimitMsg($age) { $_msg = sprintf('根据国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的相关要求,网络游戏用户未满%d岁不能充值', $age); return $_msg; } /** * 未成年玩家充值限制 * * @param string $age 限制年龄短 * @param float $week_money 每周限制金额 * @param float $month_money 每月限制金额 * * @return string */ public static function getAge816ChargeLimitMsg($age, $week_money, $month_money) { $_msg = sprintf( '根据国家新闻出版署《关于防止未成年人沉迷网络游戏的通知》的相关要求,网络游戏用户在%s岁的,每周累计充值不能超过%.2f元,每月累计充值不能超过%.2f元', $age, $week_money, $month_money ); return $_msg; } }