gogs преди 1 година
родител
ревизия
a8e0347ed0
променени са 5 файла, в които са добавени 99 реда и са изтрити 478 реда
  1. 2 2
      app/Http/Controllers/Api/OaController.php
  2. 41 0
      app/Http/Controllers/Api/OperationLogController.php
  3. 29 476
      app/Service/OaService.php
  4. 22 0
      app/Service/OperationLogService.php
  5. 5 0
      routes/api.php

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

@@ -103,8 +103,8 @@ class OaController extends BaseController
 
 
         $service = new OaService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->oaEdit($request->all());
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->oaEdit($request->all(),$userData);
 
         if($status){
             return $this->json_return(200,'',$data);

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

@@ -0,0 +1,41 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+
+use App\Service\OaService;
+use App\Service\OperationLogService;
+use Illuminate\Http\Request;
+
+
+class OperationLogController extends BaseController
+{
+
+
+
+
+
+    public function getOperationList(Request $request)
+    {
+
+
+        $service = new OperationLogService();
+        list($status,$data) = $service->getOperationList($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+
+    }
+
+
+
+
+
+
+
+
+
+}

+ 29 - 476
app/Service/OaService.php

@@ -230,478 +230,6 @@ class OaService extends Service
 
     public function oaAdd($data)
     {
-
-        $detail = [
-            'id' => 1,
-            'detail' => [
-                [
-                    'id' => 2,
-                    'name' => '张三',
-                    'rule' => [
-                        'detail' => [
-                            [
-                                'key' => 'area',
-                                'value' => '南区',
-                                'formula' => 'dengyu',
-                            ], [
-                                'key' => 'num',
-                                'value' => '40',
-                                'formula' => 'dayu',
-                            ], [
-                                'key' => 'brand',
-                                'value' => 'A,B,C',
-                                'formula' => 'baohan',
-                            ],
-                        ],
-                        'click' => [
-                            'area',
-                            'num',
-                            'brand',
-                        ],
-                        'string' => '(area 并且 num) 或者 num'
-                    ],
-                    'list' => [
-                        [
-                            'id' => 4,
-                            'name' => '张三三',
-                            'rule' => [
-                                'detail' => [
-                                    [
-                                        'key' => 'area',
-                                        'value' => '南区',
-                                        'formula' => 'dengyu',
-                                    ], [
-                                        'key' => 'num',
-                                        'value' => '40',
-                                        'formula' => 'dayu',
-                                    ], [
-                                        'key' => 'brand',
-                                        'value' => 'A,B,C',
-                                        'formula' => 'baohan',
-                                    ],
-                                ],
-                                'click' => [
-                                    'area',
-                                    'num',
-                                    'brand',
-                                ],
-                                'string' => '(area 并且 num) 或者 num'
-                            ],
-                            'list' => [
-                                [
-                                    'id' => 5,
-                                    'name' => '张五',
-                                    'rule' => [
-                                        'detail' => [
-                                            [
-                                                'key' => 'area',
-                                                'value' => '南区',
-                                                'formula' => 'dengyu',
-                                            ], [
-                                                'key' => 'num',
-                                                'value' => '40',
-                                                'formula' => 'dayu',
-                                            ], [
-                                                'key' => 'brand',
-                                                'value' => 'A,B,C',
-                                                'formula' => 'baohan',
-                                            ],
-                                        ],
-                                        'click' => [
-                                            'area',
-                                            'num',
-                                            'brand',
-                                        ],
-                                        'string' => '(area 并且 num) 或者 num'
-                                    ],
-                                    'list' => [
-                                        [
-                                            'id' => 6,
-                                            'name' => '李六',
-                                            'rule' => [
-                                                'detail' => [
-                                                    [
-                                                        'key' => 'area',
-                                                        'value' => '南区',
-                                                        'formula' => 'dengyu',
-                                                    ], [
-                                                        'key' => 'num',
-                                                        'value' => '40',
-                                                        'formula' => 'dayu',
-                                                    ], [
-                                                        'key' => 'brand',
-                                                        'value' => 'A,B,C',
-                                                        'formula' => 'baohan',
-                                                    ],
-                                                ],
-                                                'click' => [
-                                                    'area',
-                                                    'num',
-                                                    'brand',
-                                                ],
-                                                'string' => '(area 并且 num) 或者 num'
-                                            ],
-                                            'list' => []
-                                        ]
-                                    ]
-                                ], [
-                                    'id' => 7,
-                                    'name' => '张六',
-                                    'rule' => [
-                                        'detail' => [
-                                            [
-                                                'key' => 'area',
-                                                'value' => '南区',
-                                                'formula' => 'dengyu',
-                                            ], [
-                                                'key' => 'num',
-                                                'value' => '40',
-                                                'formula' => 'dayu',
-                                            ], [
-                                                'key' => 'brand',
-                                                'value' => 'A,B,C',
-                                                'formula' => 'baohan',
-                                            ],
-                                        ],
-                                        'click' => [
-                                            'area',
-                                            'num',
-                                            'brand',
-                                        ],
-                                        'string' => '(area 并且 num) 或者 num'
-                                    ],
-                                    'list' => [
-                                        [
-                                            'id' => 6,
-                                            'name' => '李六',
-                                            'rule' => [
-                                                'detail' => [
-                                                    [
-                                                        'key' => 'area',
-                                                        'value' => '南区',
-                                                        'formula' => 'dengyu',
-                                                    ], [
-                                                        'key' => 'num',
-                                                        'value' => '40',
-                                                        'formula' => 'dayu',
-                                                    ], [
-                                                        'key' => 'brand',
-                                                        'value' => 'A,B,C',
-                                                        'formula' => 'baohan',
-                                                    ],
-                                                ],
-                                                'click' => [
-                                                    'area',
-                                                    'num',
-                                                    'brand',
-                                                ],
-                                                'string' => '(area 并且 num) 或者 num'
-                                            ],
-                                            'list' => []
-                                        ]
-                                    ]
-                                ],
-                            ],
-                        ], [
-                            'id' => 44,
-                            'name' => '张四四',
-                            'rule' => [
-                                'detail' => [
-                                    [
-                                        'key' => 'area',
-                                        'value' => '南区',
-                                        'formula' => 'dengyu',
-                                    ], [
-                                        'key' => 'num',
-                                        'value' => '40',
-                                        'formula' => 'dayu',
-                                    ], [
-                                        'key' => 'brand',
-                                        'value' => 'A,B,C',
-                                        'formula' => 'baohan',
-                                    ],
-                                ],
-                                'click' => [
-                                    'area',
-                                    'num',
-                                    'brand',
-                                ],
-                                'string' => '(area 并且 num) 或者 num'
-                            ],
-                            'list' => [
-                                [
-                                    'id' => 55,
-                                    'name' => '张四四1',
-                                    'rule' => [
-                                        'detail' => [
-                                            [
-                                                'key' => 'area',
-                                                'value' => '南区',
-                                                'formula' => 'dengyu',
-                                            ], [
-                                                'key' => 'num',
-                                                'value' => '40',
-                                                'formula' => 'dayu',
-                                            ], [
-                                                'key' => 'brand',
-                                                'value' => 'A,B,C',
-                                                'formula' => 'baohan',
-                                            ],
-                                        ],
-                                        'click' => [
-                                            'area',
-                                            'num',
-                                            'brand',
-                                        ],
-                                        'string' => '(area 并且 num) 或者 num'
-                                    ],
-                                    'list' => [
-                                        [
-                                            'id' => 66,
-                                            'name' => '李六1',
-                                            'rule' => [
-                                                'detail' => [
-                                                    [
-                                                        'key' => 'area',
-                                                        'value' => '南区',
-                                                        'formula' => 'dengyu',
-                                                    ], [
-                                                        'key' => 'num',
-                                                        'value' => '40',
-                                                        'formula' => 'dayu',
-                                                    ], [
-                                                        'key' => 'brand',
-                                                        'value' => 'A,B,C',
-                                                        'formula' => 'baohan',
-                                                    ],
-                                                ],
-                                                'click' => [
-                                                    'area',
-                                                    'num',
-                                                    'brand',
-                                                ],
-                                                'string' => '(area 并且 num) 或者 num'
-                                            ],
-                                            'list' => [
-                                                [
-                                                    'id' => 77,
-                                                    'name' => 'li7',
-                                                    'rule' => [
-                                                        'detail' => [
-                                                            [
-                                                                'key' => 'area',
-                                                                'value' => '南区',
-                                                                'formula' => 'dengyu',
-                                                            ], [
-                                                                'key' => 'num',
-                                                                'value' => '40',
-                                                                'formula' => 'dayu',
-                                                            ], [
-                                                                'key' => 'brand',
-                                                                'value' => 'A,B,C',
-                                                                'formula' => 'baohan',
-                                                            ],
-                                                        ],
-                                                        'click' => [
-                                                            'area',
-                                                            'num',
-                                                            'brand',
-                                                        ],
-                                                        'string' => '(area 并且 num) 或者 num'
-                                                    ],
-                                                    'list' => []
-                                                ]
-                                            ]
-                                        ]
-                                    ]
-                                ], [
-                                    'id' => 77,
-                                    'name' => '张四四2',
-                                    'rule' => [
-                                        'detail' => [
-                                            [
-                                                'key' => 'area',
-                                                'value' => '南区',
-                                                'formula' => 'dengyu',
-                                            ], [
-                                                'key' => 'num',
-                                                'value' => '40',
-                                                'formula' => 'dayu',
-                                            ], [
-                                                'key' => 'brand',
-                                                'value' => 'A,B,C',
-                                                'formula' => 'baohan',
-                                            ],
-                                        ],
-                                        'click' => [
-                                            'area',
-                                            'num',
-                                            'brand',
-                                        ],
-                                        'string' => '(area 并且 num) 或者 num'
-                                    ],
-                                    'list' => [
-                                        [
-                                            'id' => 6,
-                                            'name' => '李六',
-                                            'rule' => [
-                                                'detail' => [
-                                                    [
-                                                        'key' => 'area',
-                                                        'value' => '南区',
-                                                        'formula' => 'dengyu',
-                                                    ], [
-                                                        'key' => 'num',
-                                                        'value' => '40',
-                                                        'formula' => 'dayu',
-                                                    ], [
-                                                        'key' => 'brand',
-                                                        'value' => 'A,B,C',
-                                                        'formula' => 'baohan',
-                                                    ],
-                                                ],
-                                                'click' => [
-                                                    'area',
-                                                    'num',
-                                                    'brand',
-                                                ],
-                                                'string' => '(area 并且 num) 或者 num'
-                                            ],
-                                            'list' => []
-                                        ]
-                                    ]
-                                ],
-                            ],
-                        ],
-                    ]
-                ], [
-                    'id' => 3,
-                    'name' => '李四',
-                    'rule' => [
-                        'detail' => [
-                            [
-                                'key' => 'area',
-                                'value' => '南区',
-                                'formula' => 'dengyu',
-                            ], [
-                                'key' => 'num',
-                                'value' => '40',
-                                'formula' => 'dayu',
-                            ], [
-                                'key' => 'brand',
-                                'value' => 'A,B,C',
-                                'formula' => 'baohan',
-                            ],
-                        ],
-                        'click' => [
-                            'area',
-                            'num',
-                            'brand',
-                        ],
-                        'string' => '(area 并且 num) 或者 num'
-                    ],
-                    'list' => [
-                        [
-                            'id' => 8,
-                            'name' => '李五',
-                            'rule' => [
-                                'detail' => [
-                                    [
-                                        'key' => 'area',
-                                        'value' => '南区',
-                                        'formula' => 'dengyu',
-                                    ], [
-                                        'key' => 'num',
-                                        'value' => '40',
-                                        'formula' => 'dayu',
-                                    ], [
-                                        'key' => 'brand',
-                                        'value' => 'A,B,C',
-                                        'formula' => 'baohan',
-                                    ],
-                                ],
-                                'click' => [
-                                    'area',
-                                    'num',
-                                    'brand',
-                                ],
-                                'string' => '(area 并且 num) 或者 num'
-                            ],
-                            'list' => [
-                                [
-                                    'id' => 9,
-                                    'name' => '李六',
-                                    'rule' => [
-                                        'detail' => [
-                                            [
-                                                'key' => 'area',
-                                                'value' => '南区',
-                                                'formula' => 'dengyu',
-                                            ], [
-                                                'key' => 'num',
-                                                'value' => '40',
-                                                'formula' => 'dayu',
-                                            ], [
-                                                'key' => 'brand',
-                                                'value' => 'A,B,C',
-                                                'formula' => 'baohan',
-                                            ],
-                                        ],
-                                        'click' => [
-                                            'area',
-                                            'num',
-                                            'brand',
-                                        ],
-                                        'string' => '(area 并且 num) 或者 num'
-                                    ],
-                                    'list' => [
-                                        [
-                                            'id' => 6,
-                                            'name' => '李六',
-                                            'rule' => [
-                                                'detail' => [
-                                                    [
-                                                        'key' => 'area',
-                                                        'value' => '南区',
-                                                        'formula' => 'dengyu',
-                                                    ], [
-                                                        'key' => 'num',
-                                                        'value' => '40',
-                                                        'formula' => 'dayu',
-                                                    ], [
-                                                        'key' => 'brand',
-                                                        'value' => 'A,B,C',
-                                                        'formula' => 'baohan',
-                                                    ],
-                                                ],
-                                                'click' => [
-                                                    'area',
-                                                    'num',
-                                                    'brand',
-                                                ],
-                                                'string' => '(area 并且 num) 或者 num'
-                                            ],
-                                            'list' => []
-                                        ]
-                                    ]
-                                ]
-                            ]
-                        ]
-                    ]
-                ],
-            ],
-        ];
-        file_put_contents('121.txt', json_encode($detail));
-        die;
-
-
-        Log::channel('request')->info('request', ['param' => $data]);
-
-//        $first = Oa::where('del_time', 0)->where('menu_id', $data['menu_id']);
-//        if(isset($data['type'])) $first = $first->where('type',$data['type']);
-//        $first = $first->first();
-
-//        if ($first) return [false, '该菜单oa已存在!'];
         $oa = new Oa();
 
 
@@ -739,9 +267,12 @@ class OaService extends Service
     }
 
 
-    public function oaEdit($data)
+    public function oaEdit($data,$user)
     {
-        $first = Oa::where('del_time', 0)->where('id', '<>', $data['id'])->where('menu_id', $data['menu_id']);
+
+
+        $first = Oa::where('del_time', 0)->where('menu_id', $data['menu_id']);
+        if(isset($data['id'])) $first = $first->where('id', '<>', $data['id']);
         if (isset($data['type'])) $first = $first->where('type', $data['type']);
         $first = $first->first();
 
@@ -750,15 +281,19 @@ class OaService extends Service
 
         try {
             DB::beginTransaction();
-            $oa = Oa::where('id', $data['id'])->first();
+            if(isset($data['id'])) $oa = Oa::where('id', $data['id'])->first();
+            $oa = new Oa();
             $oa->menu_id = $data['menu_id'];
-            $oa->type = $data['type'];
+            $oa->crt_employee_id = $user['id'];
+            $oa->type = $data['type']??0;
             $oa->save();
             $id = $oa->id;
             $insert = [];
             OaSub::where('oa_id', $id)->update([
                 'del_time' => time()
             ]);
+            //处理前端数据
+            $this->dealOaData($data,$id);
             foreach ($data['detail'] as $v) {
                 foreach ($v['employee_list'] as $vv) {
                     $insert[] = [
@@ -783,6 +318,24 @@ class OaService extends Service
         return [true, '更新成功'];
     }
 
+    public function dealOaData($data,$id){
+        $data = $data['approval'];
+        $detail = [];
+        $sort = 0;
+        foreach ($data as $v){
+            $sort++;
+            foreach ($v['children'] as $vv){
+                $detail[] = [
+                    'h5_key' => $vv['index'],
+                    'emp_id' => $vv['emp_id'],
+                    'set' => $vv['set'],
+                    'sort' => $sort,
+                ];
+            }
+        }
+        dd($detail);die;
+    }
+
     public function oaDel($data)
     {
         $id = $data['id'];

+ 22 - 0
app/Service/OperationLogService.php

@@ -19,6 +19,28 @@ class OperationLogService extends Service
         return self::$instance;
     }
 
+
+    public function getOperationList($data){
+
+        $data = [
+            [
+                'type' => 1,
+                'user_id' => 1,
+                'user_name' => 1,
+                'crt_time' => 123456,
+                'data' => [
+                    [
+                        'key' => '金额',
+                        'old_data' => '100',
+                        'new_data' => '200',
+                    ]
+
+                ]
+            ]
+        ];
+        return [true,$data];
+    }
+
 //    public function
 
 

+ 5 - 0
routes/api.php

@@ -26,9 +26,14 @@ Route::any('uploadFiles/{file_name}', 'Api\FileUploadController@getFile');
 Route::group(['middleware'=> ['checkLogin']],function ($route){
     //oa
     $route->any('oaGetData', 'Api\OaController@oaGetData');
+    $route->any('getOperationList', 'Api\OperationLogController@getOperationList');
     $route->any('createOaOrder', 'Api\OaController@createOaOrder');
     $route->any('oaCheck', 'Api\OaController@oaCheck');
     $route->any('oaOrderList', 'Api\OaController@oaOrderList');
+    $route->any('oaList', 'Api\OaController@oaList');
+    $route->any('oaDel', 'Api\OaController@oaDel');
+    $route->any('oaEdit', 'Api\OaController@oaEdit');
+    $route->any('oaDetail', 'Api\OaController@oaDetail');
     $route->any('oaOrderState', 'Api\OaController@oaOrderState');
     $route->any('oaGetTeamDetail', 'Api\OaController@oaGetTeamDetail');
     $route->any('checkAllOver', 'Api\OaController@checkAllOver');