Browse Source

更新员工和部门

zhanglinxin 1 year ago
parent
commit
f8e97fd2bf
1 changed files with 37 additions and 31 deletions
  1. 37 31
      application/common/service/DingtalkService.php

+ 37 - 31
application/common/service/DingtalkService.php

@@ -33,11 +33,11 @@ class DingtalkService
         $req = new \OapiV2DepartmentListsubRequest;
         $req->setDeptId($dept_id);
         $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/department/listsub");
-        if($resp->errcode == 0 && $resp->errmsg == 'ok'){
+        if ($resp->errcode == 0 && $resp->errmsg == 'ok') {
             $result = $resp->result;
             return $result;
         }
-        except($resp->errcode.' '.$resp->errmsg);
+        except($resp->errcode . ' ' . $resp->errmsg);
     }
 
     /**
@@ -53,11 +53,11 @@ class DingtalkService
         $req = new \OapiV2DepartmentListsubRequest;
         $req->setDeptId($dept_id);
         $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/department/get");
-        if($resp->errcode == 0 && $resp->errmsg == 'ok'){
+        if ($resp->errcode == 0 && $resp->errmsg == 'ok') {
             $result = $resp->result;
             return $result;
         }
-        except($resp->errcode.' '.$resp->errmsg);
+        except($resp->errcode . ' ' . $resp->errmsg);
     }
 
     /**
@@ -75,11 +75,11 @@ class DingtalkService
         $req->setCursor("0");
         $req->setSize("100");
         $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/user/list");
-        if($resp->errcode == 0 && $resp->errmsg == 'ok'){
+        if ($resp->errcode == 0 && $resp->errmsg == 'ok') {
             $result = $resp->result;
             return $result;
         }
-        except($resp->errcode.' '.$resp->errmsg);
+        except($resp->errcode . ' ' . $resp->errmsg);
     }
 
     /**
@@ -95,11 +95,11 @@ class DingtalkService
         $req = new \OapiV2UserGetRequest;
         $req->setUserid($userid);
         $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/user/get");
-        if($resp->errcode == 0 && $resp->errmsg == 'ok'){
+        if ($resp->errcode == 0 && $resp->errmsg == 'ok') {
             $result = $resp->result;
             return $result;
         }
-        except($resp->errcode.' '.$resp->errmsg);
+        except($resp->errcode . ' ' . $resp->errmsg);
     }
 
     /**
@@ -115,11 +115,11 @@ class DingtalkService
         $req = new \OapiV2UserGetuserinfoRequest;
         $req->setCode($code);
         $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
-        if($resp->errcode == 0 && $resp->errmsg == 'ok'){
+        if ($resp->errcode == 0 && $resp->errmsg == 'ok') {
             $result = $resp->result;
             return $result;
         }
-        except($resp->errcode.' '.$resp->errmsg);
+        except($resp->errcode . ' ' . $resp->errmsg);
     }
 
     /**
@@ -127,7 +127,8 @@ class DingtalkService
      * @param string $url 应用URL,例如:https://your-domain.com/path/to/your/app.html
      * @return mixed
      **/
