gogs 1 vuosi sitten
vanhempi
commit
8c9ae19768

+ 12 - 0
app/Http/Controllers/Api/OperationLogController.php

@@ -30,6 +30,18 @@ class OperationLogController extends BaseController
 
     }
 
+    public function setOperationList(Request $request){
+        $service = new OperationLogService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->setOperationList($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
 
 
 

+ 56 - 0
app/Service/OperationLogService.php

@@ -6,6 +6,7 @@ namespace App\Service;
 
 use App\Model\OperationLog;
 use App\Model\OperationLogDetail;
+use App\Model\SysMenu;
 use Illuminate\Support\Facades\DB;
 
 class OperationLogService extends Service
@@ -44,6 +45,61 @@ class OperationLogService extends Service
 //    public function
 
 
+    public function setOperationList($data,$user,$type=1,$menu_id=18){
+        $menu_id = $data['menu_id'];
+        $param  = isset($data['order_number']) ?  ['order_number'=>$data['order_number']]:['id'=>$data['id']];
+        $request =  request();
+        foreach ($param as $k=>$v){
+            $request->$k = $v;
+        }
+        $all = $request->all();
+        if(!isset($all['order_number']))  $request->merge($param);
+        $detail = $this->oaGetData($menu_id,$request);
+
+        $bind_data = [
+            'user_id' => $user['id'],
+            'menu_id' => $menu_id,
+            'type' => $type,
+        ];
+        $bind_data_detail = [];
+        //以下是对比逻辑
+        foreach ($data as $v){
+            foreach ($detail as $vv){
+
+            }
+        }
+
+
+
+    }
+
+    public function oaGetData($menu_id,$request)
+    {
+        $api = SysMenu::where('id',$menu_id)->value('api');
+        $path = $this->getMenu();
+        $control = '\\'.$path[$api]["controller"];
+        $act = $path[$api]["act"];
+        $new = new $control();
+        $detail = $new->$act($request);
+//        if(!isset($detail['data']['data'][0])) $detail['data']['data'][0] = $detail['data'];
+        return $detail['data']['data'][0];
+    }
+
+    public function getMenu(){
+        $app = App();
+        $routes = $app->routes->getRoutes();
+        $path = [];
+        foreach ($routes as $k => $value) {
+            if(!isset($value->action['controller'])) continue;
+            $act = explode('@',$value->action['controller']);
+            if(!isset($act[1])) continue;
+            $path[$value->uri]['act'] = $act[1];
+            $path[$value->uri]['controller'] = $act[0];
+        }
+
+        return $path;
+    }
+
     public function insertOperationLog($insert){
         try {
             DB::beginTransaction();

+ 1 - 0
routes/api.php

@@ -34,6 +34,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('oaDel', 'Api\OaController@oaDel');
     $route->any('oaEdit', 'Api\OaController@oaEdit');
     $route->any('oaDetail', 'Api\OaController@oaDetail');
+    $route->any('setOperationList', 'Api\OperationLogController@setOperationList');
     $route->any('oaOrderState', 'Api\OaController@oaOrderState');
     $route->any('oaGetTeamDetail', 'Api\OaController@oaGetTeamDetail');
     $route->any('checkAllOver', 'Api\OaController@checkAllOver');