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()
 {
     $data_id = $this->getParam('data_id', 'int');
     $newMessage = $this->getParam('clanInfo', 'string');
     $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} do not have clan {$data_id}");
     }
     $clanInfo['clanMessage'] = $newMessage;
     $clan_mgr->updateClanInfo($data_id, $clanInfo);
     return array('result' => TRUE);
 }
 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);
 }