123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- namespace app\api\controller;
- use app\common\model\User;
- use think\Db;
- use hg\apidoc\annotation as Apidoc;
- class Dingtalk extends Base
- {
- public function get_obj(){
- $get_token_obj = new Dingtoken();
- $access_token = $get_token_obj->main()['accessToken'];
- require_once env('root_path').'/vendor/dingapi/TopSdk.php';
- date_default_timezone_set('Asia/Shanghai');
- $c = new \DingTalkClient(\DingTalkConstant::$CALL_TYPE_OAPI, \DingTalkConstant::$METHOD_POST , \DingTalkConstant::$FORMAT_JSON);
- return array('obj'=>$c,'access_token'=>$access_token);
- }
- /**
- * 获取部门列表
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("parent_id", type="string",require=true, desc="父部门ID")
- */
- public function get_department(){
- $parent_id = input('parent_id');
- $obj = $this->get_obj();
- $c = $obj['obj'];
- $req = new \OapiV2DepartmentListsubRequest;
- $req->setDeptId($parent_id);
- $resp = $c->execute($req, $obj['access_token'], "https://oapi.dingtalk.com/topapi/v2/department/listsub");
- p($resp);exit;
- }
- /**
- * 获取部门详情
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("dept_id", type="string",require=true, desc="部门ID")
- */
- public function get_department_name(){
- $dept_id = input('dept_id');
- $obj = $this->get_obj();
- $c = $obj['obj'];
- $req = new \OapiV2DepartmentListsubRequest;
- $req->setDeptId($dept_id);
- $resp = $c->execute($req, $obj['access_token'], "https://oapi.dingtalk.com/topapi/v2/department/get");
- p($resp);exit;
- $name = '';
- if(isset($resp->result) && $resp->result){
- $name = $resp->result->name;
- }
- return $name;
- }
- /**
- * 获取部门用户详情
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("dept_id", type="string",require=true, desc="部门ID")
- */
- public function get_user_list(){
- $dept_id = input('dept_id');
- $obj = $this->get_obj();
- $c = $obj['obj'];
- $req = new \OapiV2UserListRequest;
- $req->setDeptId($dept_id);
- $req->setCursor("0");
- $req->setSize("100");
- $resp = $c->execute($req, $obj['access_token'], "https://oapi.dingtalk.com/topapi/v2/user/list");
- p($resp);exit;
- $user_list = array();
- if(isset($resp->result) && $resp->result && $resp->result->list){
- $user_list = $resp->result->list;
- }
- return $user_list;
- }
- /**
- * 查询用户详情
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("userid", type="string",require=true, desc="用户的userId")
- */
- public function get_users(){
- $userid = input('userid');
- $obj = $this->get_obj();
- $c = $obj['obj'];
- $req = new \OapiV2UserGetRequest;
- $req->setUserid($userid);
- $resp = $c->execute($req, $obj['access_token'], "https://oapi.dingtalk.com/topapi/v2/user/get");
- if($resp->errcode == 0){
- p('123465');
- }
- p($resp->errcode);
- p($resp->errmsg);
- p($resp->result);
- p($resp);exit;
- }
- public function get_user($userid){
- $obj = $this->get_obj();
- $c = $obj['obj'];
- $req = new \OapiV2UserGetRequest;
- $req->setUserid($userid);
- $resp = $c->execute($req, $obj['access_token'], "https://oapi.dingtalk.com/topapi/v2/user/get");
- if($resp->errcode == 0){
- return $resp->result;
- }
- }
- //获取用户列表
- public function get_member(){
- $list = User::select();
- $data = array_column($list->toArray(), null, 'userid');
- $array = [];
- foreach ($list as $value){
- $array[] = $this->get_user($value['userid']);
- }
- p($array);
- p($data);
- }
- // 通过免登码获取用户信息
- public function get_user_info($code){
- $obj = $this->get_obj();
- $c = $obj['obj'];
- $req = new \OapiV2UserGetuserinfoRequest;
- $req->setCode($code);
- $resp = $c->execute($req, $obj['access_token'], "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
- p($resp);exit();
- $user_info = array();
- if(isset($resp->result) && $resp->result){
- $user_info = $resp->result->dept_id_list;
- }
- return $user_info;
- }
- }
|