where("id","in",$ids)->select(); //var_dump($ll); //一次性读取出所有的根节点和父节点的row $llrow = []; foreach ($ll as $value) { $readyqueryids[] = $value->parent_id; $readyqueryids[] = $value->root_id; $llrow['ID#'.$value->id] = $value; $llidtoname['ID#'.$value->id] = $value->name; } $ll = $dao->where("id","in",$readyqueryids)->select(); foreach($ll as $ii){ $llidtoname['ID#'.$ii->id] = $ii->name; } //如果根节点显示名称、第三层节点 xxx\..\xxx foreach ($ids as $id) { if(isset($llrow['ID#'.$id])){ $name = ""; $row = $llrow['ID#'.$id]; if($row->parent_id==0){ $name = $row->name; }else{ if($row->root_id==$row->parent_id){ $name = $llidtoname['ID#'.$row->root_id] . ' \\ ' . $row->name; }else{ $name = $llidtoname['ID#'.$row->root_id] . ' \\ .. \\ ' . $llidtoname['ID#'.$row->parent_id] . ' \\ ' . $row->name; } } $srlist['ID#'.$id] = $name; } } return $srlist; } /** * 注册后创建帐号 * * @return boolean */ public static function createAdminByApply($id, $sessionuser, $neednotify = true) { $dao = new \app\admin\model\csmadmin\Adminapply(); $row = $dao->where("id", "=", $id)->find(); if (! $row) { CsmUtils::error("id不存在:" . $id); } // 检测帐号是否存在 $service = new AdminService(); //$dao = new \app\admin\model\csmadmin\Adminapply(); $row2 = $dao->where("id", "=", $id)->find(); $rowkey = ''; $faadminmodel = [ 'updatepsdtime' => time(), // 自己注册的帐号,认为首次密码不需要强制 'createtime' => time() ]; switch ($row2->applytype) { case 'email': $row2 = $service->getRowByEmail($row->email); $rowkey = $row->email; $faadminmodel['emailactive'] = 'Y'; break; case 'mobile': $row2 = $service->getRowByMobile($row->mobile); $rowkey = $row->mobile; $faadminmodel['mobile'] = $row->mobile; $faadminmodel['mobileactive'] = 'Y'; break; case 'wx': $row2 = $service->getRowByWx($row->wxuserid); $rowkey = $row->wxuserid; $wxuser = WxUtils::getInfoByOpenID($row->wxuserid); $faadminmodel['wxuserid'] = $row->wxuserid; $faadminmodel['wxusername'] = $wxuser['nickname']; $faadminmodel['wxsex'] = $wxuser['sex']; $faadminmodel['wxcountry'] = $wxuser['country']; $faadminmodel['wxprovince'] = $wxuser['province']; $faadminmodel['wxcity'] = $wxuser['city']; $faadminmodel['wxheadimgurl'] = $wxuser['headimgurl']; break; } if ($row2) { CsmUtils::error("帐号已经存在,无法审核通过:.{$rowkey}"); } // 创建管理员帐号 $username = ($row->username!=null&&$row->username!='')?$row->username:time(); $params = [ 'username' => $username, 'nickname' => $row->nickname, 'salt' => $row->salt, 'password' => $row->password, 'email' => $rowkey, // 如果邮箱为空,则认为是手机号码或微信id 'loginfailure' => 0, 'avatar' => '/assets/img/avatar.png', 'mobile' => $row->mobile,//v2.1.3 适配fa.1.3.4增加手机号码调整 ]; $admindao = new \app\admin\model\Admin(); $admindao->save($params); $adminid = $admindao->getLastInsID(); // insert fa_csmadmin_admin $service = new CsmAdminService(); $faadminmodel['faadmin_id'] = $adminid; $service->insertOrUpdateByByAdminId($faadminmodel, $adminid); // 分配角色组 $config = get_addon_config(CsmContants::$ADDONS); //$request = Request::instance(); $auth_group_ids = $row->auth_group_ids;//$config["registeradmindefaultroles"]; //var_dump($auth_group_ids);die(); $canadmindepratmng = $config["canadmindepratmng"]; $auth_group_idarray = explode(",", $auth_group_ids); if($canadmindepratmng=='Y'){ //如果部门管理,则按角色授权表 $dataset = []; foreach ($auth_group_idarray as $value) { $dataset[] = [ 'faadmin_id' => $adminid, 'auth_group_id' => $value ]; } $dao = new \app\admin\model\csmadmin\Group2admin(); $dao->saveAll($dataset); }else{ //按照fa的授权模式 $dataset = []; foreach ($auth_group_idarray as $value) { $dataset[] = [ 'uid' => $adminid, 'group_id' => $value ]; } $dao = new \app\admin\model\AuthGroupAccess(); $dao->saveAll($dataset); } // 更新审核状态 $params = [ "faadmin_id" => $adminid, "auditstatus" => "1", "audittime" => time(), "auditreturn" => "", "audituser_id" => $sessionuser ? $sessionuser->id : null, "audituser" => $sessionuser ? $sessionuser->username : null, "auth_group_ids" => $auth_group_ids, "auditreturn" => '', "updatetime" => time() ]; $row->allowField(true)->save($params); // 通过发送邮件或短信 if ($neednotify === true) { CsmNotify::notifyToAdminapplyid($id, '注册审核通过', '注册审核通过', []); } return true; } }