123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- namespace app\api\controller;
- use app\common\model\Department;
- use app\common\model\User;
- use app\common\service\DingtalkService;
- use hg\apidoc\annotation as Apidoc;
- class Dingtalk extends Base
- {
- /**
- * 获取部门列表
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("dept_id", type="integer",require=true, desc="父部门ID")
- */
- public function department_listsub()
- {
- $dept_id = input('dept_id');
- $resp = DingtalkService::department_listsub($dept_id);
- $data = [];
- foreach ($resp as $value) {
- $data[] = [
- 'dept_id' => $value->dept_id,
- 'name' => $value->name,
- 'parent_id' => $value->parent_id,
- ];
- }
- if ($data) {
- Department::insertAll($data);
- }
- $this->success('获取部门列表', $resp);
- }
- /**
- * 获取部门详情
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("dept_id", type="integer",require=true, desc="部门ID")
- */
- public function department_get()
- {
- $dept_id = input('dept_id');
- $resp = DingtalkService::department_get($dept_id);
- $this->success('获取部门详情', $resp);
- }
- /**
- * 获取部门用户详情
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("dept_id", type="integer",require=true, desc="部门ID")
- */
- public function user_list()
- {
- $dept_id = input('dept_id');
- $resp = DingtalkService::user_list($dept_id);
- if($resp->list){
- $data = [];
- foreach ($resp->list as $value) {
- $data[] = [
- 'userid' => $value->userid,
- 'unionid' => $value->unionid,
- 'name' => $value->name,
- 'avatar' => $value->avatar,
- 'mobile' => isset($value->mobile) ? $value->mobile : '',
- 'email' => isset($value->email) ? $value->email : '',
- 'title' => isset($value->title) ? $value->title : '',
- 'manager_userid' => isset($value->manager_userid) ? $value->manager_userid : '',
- 'department' => implode(',', $value->dept_id_list),
- ];
- }
- if ($data) {
- User::insertAll($data);
- }
- }
- $this->success('获取部门用户详情', $resp);
- }
- /**
- * 查询用户详情
- *
- * @Apidoc\Method("POST")
- * @Apidoc\Param("userid", type="string",require=true, desc="用户的userId")
- */
- public function get_users()
- {
- $userid = input('userid');
- $resp = DingtalkService::user_get($userid);
- $this->success('查询用户详情', $resp);
- }
- //获取用户列表
- public function get_member()
- {
- $list = User::select();
- // $data = array_column($list->toArray(), null, 'userid');
- $no_user_list = [];
- $user_list = [];
- foreach ($list as $value) {
- $resp = DingtalkService::user_get($value['userid']);
- if ($resp->errcode == 0) {
- $user_list[$resp->result->userid] = [
- 'userid' => $resp->result->userid,
- 'manager_userid' => isset($resp->result->manager_userid) ? $resp->result->manager_userid : '',
- ];
- }
- if ($resp->errcode == 60121) {
- $no_user_list[$value['userid']] = [
- 'userid' => $value['userid'],
- ];
- }
- }
- foreach ($list as $val) {
- if (array_key_exists($val['userid'], $user_list)) {
- $val->manager_userid = $user_list[$val['userid']]['manager_userid'];
- $val->save();
- }
- }
- if ($no_user_list) {
- User::where('userid', 'in', array_keys($no_user_list))->update(['is_deleted' => 1]);
- }
- }
- /**
- * 获取鉴权需要的参数
- *
- * @Apidoc\Desc("设置企业内部应用H5微应用鉴权")
- * @Apidoc\Method("POST")
- * @Apidoc\Param("url", type="string", require=true, desc="应用URL")
- **/
- public function get_auth(){
- $url = input('url') ?: '';
- $this->success('获取鉴权需要的参数',DingtalkService::generateAuthSignature($url));
- }
- }
|