cqpCow 11 달 전
부모
커밋
f3ada10ab5
2개의 변경된 파일26개의 추가작업 그리고 8개의 파일을 삭제
  1. 1 1
      app/Http/Controllers/Api/OaController.php
  2. 25 7
      app/Service/OaService.php

+ 1 - 1
app/Http/Controllers/Api/OaController.php

@@ -16,7 +16,7 @@ class OaController extends BaseController
         $userData = $request->userData->toArray();
         $service = new OaService($userData);
 
-        list($status,$data) = $service->oaList($request->all());
+        list($status,$data) = $service->oaList($request->all(),$userData);
 
         if($status){
             return $this->json_return(200,'',$data);

+ 25 - 7
app/Service/OaService.php

@@ -5,6 +5,7 @@ namespace App\Service;
 
 use App\Model\BasicRollFilm;
 use App\Model\Construction;
+use App\Model\Depart;
 use App\Model\Employee;
 use App\Model\EmployeeDepartPermission;
 use App\Model\EmployeeTeamPermission;
@@ -44,22 +45,39 @@ class OaService extends Service
         parent::__construct();
         $this->user = $user;
     }
-    public function oaList($data)
+    public function oaList($data,$user)
     {
-
         $list = Oa::from('oa as o')
             ->leftjoin('sys_menu as s', 's.id', 'o.menu_id')
-            ->select('o.id', 'o.menu_id', 'o.crt_time', 's.title')
-            ->where('o.del_time', 0)
-            ->where('o.channel', $this->user['depart_top'][0]['depart_id']);
+            ->select('o.id', 'o.menu_id', 'o.crt_time', 's.title','o.channel')
+            ->where('o.del_time', 0);
 
-        $list = $this->limit($list, '', $data);
+        if(! empty($data['top_depart_id'])) {
+            $list->where('o.channel', $data['top_depart_id']);
+        }else{
+            if(! $user['is_all_depart']){
+                $top_depart_id = $user['depart_top'][0]['depart_id'] ?? 0;
+                $list->where('o.channel', $top_depart_id);
+            }
+        }
 
+        $list = $this->limit($list, '', $data);
+        $list = $this->fillData($list);
 
         return [true, $list];
-
     }
 
+    public function fillData($data) {
+        if (empty($data['data'])) return $data;
+
+        $depart = Depart::whereIn('id',array_column($data['data'],'channel'))
+            ->pluck('title','id')
+            ->toArray();
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['top_depart_title'] = $depart[$value['channel']] ?? '';
+        }
+        return $data;
+    }
 
     public function oaDetail($data)
     {