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()
 {
     $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);
 }