cqp 1 bulan lalu
induk
melakukan
9ca7651c28

+ 13 - 0
app/Http/Controllers/Api/EmployeeController.php

@@ -105,6 +105,19 @@ class EmployeeController extends BaseController
         }
     }
 
+    public function employeeDetail(Request $request)
+    {
+        $service = new EmployeeService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->employeeDetail($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
     public function employeeList(Request $request)
     {
         $service = new EmployeeService();

+ 35 - 9
app/Service/EmployeeService.php

@@ -145,8 +145,10 @@ class EmployeeService extends Service
             }
             $model->save();
 
+            $time = time();
+
             EmployeeRole::where('employee_id',$data['id'])->update([
-                'del_time' => time()
+                'del_time' => $time
             ]);
             if(isset($data['role'])){
                 $insert = [];
@@ -154,15 +156,17 @@ class EmployeeService extends Service
                     $insert[] = [
                         'employee_id' => $model->id,
                         'role_id' => $value,
-                        'crt_time' => time(),
-                        'upd_time' => time(),
+                        'crt_time' => $time,
+                        'upd_time' => $time,
                     ];
                 }
                 EmployeeRole::insert($insert);
             }
 
             if(! empty($data['index_array'])){
-
+                EmployeeIndex::where('del_time',0)
+                    ->update(['del_time' => $time]);
+                EmployeeIndex::insert($data['index_array']);
             }
 
             DB::commit();
@@ -256,6 +260,20 @@ class EmployeeService extends Service
         return [true,'删除成功'];
     }
 
+    public function employeeDetail($data){
+        if($this->isEmpty($data,'id')) return [false,'人员id不能为空'];
+        $user = Employee::where('id', $data['id'])->where('del_time',0)->first();
+        if(empty($user)) return [false, '人员不存在或已被删除'];
+        $user = $user->toArray();
+        $detail = EmployeeIndex::where('del_time',0)
+            ->where('employee_id',$user['id'])
+            ->select('employee_id','index','index_2','index_3','type','start_time','end_time')
+            ->get()->toArray();
+        $user['detail'] = $detail;
+
+        return [true, $user];
+    }
+
     /**
      * 用户列表
      * @param $data
@@ -362,8 +380,6 @@ class EmployeeService extends Service
      * @return array
      */
     public function employeeRule($data,$is_add = true){
-        if(empty($data['id'])) return [false,'人员ID不能为空'];
-
         if(! empty($data['index_array'])){
             $typeIntervals = []; // 用于收集每个 type 的时间区间,用于后续不相交校验
             foreach ($data['index_array'] as $key => $value){
@@ -374,6 +390,7 @@ class EmployeeService extends Service
                 list($start_time, $end_time) = $this->changeDateToTimeStampAboutRange($value['crt_time']);
                 $data['index_array'][$key]['start_time'] = $start_time;
                 $data['index_array'][$key]['end_time'] = $end_time;
+                $data['index_array'][$key]['employee_id'] = $data['id'];
                 if ($start_time === null || $end_time === null || $start_time > $end_time) return [false, $name . ":时间区间无效"];
                 // 收集每个 type 的时间区间,用于后续不相交校验
                 $type = $value['type'];
@@ -384,6 +401,8 @@ class EmployeeService extends Service
                 ];
 
                 if(! isset($value['index'])) return [false, 'index不存在'];
+                if(! isset($value['index_2'])) return [false, 'index_2不存在'];
+                if(! isset($value['index_3'])) return [false, 'index_3不存在'];
                 if(isset(EmployeeIndex::$positive[$value['type']])){
                     $name_string = EmployeeIndex::$positive[$value['type']];
                     $res = $this->checkNumber($value['index'],2,'non-negative');
@@ -393,8 +412,6 @@ class EmployeeService extends Service
                     $res = $this->checkNumber($value['index']);
                     if(! $res['valid']) return [false, $name_string . ":" . $res['error']];
                 }elseif(isset(EmployeeIndex::$positive_2[$value['type']])){
-                    if(! isset($value['index_2'])) return [false, 'index_2不存在'];
-                    if(! isset($value['index_3'])) return [false, 'index_3不存在'];
                     $name_string = EmployeeIndex::$positive[$value['type']];
                     $res = $this->checkNumber($value['index'],2,'positive');
                     if(! $res['valid']) return [false, $name_string . "基数:" . $res['error']];
@@ -426,6 +443,15 @@ class EmployeeService extends Service
             }
         }
 
+        if(! $is_add){
+            if(empty($data['id'])) return [false,'人员ID不能为空'];
+
+            $bool = Employee::where('del_time',0)
+                ->where('id', $data['id'])
+                ->exists();
+            if(! $bool) return [false, '人员不存在或已被删除'];
+        }
+
         return [true,''];
     }
 
@@ -503,7 +529,7 @@ class EmployeeService extends Service
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%' . $data['title'] . '%');
 
         $list = $this->limit($model,'',$data);
-        $list = $this->fillRoleList($list);
+        $list = $this->fillRoleList($list, $user);
 
         return [true, $list];
     }

+ 1 - 1
routes/api.php

@@ -62,6 +62,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('employeeEdit', 'Api\EmployeeController@employeeEdit');
     $route->any('employeeEditOther', 'Api\EmployeeController@employeeEditOther');
     $route->any('employeeDel', 'Api\EmployeeController@employeeDel');
+    $route->any('employeeDetail', 'Api\EmployeeController@employeeDetail');
     $route->any('employeeList', 'Api\EmployeeController@employeeList');
 
     $route->any('departAdd', 'Api\EmployeeController@departAdd');
@@ -85,7 +86,6 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('employeeDepart', 'Api\EmployeeController@employeeDepart');
     $route->any('employeeTeam', 'Api\EmployeeController@employeeTeam');
     $route->any('employeeRole', 'Api\EmployeeController@employeeRole');
-    $route->any('employeeEditImg', 'Api\EmployeeController@employeeEditImg')->middleware('OssFileDeal');
     $route->any('getEmployeeImg', 'Api\EmployeeController@getEmployeeImg');
 
     //产品名称