public function action_buchang_worldboss() { $section = $this->get_param('sec'); $today = $this->get_param('date'); //指定日期,格式:1030,代表十月30号 if (empty($section)) { $section_list = array_keys(getApp()->getSectionConfig()); } else { $section_list = (array) $section; } if (empty($section_list)) { throw new Exception('section error'); return; } $now = getApp()->now; $redis = DbConfig::getRedis('worldboss'); $redis_set = DbConfig::getRedis('cache'); if (empty($today)) { $today = date('md', $now); } if (P_PLATFORM == "kunlun" || P_PLATFORM == 'qqandroid') { echo "昆仑平台暂无补偿"; return; } $world_boss_conf = PL_Config_Numeric::get('worldboss'); $worldboss_zhidian_offset = PL_Config_Numeric::get('setting', 'worldboss_zhidian_level_offset'); echo "================[ 补偿日期 : {$today} ]===============\n"; foreach ($section_list as $section) { echo "===== 分区: {$section} =====\n"; foreach ($world_boss_conf as $tag => $conf) { echo "===== boss: {$tag} =====\n"; $activityConfig = getApp()->getactivityconfig("act_worldboss_{$tag}"); if ($activityConfig) { if ($now < $activityConfig['start_t'] || $now > $activityConfig['end_t']) { echo "[{$tag}] 不在活动时间内\n"; continue; } } $boss_key = "worldboss_boss_{$tag}_{$section}_{$today}"; $boss_info = $redis->hgetall($boss_key); if ($boss_info['buchang_reward_time']) { $msg = "补偿时间 : " . date('Y-m-d H:i:s', $boss_info['buchang_reward_time']) . "\n"; echo $msg . "\n"; continue; } $rank_key = "worldboss_rank_{$tag}_{$section}_{$today}"; $boss_name = model_Translate::getTransConfig($conf['bossname']); $rank_list = $redis->zrevrange($rank_key, 0, -1); if (!$rank_list) { continue; } $rank_uids = array_values($rank_list); $user_info = model_CacheUtil::getUserInfoByIdsWithFileds($rank_uids, $section, array('level')); foreach ($user_info as $r_uid => $r_udata) { $rank_awards = array(array('tag' => '601001', 'num' => 4), array('tag' => '601002', 'num' => 4), array('tag' => '601019', 'num' => 200), array('tag' => 'money', 'num' => 500000), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1), array('tag' => 'qiyu_zhidian', 'level' => max(1, $r_udata['level'] * 3 + $worldboss_zhidian_offset), 'num' => 1)); $desc_str = model_Cdkey::descriptItems($rank_awards); $rank_msg = array('type' => 'system', 'key' => uniqid(), 'time' => getApp()->now, 'content' => "由于3月15日掌门参加群雄破阵时出现了游戏意外退出的情况。大掌门团队对此表示歉意并补偿给掌门:叫花鸡x4, 补元丹x4, 培养丹x200, 银两x500000, 指点x5"); $rank_msg['status'] = 'award'; //print_r($rank_awards); $cdkey = model_Cdkey::gen($rank_awards, $desc_str); $rank_msg['cdkey'] = $cdkey; model_Chat::sendMsg($rank_msg, $r_uid, 'origin', $section); echo "uid = [{$r_uid}], 获取补偿,cdkey = [{$cdkey}]\n"; } $redis->hset($boss_key, 'buchang_reward_time', $now); } } }