protected function _exec()
 {
     $heros = $this->getParam('heros', 'array');
     $needMore = $this->getParam('more', 'bool');
     $characterMgr = new CharacterAccountManager();
     $user_clan_mgr = new UserClanManager();
     $clan_mgr = new ClanManager();
     $result = array();
     foreach ($heros as $heroId) {
         $heroInfo = $characterMgr->getCharacterAccount($heroId);
         //item 信息
         if ($needMore === TRUE) {
             $item_mgr = new UserGameItemManager($heroId);
             $items = $item_mgr->getItemList();
             $heroInfo['items'] = $items;
         }
         if (!empty($heroInfo)) {
             $user_clan_info = $user_clan_mgr->getUserClanInfo($heroId);
             if (!empty($user_clan_info)) {
                 $clanInfo = $clan_mgr->getClanInfo($user_clan_info['clan_id']);
                 $clanInfo['clanUser'] = $user_clan_info;
                 $heroInfo['clan'] = $clanInfo;
             }
             array_push($result, $heroInfo);
         }
     }
     return array("heros" => $result);
 }
 protected function _exec()
 {
     $heroid = $this->getParam('heroid', 'int');
     $data_id = $this->getParam('data_id', 'int');
     $clan_mgr = new ClanManager();
     $user_clan_mgr = new UserClanManager();
     $clanInfo = $clan_mgr->getSimClanInfo($data_id);
     $clanmembers = explode(",", $clanInfo['members']);
     $total = 20 + 10 * $clanInfo['level'];
     $canJoin = FALSE;
     $membersArr = array();
     if (count($clanmembers) + 1 > $total) {
         $canJoin = FALSE;
     } else {
         $newUserClan = $user_clan_mgr->creatUserClan($heroid, $data_id);
         array_push($membersArr, $newUserClan);
         if (!$clanInfo['members'] || $clanInfo['members'] == "") {
             $clanInfo['members'] = $heroid;
         } else {
             $clanInfo['members'] = $clanInfo['members'] . "," . $heroid;
         }
         $clan_mgr->updateClanInfo($data_id, $clanInfo);
         $clanInfo['clanUser'] = $newUserClan;
         $canJoin = TRUE;
     }
     foreach ($clanmembers as $memberId) {
         $simclaninfo = $user_clan_mgr->getUserClanInfo($memberId);
         if (!empty($simclaninfo)) {
             array_push($membersArr, $simclaninfo);
         }
     }
     array_push($membersArr, $user_clan_mgr->getUserClanInfo($clanInfo['adminId']));
     $clanInfo['membersArr'] = $membersArr;
     return array('clan' => $clanInfo, 'canJoin' => $canJoin);
 }
 protected function _exec()
 {
     $characteruid = $this->getParam('characteruid', 'string');
     $result = array();
     //item 信息
     $item_mgr = new UserGameItemManager($characteruid);
     $items = $item_mgr->getItemList();
     $heroInfo['items'] = $items;
     //vip
     $vip_mgr = new CharacterAccountManager();
     $vipInfo = $vip_mgr->getVipCache($characteruid);
     $heroInfo['vipData'] = $vipInfo;
     //rate
     $rate_mgr = new RatingHeroManager();
     $heroInfo['heroRate'] = $rate_mgr->getHeroRate($characteruid);
     $result['topHeroRate'] = $rate_mgr->getTop();
     $heroInfo['heroRateTime'] = $rate_mgr->getRatingRewardTime($characteruid);
     $clan_rate_mgr = new RatingClanManager();
     $result['topClanRate'] = $clan_rate_mgr->getTop();
     $heroInfo['clanRateTime'] = $clan_rate_mgr->getRatingRewardTime($characteruid);
     $bossMgr = new ClanBossManager();
     $heroInfo['bossData'] = $bossMgr->getCurClanBoss();
     //clan
     $user_clan_mgr = new UserClanManager();
     $user_clan_info = $user_clan_mgr->getUserClanInfo($characteruid);
     if (!empty($user_clan_info)) {
         require_once GAMELIB . '/model/ClanManager.class.php';
         $clan_mgr = new ClanManager();
         $clan_info = $clan_mgr->getClanInfo($user_clan_info['clan_id']);
         $membersArr = array();
         $clanmembers = explode(",", $clan_info['members']);
         foreach ($clanmembers as $memberId) {
             $simclaninfo = $user_clan_mgr->getUserClanInfo($memberId);
             if (!empty($simclaninfo)) {
                 array_push($membersArr, $simclaninfo);
             }
         }
         array_push($membersArr, $user_clan_mgr->getUserClanInfo($clan_info['adminId']));
         $clan_info['membersArr'] = $membersArr;
         $clanTalk = $clan_mgr->getClanTalk($user_clan_info['clan_id']);
         if (!empty($clanTalk)) {
             $clan_info['talk'] = $clanTalk;
         }
         $heroInfo['clanRate'] = $clan_rate_mgr->getClanRate($user_clan_info['clan_id']);
         $clan_info['clanUser'] = $user_clan_info;
         $heroInfo['clan'] = $clan_info;
     }
     $result['hero_info'] = $heroInfo;
     return $result;
 }
 protected function _exec()
 {
     $heroid = $this->getParam('heroid', 'int');
     $mes = $this->getParam('message', 'string');
     $str = $heroid . "||" . time() . "||" . "0" . "||" . $mes;
     $user_clan_mgr = new UserClanManager();
     $userClanInfo = $user_clan_mgr->getUserClanInfo($heroid);
     if (empty($userClanInfo)) {
         $this->throwException("hero has no clan {$heroid}");
     }
     $clanId = $userClanInfo['clan_id'];
     $clan_mgr = new ClanManager();
     $clan_mgr->addClanTalk($clanId, $str);
     $newMessages = $clan_mgr->getClanTalk($clanId);
     return array("messages" => $newMessages);
 }
 protected function _exec()
 {
     $characterId = $this->getParam('heroid', 'int');
     $clanID = $this->getParam('clanId', 'int');
     $userClanMgr = new UserClanManager();
     $userclaninfo = $userClanMgr->getUserClanInfo($characterId);
     if (empty($userclaninfo) || $userclaninfo['bossTime'] > time()) {
         $this->throwException("hero has attack boss today ");
     }
     $bossMgr = new ClanBossManager();
     $boosInfo = $bossMgr->getCurClanBoss();
     $curTime = $boosInfo['Date'];
     //power
     $hero_mgr = new CharacterAccountManager();
     $hero_info = $hero_mgr->getCharacterAccount($characterId);
     $new_hero_info = StaticFunction::resetCurPower($hero_info);
     $cur_power = $new_hero_info['power'];
     if ($cur_power < StaticFunction::$power_battle_cost) {
         $this->throwException("power is not enough ,cur power = {$cur_power} ");
     } else {
         $heroChange = array('power' => $cur_power - StaticFunction::$power_battle_cost, 'powertime' => $new_hero_info['powertime']);
         $rateMgr = new RatingClanManager();
         $clanRateInfo = $rateMgr->getClanRate($clanID);
         if (empty($clanRateInfo)) {
             $newclanRate = array('id' => $clanID, 'date' => $curTime, 'level' => 1, 'kills' => 0);
             $rateMgr->addNewClanRate($clanID, $newclanRate);
         } else {
             if ($clanRateInfo['date'] == $curTime) {
                 $newclanRate = $clanRateInfo;
             } else {
                 $newclanRate = array('id' => $clanID, 'date' => $curTime, 'level' => 1, 'kills' => 0);
                 $rateMgr->updateClanRate($clanID, $newclanRate);
             }
         }
         $battleMgr = new BattleManager();
         $battleMgr->setBattleCache($characterId, $curTime, 1, 0);
         $hero_mgr->updateUserStatus($characterId, $heroChange);
         //bossTime
         $userclaninfo['bossTime'] = strtotime("next day");
         $userClanMgr->updateUserClan($userclaninfo);
         $heroChange['clanRateInfo'] = $newclanRate;
         $heroChange['bossData'] = $boosInfo;
         return $heroChange;
     }
 }
 protected function _exec()
 {
     $heroid = $this->getParam('heroid', 'int');
     $user_clan_mgr = new UserClanManager();
     $user_clan_info = $user_clan_mgr->getUserClanInfo($heroid);
     if (!empty($user_clan_info)) {
         $clan_mgr = new ClanManager();
         $clan_info = $clan_mgr->getClanInfo($user_clan_info['clan_id']);
         $membersArr = array();
         $clanmembers = explode(",", $clan_info['members']);
         foreach ($clanmembers as $memberId) {
             $simclaninfo = $user_clan_mgr->getUserClanInfo($memberId);
             if (!empty($simclaninfo)) {
                 array_push($membersArr, $simclaninfo);
             }
         }
         array_push($membersArr, $user_clan_mgr->getUserClanInfo($clan_info['adminId']));
         $clan_info['membersArr'] = $membersArr;
         $clanTalk = $clan_mgr->getClanTalk($user_clan_info['clan_id']);
         $clan_info['talk'] = $clanTalk;
     }
     return array('clan' => $clan_info, 'clanUser' => $user_clan_info);
 }
 protected function _exec()
 {
     $gameuid = $this->getParam('gameuid', 'int');
     $heroid = $this->getParam('heroid', 'int');
     $name = $this->getParam('name', 'string');
     $user_clan_mgr = new UserClanManager();
     $clanInfo = $user_clan_mgr->getUserClanInfo($heroid);
     if (!empty($clanInfo)) {
         $this->throwException("user {$heroid} already have clan ");
     }
     $account_mgr = new UserAccountManager();
     $account_info = $account_mgr->getUserAccount($gameuid);
     if ($account_info['gem'] < 20) {
         $this->throwException("user {$gameuid} not enough gem to buy Clan ");
     }
     $clan_mgr = new ClanManager();
     $result = $clan_mgr->creatClan($heroid, $name);
     $user_clan_info = $user_clan_mgr->creatUserClan($heroid, $result['data_id']);
     $account_mgr->updateUserMoney($gameuid, 20);
     $hero_mgr = new CharacterAccountManager();
     $result['admin'] = $hero_mgr->getCharacterAccount($heroid);
     $result['membersArr'] = array($user_clan_info);
     return array('clan' => $result);
 }
 protected function _exec()
 {
     $data_id = $this->getParam('data_id', 'int');
     $heroid = $this->getParam('heroid', 'int');
     $clan_mgr = new ClanManager();
     $clanInfo = $clan_mgr->getSimClanInfo($data_id);
     if (empty($clanInfo)) {
         $this->throwException("there is no this clan {$data_id}");
     }
     if ($clanInfo['adminId'] == $heroid) {
         $this->throwException("user {$heroid} can not sign out clan {$data_id}");
     }
     $user_mgr = new UserClanManager();
     $user_mgr->deleteClanUser($heroid);
     $memberArr = explode(",", $clanInfo['members']);
     foreach ($memberArr as $key => $memberId) {
         if ($memberId == $heroid) {
             unset($memberArr[$key]);
         }
     }
     $clanInfo['members'] = implode(",", $memberArr);
     $clan_mgr->updateClanInfo($data_id, $clanInfo);
     return array('result' => TRUE);
 }
 public function deleteClan($data_id)
 {
     $clan_info = $this->getSimClanInfo($data_id);
     $this->deleteFromDb($data_id, array('data_id' => $data_id));
     require_once GAMELIB . '/model/UserClanManager.class.php';
     $user_mgr = new UserClanManager();
     $members = explode(",", $clan_info['members']);
     foreach ($members as $memberId) {
         $user_mgr->deleteClanUser($memberId);
     }
     $user_mgr->deleteClanUser($clan_info['adminId']);
     require_once GAMELIB . '/model/ClanItemManager.class.php';
     $itemManager = new ClanItemManager($data_id);
     $itemManager->deleteClanItems();
     return true;
 }