-    public static function generateAuthSignature($url) {
+    public static function generateAuthSignature($url)
+    {
         // 获取jsapiTicket
         $jsapiTicket = Sample::jsapiTickets()['jsapiTicket'];
         // 生成鉴权签名
@@ -140,56 +141,61 @@ class DingtalkService
         $config = config('app.dingtalk');
         $agentId = $config['agentId'];
         $corpId = $config['corpId'];
-        return compact("agentId","corpId","nonceStr","timeStamp","signature","url");
+        return compact("agentId", "corpId", "nonceStr", "timeStamp", "signature", "url");
     }
 
     /**
      * 更新员工和部门
      * [{"dept_id":438337214,"name":"BOSS","parent_id":1},{"dept_id":438145402,"name":"项目管理中心","parent_id":1},{"dept_id":501674219,"name":"技术部","parent_id":438145402},{"dept_id":500773946,"name":"项目一组","parent_id":501674219},{"dept_id":501193520,"name":"项目二组","parent_id":501674219},{"dept_id":731200005,"name":"Ui测试组","parent_id":501674219},{"dept_id":501415496,"name":"销售部","parent_id":438145402},{"dept_id":859178110,"name":"运营部","parent_id":438145402},{"dept_id":724339668,"name":"职能支持中心","parent_id":1},{"dept_id":438218445,"name":"人力资源部","parent_id":724339668},{"dept_id":702458745,"name":"财务部","parent_id":724339668}]
      **/
-    public static function renew(){
-        $department_list = Department::field('is_deleted',true)->where('is_deleted',CommonConstant::IS_DELETED_0)->select();
-        $department_object = array_column($department_list->toArray(),null,'dept_id');
+    public static function renew()
+    {
+        // 更新部门
+        $department_list = Department::field('is_deleted', true)->where('is_deleted', CommonConstant::IS_DELETED_0)->select();
+        $department_object = array_column($department_list->toArray(), null, 'dept_id');
 //        $department_data = self::get_tree(1);
 
         $department_data = '[{"dept_id":438337214,"name":"BOSS","parent_id":1},{"dept_id":438145402,"name":"项目管理中心","parent_id":1},{"dept_id":501674219,"name":"技术部","parent_id":438145402},{"dept_id":500773946,"name":"项目一组","parent_id":501674219},{"dept_id":501193520,"name":"项目二组","parent_id":501674219},{"dept_id":731200005,"name":"Ui测试组","parent_id":501674219},{"dept_id":501415496,"name":"销售部","parent_id":438145402},{"dept_id":859178110,"name":"运营部","parent_id":438145402},{"dept_id":724339668,"name":"职能支持中心","parent_id":1},{"dept_id":438218445,"name":"人力资源部","parent_id":724339668},{"dept_id":702458745,"name":"财务部","parent_id":724339668}]';
-        $department_data = json_decode($department_data,JSON_UNESCAPED_UNICODE);
-        $department_data_object = array_column($department_data,null,'dept_id');
+        $department_data = json_decode($department_data, JSON_UNESCAPED_UNICODE);
+        $department_data_object = array_column($department_data, null, 'dept_id');
         $save_department_data = [];
         $add_department_data = [];
         $del_department_data = [];
-        foreach ($department_data as $key=>$value){
-            if(array_key_exists($value['dept_id'],$department_object)){
+        foreach ($department_data as $value) {
+            if (array_key_exists($value['dept_id'], $department_object)) {
                 $save_department_data[] = $value;
-            } else{
+            } else {
                 $add_department_data[] = $value;
             }
         }
 
-        if($save_department_data){
-            foreach ($department_list as $val){
-                if(array_key_exists($val['dept_id'],$department_data_object)){
-                    $data = $department_data_object[$val['dept_id']];
-                    $val->save($data);
-                } else{
+        if ($save_department_data) {
+            foreach ($department_list as $val) {
+                if (array_key_exists($val['dept_id'], $department_data_object)) {
+                    $department_data_info = $department_data_object[$val['dept_id']];
+                    $val->save($department_data_info);
+                } else {
                     $del_department_data[] = $val['id'];
                 }
             }
         }
 
-        if($add_department_data){
+        if ($add_department_data) {
             Department::insertAll($add_department_data);
         }
 
-        if($del_department_data){
-            Department::where('id','in',$del_department_data)->delete();
+        if ($del_department_data) {
+            Department::where('id', 'in', $del_department_data)->delete();
         }
+
+        // 更新员工
     }
 
     /**
      * 递归
      **/
-    public static function get_tree($dept_id,&$tree = array()){
+    public static function get_tree($dept_id, &$tree = [])
+    {
         $resp = self::department_listsub($dept_id);
         foreach ($resp as $value) {
             $tree[] = [
@@ -197,7 +203,7 @@ class DingtalkService
                 'name' => $value->name,
                 'parent_id' => $value->parent_id,
             ];
-            self::get_tree($value->dept_id,$tree);
+            self::get_tree($value->dept_id, $tree);
         }
         return $tree;
     }