ChenWuJie 4 年之前
父节点
当前提交
8ceabcb78a
共有 1 个文件被更改,包括 69 次插入12 次删除
  1. 69 12
      app/Imports/ProjectImport.php

+ 69 - 12
app/Imports/ProjectImport.php

xqd xqd
@@ -49,6 +49,7 @@ class ProjectImport implements ToCollection
             {
                 break;
             }
+
             //项目id
             $project_id = null;
             //用户id
@@ -89,21 +90,77 @@ class ProjectImport implements ToCollection
             }
             /*
              * 导入到项目成员表里
-             *      如果原本这个项目存在项目经理,那就把这个项目经理替换成项目副经理
-             *          然后再插入新的数据
+             *      当前这个用户是否在项目里
+             *          如果在项目里,判断是否是项目经理
+             *              如果是项目经理就不去做替换操作
+             *              如果不是项目经理就替换掉原来的项目经理,当前这个用户就变成项目经理
+             *          如果不在项目里,判断原来是否有项目经理
+             *              如果有就替换掉
+             *              如果没有就新建项目经理
+             *
              * */
-            $manager_num = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->count();
-            if ($manager_num != 0)
+//            dd($user_id);
+            //判断当前用户是否在项目里 计数不等于0就是在项目里
+            $has_user = ProjectUser::where('project_id',$project_id->id)->where('user_id',$user_id->id)->get()->count();
+            if ($has_user != 0)
+            {
+                //该用户在当前项目的职位
+                $in_project_user = ProjectUser::where('project_id',$project_id['id'])->where('user_id',$user_id->id)->value('project_role_id');
+                //如果职位不是项目经理就替换
+                if ($in_project_user != 4){
+                    //查找项目经理人数
+                    $manager_num = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->count();
+                    //如果有项目经理就替换
+                    if ($manager_num != 0)
+                    {
+                        //获取到项目经理的数据
+                        $manager_user_project_id = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->value('project_id');
+                        $manager_user_user_id = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->value('user_id');
+                        //替换成项目副经理
+                        ProjectUser::where('project_id',$manager_user_project_id)->where('user_id',$manager_user_user_id)->update(['project_role_id'=>3]);
+                    }
+                    ProjectUser::where('project_id',$project_id['id'])->where('user_id',$user_id->id)->update(['project_role_id'=> 4]);
+                }
+            }else
             {
-                $manager_user = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->first();
-                ProjectUser::where('id',$manager_user['id'])->update(['project_role_id'=>3]);
+                //判断项目里是否有项目经理
+                $manager_num = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->count();
+                //如果有项目经理
+                if ($manager_num != 0)
+                {
+                    //获取到项目经理的数据
+                    $manager_user_project_id = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->value('project_id');
+                    $manager_user_user_id = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->value('user_id');
+                    //替换项目经理
+                    ProjectUser::where('project_id',$manager_user_project_id)->where('user_id',$manager_user_user_id)->update(['project_role_id'=>3]);
+                    $data =[
+                        'project_id' => $project_id['id'],
+                        'user_id' => $user_id['id'],
+                        'project_role_id' => 4
+                    ];
+                    ProjectUser::create($data);
+                }else
+                {
+                    $data =[
+                        'project_id' => $project_id['id'],
+                        'user_id' => $user_id['id'],
+                        'project_role_id' => 4
+                    ];
+                    ProjectUser::create($data);
+                }
             }
-            $data =[
-                'project_id' => $project_id['id'],
-                'user_id' => $user_id['id'],
-                'project_role_id' => 4
-            ];
-            ProjectUser::create($data);
+//            $manager_num = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->count();
+//            if ($manager_num != 0)
+//            {
+//                $manager_user = ProjectUser::where('project_id',$project_id['id'])->where('project_role_id',4)->first();
+//                ProjectUser::where('id',$manager_user['id'])->update(['project_role_id'=>3]);
+//            }
+//            $data =[
+//                'project_id' => $project_id['id'],
+//                'user_id' => $user_id['id'],
+//                'project_role_id' => 4
+//            ];
+//            ProjectUser::create($data);
         }
         return true;
     }