You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
4.2 KiB
100 lines
4.2 KiB
<?php
|
|
|
|
namespace addons\qingdong\library;
|
|
|
|
use dingding\TopSdk;
|
|
use think\Cache;
|
|
use think\Log;
|
|
use think\Model;
|
|
use addons\qingdong\model\AdminConfig;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class Ding extends Model
|
|
{
|
|
public $config;
|
|
protected $app;
|
|
|
|
|
|
public function __construct()
|
|
{
|
|
$this->config = [
|
|
];
|
|
$sdk=new TopSdk();
|
|
return parent::__construct();
|
|
}
|
|
|
|
//获取accessToken
|
|
public function getAccessToken()
|
|
{
|
|
$config = AdminConfig::where(array('type'=>'dingding'))->find();
|
|
$tokenRequest = new \OapiGettokenRequest();
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_GET, \DingTalkConstant::$FORMAT_JSON);
|
|
$accessKey = AdminConfig::where(array('type'=>'dingding','field'=>'ding_key'))->value('value');
|
|
$accessSecret = AdminConfig::where(array('type'=>'dingding','field'=>'ding_secret'))->value('value');
|
|
$tokenRequest->setAppkey($accessKey);
|
|
$tokenRequest->setAppsecret($accessSecret);
|
|
$token= $this->app->execute($tokenRequest, null, "https://oapi.dingtalk.com/gettoken");
|
|
return $token;
|
|
}
|
|
//获取部门
|
|
public function departmentInfo($access_token=null,$dept_id=null){
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
|
|
$req = new \OapiV2DepartmentListsubRequest();
|
|
if($dept_id){
|
|
$req->setDeptId($dept_id);
|
|
}
|
|
$resp = $this->app->execute($req, $access_token, "https://oapi.dingtalk.com/topapi/v2/department/listsub");
|
|
return $resp;
|
|
}
|
|
//获取员工
|
|
public function staffInfo($access_token=null,$dept_id=null){
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
|
|
$req = new \OapiUserListsimpleRequest();
|
|
$req->setDeptId($dept_id);
|
|
$req->setCursor("0");
|
|
$req->setSize("80");
|
|
$resp = $this->app->execute($req, $access_token, "https://oapi.dingtalk.com/topapi/user/listsimple");
|
|
return $resp;
|
|
}
|
|
//获取员工详情
|
|
public function staffInfoDetail($access_token=null,$user_id=null){
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
|
|
$req = new \OapiV2UserGetRequest();
|
|
$req->setUserid($user_id);
|
|
$resp = $this->app->execute($req, $access_token, "https://oapi.dingtalk.com/topapi/v2/user/get");
|
|
return $resp;
|
|
}
|
|
//批量获取客户
|
|
public function customerBatch($access_token=null,$user_id=null){
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
|
|
$req = new \OapiCrmObjectdataCustomerQueryRequest();
|
|
$req->setCurrentOperatorUserid($user_id);
|
|
$req->setCursor("0");
|
|
$req->setPageSize("100");
|
|
$resp = $this->app->execute($req, $access_token, "https://oapi.dingtalk.com/topapi/crm/objectdata/customer/query");
|
|
return $resp;
|
|
}
|
|
//批量获取联系人
|
|
public function contactsBatch($access_token=null,$user_id=null){
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
|
|
$req = new \OapiCrmObjectdataCustomerQueryRequest();
|
|
$req->setCurrentOperatorUserid($user_id);
|
|
$req->setCursor("0");
|
|
$req->setPageSize("100");
|
|
$resp = $this->app->execute($req, $access_token, "https://oapi.dingtalk.com/topapi/crm/objectdata/contact/query");
|
|
return $resp;
|
|
}
|
|
//批量获取跟进记录
|
|
public function recordBatch($access_token=null,$user_id=null){
|
|
$this->app = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
|
|
$req = new \OapiCrmObjectdataCustomerQueryRequest();
|
|
$req->setCurrentOperatorUserid($user_id);
|
|
$req->setCursor("0");
|
|
$req->setPageSize("100");
|
|
$resp = $this->app->execute($req, $access_token, "https://oapi.dingtalk.com/topapi/crm/objectdata/followrecord/query");
|
|
return $resp;
|
|
}
|
|
}
|
|
|
|
|