protected function getDataByDept() { $deptid = intval(EnvUtil::getRequest("deptid")); $allDepts = DepartmentUtil::loadDepartment(); if (!empty($deptid)) { $childDepts = Department::model()->fetchChildDeptByDeptid($deptid, $allDepts); $selfDept = Department::model()->fetchByPk($deptid); $depts = array_merge(array($selfDept), $childDepts); $deptsTmp = ContactUtil::handleDeptData($depts, $deptid); $depts = array_merge(array($selfDept), $deptsTmp); } else { $depts = ContactUtil::handleDeptData($allDepts, 0); } if (!empty($depts)) { foreach ($depts as $k => $childDept) { $pDeptids = Department::model()->queryDept($childDept["deptid"]); $depts[$k]["pDeptids"] = !empty($pDeptids) ? array_reverse(explode(",", trim($pDeptids))) : array(); $deptUids = User::model()->fetchAllUidByDeptid($childDept["deptid"], false); $deptRelatedUids = DepartmentRelated::model()->fetchAllUidByDeptId($childDept["deptid"]); $uids = array_unique(array_merge($deptUids, $deptRelatedUids)); $uids = $this->removeDisabledUid($uids); $depts[$k]["users"] = User::model()->fetchAllByUids($uids); } } return $depts; }
public function actionDel() { if (Ibos::app()->request->getIsAjaxRequest()) { $delId = EnvUtil::getRequest("id"); if (Department::model()->countChildByDeptId($delId)) { $delStatus = false; $msg = Ibos::lang("Remove the child department first"); } else { $delStatus = Department::model()->remove($delId); DepartmentRelated::model()->deleteAll("deptid = :deptid", array(":deptid" => $delId)); $relatedIds = User::model()->fetchAllUidByDeptid($delId); if (!empty($relatedIds)) { User::model()->updateByUids($relatedIds, array("deptid" => 0)); } $delStatus && OrgUtil::update(); $msg = Ibos::lang("Operation succeed", "message"); } $this->ajaxReturn(array("IsSuccess" => !!$delStatus, "msg" => $msg), "json"); } }
protected function handleAuxiliaryDept($uid, $deptIds, $except = "") { DepartmentRelated::model()->deleteAll("`uid` = :uid", array(":uid" => $uid)); foreach ($deptIds as $deptId) { if (strcmp($deptId, $except) !== 0) { DepartmentRelated::model()->add(array("uid" => $uid, "deptid" => $deptId)); } } }
public static function wrapUserInfo($user) { $user["group_title"] = ""; $user["next_group_credit"] = $user["upgrade_percent"] = 0; $currentGroup = !empty($user["groupid"]) ? UserGroup::model()->fetchByPk($user["groupid"]) : array(); if (!empty($currentGroup)) { $user["group_title"] = $currentGroup["title"]; if ($currentGroup["creditslower"] !== "0") { $user["upgrade_percent"] = round((double) $user["credits"] / $currentGroup["creditslower"] * 100, 2); } $user["next_group_credit"] = (int) $currentGroup["creditslower"]; } $user["level"] = self::getUserLevel($user["groupid"]); CacheUtil::load(array("department", "position")); $position = PositionUtil::loadPosition(); $department = DepartmentUtil::loadDepartment(); if (0 < $user["deptid"]) { $relatedDeptId = DepartmentRelated::model()->fetchAllDeptIdByUid($user["uid"]); $deptIds = array_merge((array) $relatedDeptId, array($user["deptid"])); $user["alldeptid"] = implode(",", array_unique($deptIds)); $user["allupdeptid"] = Department::model()->queryDept($user["alldeptid"]); $user["alldowndeptid"] = Department::model()->fetchChildIdByDeptids($user["alldeptid"]); $user["relatedDeptId"] = implode(",", $relatedDeptId); $user["deptname"] = isset($department[$user["deptid"]]) ? $department[$user["deptid"]]["deptname"] : ""; } else { $user["alldeptid"] = $user["allupdeptid"] = $user["alldowndeptid"] = $user["relatedDeptId"] = $user["deptname"] = ""; } if (0 < $user["positionid"]) { $relatedPosId = PositionRelated::model()->fetchAllPositionIdByUid($user["uid"]); $posIds = array_merge(array($user["positionid"]), (array) $relatedPosId); $user["allposid"] = implode(",", array_unique($posIds)); $user["relatedPosId"] = implode(",", $relatedPosId); $user["posname"] = isset($position[$user["positionid"]]) ? $position[$user["positionid"]]["posname"] : ""; } else { $user["allposid"] = $user["relatedPosId"] = $user["posname"] = ""; } $user["space_url"] = "?r=user/home/index&uid=" . $user["uid"]; $user["avatar_middle"] = "avatar.php?uid={$user["uid"]}&size=middle&engine=" . ENGINE; $user["avatar_small"] = "avatar.php?uid={$user["uid"]}&size=small&engine=" . ENGINE; $user["avatar_big"] = "avatar.php?uid={$user["uid"]}&size=big&engine=" . ENGINE; $user["bg_big"] = "bg.php?uid={$user["uid"]}&size=big&engine=" . ENGINE; $user["bg_small"] = "bg.php?uid={$user["uid"]}&size=small&engine=" . ENGINE; $profile = UserProfile::model()->fetchByUid($user["uid"]); $user = array_merge($user, (array) $profile); return $user; }
public static function getUidByIdentifier($identifier, $str) { $id = substr($str, 2); if (strcmp($identifier, "u") == 0) { return array($id); } elseif (strcmp($identifier, "d") == 0) { $main = User::model()->fetchAllUidByDeptid($id); $auxiliary = DepartmentRelated::model()->fetchAllUidByDeptId($id); return array_merge($main, $auxiliary); } elseif (strcmp($identifier, "p") == 0) { return User::model()->fetchUidByPosId($id); } }