/** * 创建群组 * * @param array $params */ public function create(array $params) { // 组织ID必须有 if (empty($params['orgid'])) { require_once 'Model/User/Exception.php'; throw new Model_User_Exception('Missing or invalid value of parameter "orgid"', self::CODE_INVALID_ORGID); } // 群组名称,必须有 if (empty($params['groupname'])) { require_once 'Model/User/Exception.php'; throw new Model_User_Exception('Missing or invalid value of parameter "groupname"', self::CODE_INVALID_GROUPNAME); } /* @var $daoGroup Dao_Md_User_Group */ $daoGroup = Tudu_Dao_Manager::getDao('Dao_Md_User_Group', Tudu_Dao_Manager::DB_MD); $orgId = $params['orgid']; $groupName = $params['groupname']; $groupId = !empty($params['groupid']) ? $params['groupid'] : Dao_Md_User_Group::getGroupId($orgId, $groupName); $orderNum = $daoGroup->getGroupMaxOrderNum(array('orgid' => $orgId)); // 创建群组 $ret = $daoGroup->createGroup(array('orgid' => $orgId, 'groupname' => $groupName, 'groupid' => $groupId, 'ordernum' => $orderNum + 1)); if (!$ret) { require_once 'Model/User/Exception.php'; throw new Model_User_Exception('Create user group failed', self::CODE_SAVE_FAILED); } return true; }
/** * 创建群组 */ public function createAction() { $groupName = trim($this->_request->getPost('groupname')); $userIds = null; if (null != $this->_request->getPost('userid')) { $userIds = explode(',', trim($this->_request->getPost('userid'))); } if (!$groupName) { return $this->json(false, $this->lang['invalid_params_groupname']); } /* @var $modelGroup Model_User_Group*/ $modelGroup = Tudu_Model::factory('Model_User_Group'); try { $groupId = Dao_Md_User_Group::getGroupId($this->_orgId, $groupName); // 添加用户操作 if (!empty($userIds)) { $modelGroup->addAction('create', array($modelGroup, 'addMembers'), 1, array($this->_orgId, $groupId, $userIds), false); } $modelGroup->doCreate(array('orgid' => $this->_orgId, 'groupid' => $groupId, 'groupname' => $groupName)); } catch (Model_User_Exception $e) { switch ($e->getCode()) { case Model_User_Group::CODE_INVALID_ORGID: $message = '缺少参数[orgid]'; break; case Model_User_Group::CODE_INVALID_GROUPNAME: $message = $this->lang['invalid_params_groupname']; break; case Model_User_Group::CODE_SAVE_FAILED: case Model_User_Group::CODE_GROUP_NOTEXISTS: $message = $this->lang['group_create_failure']; break; } return $this->json(false, $message); } /* @var $daoOrg Dao_Md_Org_Org */ $daoOrg = $this->getDao('Dao_Md_Org_Org'); $message = $this->lang['group_create_success']; if (isset($userIds)) { foreach ($userIds as $userId) { $this->_clearUserCache($userId . '@' . $this->_orgId); } //$this->_createLog('group', 'create', null, $groupId, array('groupname' => $groupName)); //return $this->json(true, '已成功创建并添加到新群组', $groupId); $message = '已成功创建并添加到新群组'; } $this->_createLog('group', 'create', null, $groupId, array('groupname' => $groupName)); $this->setUpdateCastTime(); return $this->json(true, $message, $groupId); }
/** * * @param array $params */ public function createGroup(array &$params) { /* @var $daoGroup Dao_Md_User_Group */ $daoGroup = Tudu_Dao_Manager::getDao('Dao_Md_User_Group', Tudu_Dao_Manager::DB_MD); $groups = !empty($params['groupid']) ? $params['groupid'] : array(); // 新建群组 if (!empty($params['newgroup']) && is_array($params['newgroup'])) { $groupIndexes = $params['newgroup']; foreach ($groupIndexes as $index) { $groupName = $params['groupname-' . $index]; // 没有群组名称,跳过 if (empty($groupName)) { continue; } $groupId = Dao_Md_User_Group::getGroupId($params['orgid'], $groupName); $orderNum = $daoGroup->getGroupMaxOrderNum(array('orgid' => $params['orgid'])); $groupParams = array('orgid' => $params['orgid'], 'groupid' => $groupId, 'groupname' => $groupName, 'ordernum' => $orderNum + 1); if ($daoGroup->createGroup($groupParams)) { $groups[] = $groupId; $this->_createLog(Dao_Md_Log_Oplog::MODULE_GROUP, Dao_Md_Log_Oplog::OPERATION_CREATE, null, $groupId, array('groupname' => $groupName)); } unset($params['groupname-' . $index]); } $params['groupid'] = $groups; unset($params['newgroup']); } }