OA同步钉钉组织机构

<?php
ini_set("display_errors", "On");
error_reporting(E_ALL^E_NOTICE^E_WARNING);
set_time_limit(0);
header("Content-type: text/html; charset=UTF-8");

//引入资源
include_once('inc/session.php');
include_once('core.php');
include_once('html/DingClass.php');
$ding = new dingClass();
// var_dump($_SESSION);
// exit;

if(!$_SESSION['LOGIN_UID']){
    header('Location:'."http://oa.XXXXX.com:8089/");
   	exit;		
}


dbquery("truncate table td_users_log");


$AppKey ='XX';
$AppSecret = 'XX';

//1.获取应用access_token
$token = $ding->get_accessToken($AppKey,$AppSecret);

//部门列表
$deptarr = $ding->depts($token['access_token']);

$depts = $deptarr['department'];//部门数组
$depts_sum = count($depts);//部门总数
$useridARR = [];// 钉钉userid 数组
$userARR = [];//钉钉数组数据 key 为 userid val 为 姓名


if($depts_sum>0){
    foreach ($depts as $k=>$val) {
        $arr = $ding->deptUser($token['access_token'],$val['id']);
        $idsARR = $arr['userlist'];
        $idsARR_sum = count($idsARR);
        if($idsARR_sum >0){
            foreach($idsARR as $kk=>$v){
                $name = $v['name'];
                
                $count = count($userARR);
                $userARR[$v['userid']] = $name;
                $useridARR[$count] = $v['userid'];
            }
        }
        
    }
}



$usersidArr =[];//user userid数组 钉钉userid

$users = dbarray("select userid from user where userid !=''");
$usersarr = [];
foreach ($users as $k=>$val) {
    $usersarr[$k] = $val['userid'];
}

$usersum = count($usersarr);//user 数据总数


$usersidArr =[];//user userid数组

$td_users = dbarray("select userid from td_users_log");
$td_userArr = [];
foreach ($td_users as $k=>$val) {
    $td_userArr[$k] = $val['userid'];
}

$usersum = count($usersarr);//user 数据总数

//var_dump($useridARR);
//var_dump($usersarr);

$diff = array_diff($useridARR,$usersarr);

 
//var_dump($diff);
//var_dump($td_userArr);

$diffs  = array_diff($diff,$td_userArr); //区别
// var_dump($diffs);
// die;

if(count($userARR) > 0){
    foreach ($userARR as $k=>$val) {
        //var_dump($k);die;
        $userinfo['mobile'] = '';
        $userinfo = $ding->getuserInfo($token['access_token'],$k);
        if($usersum >0  && in_array($k,$usersarr)){//user表存在用户
            //不做处理
        }else if($usersum >0  && !in_array($k,$usersarr)){//user表不存在用户
            
            $logdt['userid'] = $k;//userid
            $logdt['name'] = $val;//姓名
            $logdt['mobile'] = $userinfo['mobile'];;//手机号
            $logdt['time'] = date('Y-m-d');//日期
            $logdt['type'] = '新增';//类型
            
            $userdt['userid'] = $k;
            
            $sql = "select UID,MOBIL_NO,USER_PRIV_NAME from user where USER_NAME = '{$val}'  ";
            $row = dbrow($sql);
            
            if($row){//能找到用户 但用户 钉钉userid 没绑定
                $UID = $row['UID'];
                $where = "UID = $UID";
                $userdt['userid'] = $k;
                dbupdate('user',$userdt,$where);
            }else{//找不到用户,新增
                $sql = "select * from td_users_log where name = '{$val}' and userid = '{$k}'";
                $row = dbrow($sql);
                if($row){
                    $where = "userid = '{$k}'";
                    dbupdate('td_users_log',$logdt,$where);
                }else{
                    dbinsert('td_users_log',$logdt);
                }
                
            }
           
            
            
        }
        
    }
}




header('Location:'."http://oa.XXXX.com:8089/dingding/logs.html");


<?php
ini_set("display_errors", "On");
error_reporting(E_ALL^E_NOTICE^E_WARNING);
set_time_limit(0);
header("Content-type: text/html; charset=gbk");
//引入资源
include_once("inc/td_core.php");
include_once("inc/utility.php");
include_once("inc/utility_cache.php");



//用户

