| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- <?php
 
- namespace App\Imports;
 
- use App\Exceptions\ImportError;
 
- use App\Models\Device;
 
- use App\Models\DeviceName;
 
- use App\Models\InnerDevice;
 
- use App\Models\InnerDeviceNamesModel;
 
- use App\Models\Option;
 
- use App\Models\Project;
 
- use App\Models\ProjectUser;
 
- use App\Models\ProjectZone;
 
- use App\Models\Road;
 
- use App\Models\Spec;
 
- use App\Models\User;
 
- use App\Models\WorkPoint;
 
- use App\Models\Zone;
 
- use Illuminate\Support\Collection;
 
- use Illuminate\Support\Facades\Auth;
 
- use Illuminate\Support\Facades\Log;
 
- use Maatwebsite\Excel\Concerns\ToCollection;
 
- use PhpOffice\PhpSpreadsheet\Shared\Date;
 
- class ProjectImport implements ToCollection
 
- {
 
-     protected $model;
 
-     protected $zone;
 
-     protected $road;
 
-     protected $project_zone;
 
-     public function __construct()
 
-     {
 
-         $this->model = new Project();
 
-     }
 
-     public function collection(Collection $rows)
 
-     {
 
-         if(count($rows) <= 1) {
 
-             /** @noinspection PhpUnhandledExceptionInspection */
 
-             return false;
 
-         };
 
-         foreach ($rows as $key => $row) {
 
-             if($key == 0) continue;
 
-             if(empty($row[0])&&empty($row[1])&&empty($row[2]))
 
-             {
 
-                 break;
 
-             }
 
-             //项目id
 
-             $project_id = null;
 
-             //用户id
 
-             $user_id = null;
 
-             $password = '123456';
 
-             $password = bcrypt($password);
 
-             /*
 
-              * 项目名称
 
-              * 逻辑
 
-              *      1.如果不存在该项目,那么就创建一个项目,并且active为激活状态
 
-              *      2.如果存在该项目,返回项目id
 
-              * */
 
-             if ($row[0])
 
-             {
 
-                 $project_id = Project::firstOrCreate([
 
-                     'name' => $row[0],
 
-                 ],[
 
-                     'name' => $row[0],
 
-                     'active' => 1
 
-                 ]);
 
-             }
 
-             //手机号
 
-             if ($row[1]&&$row[2])
 
-             {
 
-                 $user_id = User::firstOrCreate([
 
-                     'phone' => $row[2]
 
-                 ],[
 
-                     'name' => $row[1],
 
-                     'phone'=> $row[2],
 
-                     'password' => $password
 
-                 ]);
 
-             }
 
-             //如果相同电话号码,不同名字的话就替换原来的名字
 
-             if ($user_id->name != $row[1])
 
-             {
 
-                 User::where('id',$user_id->id)->update(['name'=>$row[1]]);
 
-             }
 
-             /*
 
-              * 导入到项目成员表里
 
-              *      当前这个用户是否在项目里
 
-              *          如果在项目里,判断是否是项目经理
 
-              *              如果是项目经理就不去做替换操作
 
-              *              如果不是项目经理就替换掉原来的项目经理,当前这个用户就变成项目经理
 
-              *          如果不在项目里,判断原来是否有项目经理
 
-              *              如果有就替换掉
 
-              *              如果没有就新建项目经理
 
-              *
 
-              * */
 
- //            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_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);
 
-                 }
 
-             }
 
- //            $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;
 
-     }
 
- }
 
 
  |