/** * 保存用户组信息 */ public function dosaveAction() { list($groupType, $groupName, $groupPoints, $groupImage, $newGroupName, $newGroupPoints, $newGroupImage) = $this->getInput(array('grouptype', 'groupname', 'grouppoints', 'groupimage', 'newgroupname', 'newgrouppoints', 'newgroupimage'), 'post'); $userGroupService = Wekit::load('usergroup.PwUserGroups'); /* @var $userGroupService PwUserGroups */ Wind::import('SRV:usergroup.dm.PwUserGroupDm'); is_array($groupName) || ($groupName = array()); is_array($groupPoints) || ($groupPoints = array()); is_array($groupImage) || ($groupImage = array()); if ('member' == $groupType) { $_allPointTmp = array_merge($groupPoints, (array) $newGroupPoints); if (count($_allPointTmp) != count(array_unique($_allPointTmp))) { $this->showError('USER:groups.info.save.points.fail'); } } //保存已有用户组 $updateGroups = array(); //待更新用户组Dm foreach ($groupName as $k => $v) { $userGroupModel = new PwUserGroupDm($k); $userGroupModel->setGroupName($v); $userGroupModel->setGroupPoints($groupPoints[$k]); $userGroupModel->setGroupImage($groupImage[$k]); $userGroupModel->setGroupType($groupType); $result = $userGroupModel->beforeUpdate(); if ($result instanceof PwError) { $this->showError($result->getError()); } $updateGroups[] = $userGroupModel; } //新增用户组 $addGroups = array(); //待添加用户组Dm foreach ($newGroupName as $k => $v) { if (!$v) { continue; } $userGroupModel = new PwUserGroupDm(); $userGroupModel->setGroupName($v); $userGroupModel->setGroupPoints($newGroupPoints[$k]); $userGroupModel->setGroupImage($newGroupImage[$k]); $userGroupModel->setGroupType($groupType); $result = $userGroupModel->beforeAdd(); if ($result instanceof PwError) { $this->showError($result->getError()); } $addGroups[] = $userGroupModel; } //执行更新 $userGroupService->updateGroups($updateGroups); //执行新增 foreach ($addGroups as $v) { $userGroupService->addGroup($v); } $this->showMessage('USER:groups.info.save.success', 'u/groups/run'); //$this->forwardRedirect(WindUrlHelper::createUrl('u/groups/run')); }