|
@@ -2,9 +2,6 @@
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
-use app\common\constant\CommonConstant;
|
|
|
-use app\common\model\Department;
|
|
|
-use app\common\model\User;
|
|
|
use app\common\service\DingtalkService;
|
|
|
use hg\apidoc\annotation as Apidoc;
|
|
|
|
|
@@ -15,36 +12,49 @@ use hg\apidoc\annotation as Apidoc;
|
|
|
*/
|
|
|
class Dingtalk extends Base
|
|
|
{
|
|
|
+ // 需要登录
|
|
|
+ protected $need_login = [];
|
|
|
+
|
|
|
+ public function initialize()
|
|
|
+ {
|
|
|
+ parent::initialize();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
- * 获取部门列表
|
|
|
+ * 获取鉴权需要的参数
|
|
|
*
|
|
|
+ * @Apidoc\Desc("设置企业内部应用H5微应用鉴权")
|
|
|
* @Apidoc\Method("POST")
|
|
|
- * @Apidoc\Param("dept_id", type="integer",require=true, desc="父部门ID")
|
|
|
+ * @Apidoc\Param("url", type="string", require=true, desc="应用URL")
|
|
|
+ **/
|
|
|
+ public function get_auth(){
|
|
|
+ $url = input('url') ?: '';
|
|
|
+ $this->success('获取鉴权需要的参数',DingtalkService::generateAuthSignature($url));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新员工和部门
|
|
|
+ *
|
|
|
+ * @Apidoc\Method("POST")
|
|
|
+ **/
|
|
|
+ public function renew(){
|
|
|
+ DingtalkService::renew();
|
|
|
+ $this->success('更新员工和部门成功');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取部门列表
|
|
|
*/
|
|
|
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()
|
|
|
{
|
|
@@ -55,41 +65,16 @@ class Dingtalk extends Base
|
|
|
|
|
|
/**
|
|
|
* 获取部门用户详情
|
|
|
- *
|
|
|
- * @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()
|
|
|
{
|
|
@@ -98,58 +83,4 @@ class Dingtalk extends Base
|
|
|
$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));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 更新员工和部门
|
|
|
- *
|
|
|
- * @Apidoc\Method("POST")
|
|
|
- **/
|
|
|
- public function renew(){
|
|
|
- DingtalkService::renew();
|
|
|
- $this->success('更新员工和部门成功');
|
|
|
- }
|
|
|
}
|