// 默认部门 68 未分配(新增) 角色 5	职员	10
function addUser($userId,$userName,$deptId,$mobile){	
    $pwd="888";
	$PASSWORD = crypt($pwd);
	$USER_NAME_INDEX = getchnprefix($userName);
	$USER_ARRAY = array(
			"USER_ID" => $userId,
			"USER_NAME" => $userName,
			"USER_NAME_INDEX" => $USER_NAME_INDEX,
			"PASSWORD" => $PASSWORD,
			"USER_PRIV" => "5",// 角色id
			"POST_PRIV" => "",
			"POST_PRIV" => "",
			"IM_RANGE" => 1,
			"DEPT_ID" => $deptId,
			"DEPT_ID_OTHER" => "",
			"AVATAR" => $SEX,
			"CALL_SOUND" => 1,
			"SMS_ON" => 1,
			"USER_PRIV_OTHER" => "",
			"USER_NO" => 10,//用户排序号
			"NOT_LOGIN" => 0,
			"NOT_VIEW_USER" => 0,
			"NOT_VIEW_TABLE" => 0,
			"NOT_SEARCH" => 0,
			"BYNAME" => $mobile,
			"BIRTHDAY" => "0000-00-00",
			"THEME" => 19,//界面主题
			"SHORTCUT" => "",
			"MOBIL_NO" => $mobile,
			"MOBIL_NO_HIDDEN" => "",
			"BIND_IP" => "",
			"KEY_SN" => "",
			"USEING_KEY" => "",
			"REMARK" => "",
			"TEL_NO_DEPT" => "",
			"EMAIL" => "",
			"USING_FINGER" => "",
			"IS_LUNAR" => 0,
			"USER_PRIV_NO" => 10,//角色编号
			"USER_PRIV_NAME" => "职员"//角色名称
	);
	
	$USER_KEY_STR = "";
	$USER_KEY_VALUE = "";
	foreach ( $USER_ARRAY as $key => $value )
	{
			if ( $key == "NOT_LOGIN" )
			{
					$NOT_LOGIN = $value;
			}
			if ( $key == "DEPT_ID" )
			{
					$DEPT_ID = $value;
			}
			$USER_KEY_STR .= $key.",";
			$USER_KEY_VALUE .= "'".$value."',";
			if ( $key == "USER_ID" )
			{
					$USER_ID = $value;
			}
	}
	$USER_KEY_STR = td_trim( $USER_KEY_STR );
	$USER_KEY_VALUE = td_trim( $USER_KEY_VALUE );
	$query = "insert into user (".$USER_KEY_STR.") values({$USER_KEY_VALUE})";
	exequery( TD::conn(), $query );
	$UID = mysql_insert_id( );
	
	$query = " update user set USER_ID ='{$UID}' where UID={$UID}";
	exequery( TD::conn(), $query );
	$USER_ID=$UID;
	cache_users();
	$query = "insert into USER_EXT(UID,USER_ID,USE_POP3,EMAIL_CAPACITY,FOLDER_CAPACITY,WEBMAIL_CAPACITY,WEBMAIL_NUM,DUTY_TYPE) values(".$UID.",'{$USER_ID}',1,'500','500','0','0','1')";
	exequery( TD::conn(), $query );
    $sql="select * from user_priv where user_priv='5' ";
	$cur=exequery(TD::conn(), $sql );
    $row= mysql_fetch_array($cur);
    $query = "insert into USER_FUNCTION(uid,user_id,user_func_id_str) values(".$UID.",'{$USER_ID}','{$row['FUNC_ID_STR']}')";
	exequery( TD::conn(), $query );	
}


$sql=" select * from td_users_log";
$cur=exequery(TD::conn(), $sql );

while($row= mysql_fetch_array($cur)){
    //var_dump($row);die;
    $userId = '';
    $userName = $row['name'];
    $deptId = 68;
    $mobile = $row['mobile'];
    $userid = $row['userid'];
    addUser($userId,$userName,$deptId,$mobile);
    // echo "OK";
    // exit;
}
$sql="truncate table td_users_log";
$cur=exequery(TD::conn(), $sql );
echo "OK";




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建钉钉OA流程,可以通过使用ETL工具来实现。首先,你可以使用可视化的方式,低代码构建各类表单和业务流转流程,支持ERP、OA、CRM等系统的快速搭建,以满足企业多样性需求。然后,你可以使用ETLCloud数据集成平台来实现自动化流程,将钉钉系统的考勤数据快速同步到数据仓库或者输出到Excel表格。这个平台不仅可以提取数据到指定数据源,还可以对数据进行清洗、转换、合并、分割、格式化等操作,以便于进一步的处理和分析。此外,你还可以对该流程进行监控管理和定时任务调度等功能,只需设置一个时间点,即可实现自动化运行。使用ETLCloud数据集成平台实现可视化界面拉取钉钉考勤数据到指定数据仓库只需要三步!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [高效数据同步!利用ETLCloud自动化流程实现钉钉OA系统数据快速同步至数仓](https://blog.csdn.net/Kyrie_wen/article/details/130765790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [低代码框架 JNPF JAVA SPRINGBOOT 单体版本](https://download.csdn.net/download/tigerzl2005/86473421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值