Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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");
     }
 }
Ejemplo n.º 3
0
 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));
         }
     }
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 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);
     }
 }