gogs 1 năm trước cách đây
mục cha
commit
22477fb8fc
2 tập tin đã thay đổi với 40 bổ sung16 xóa
  1. 11 5
      app/Service/OaService.php
  2. 29 11
      app/Service/OperationLogService.php

+ 11 - 5
app/Service/OaService.php

@@ -53,6 +53,7 @@ class OaService extends Service
     {
 
         $id = $data['id'];
+        $menu_id = Oa::where('id',$id)->value('menu_id');
         $list = OaSub::where('oa_id',$id)->where('del_time',0)->get()->toArray();
         $oa_sub_ids = [];
         foreach ($list as $v){
@@ -66,16 +67,21 @@ class OaService extends Service
             $oaRuleKey[$v['oa_sub_id']][] = [
                 'value' => $v['value'],
                 'key' => $v['key'],
-                'formula' => $v['formula'] == '==' ? '=' : $v['formula'] ,
+                'opera' => $v['formula'] == '==' ? '=' : $v['formula'] ,
             ];
         }
+        $employee_key_list = Employee::pluck('emp_name','id')->toArray();
         foreach ($oaEmployee as $v){
-            $oaEmployeeKey[$v['oa_sub_id']][] = $v['employee_id'];
+            $oaEmployeeKey[$v['oa_sub_id']][] = [
+                'id'=>$v['employee_id'],
+                'emp_name'=>$employee_key_list[$v['employee_id']],
+            ];
         }
         $return = [];
         foreach ($list as $v){
             $return[$v['sort']][] = [
                 'emp_id' => $oaEmployeeKey[$v['id']],
+                'index' => $v['h5_key'],
                 'set' => isset($oaRuleKey[$v['id']])?$oaRuleKey[$v['id']] : [] ,
             ];
         }
@@ -86,12 +92,12 @@ class OaService extends Service
                 $children[] = [
                     'set'=>$vv['set'],
                     'emp_id'=>$vv['emp_id'],
-                    'index'=>$k,
+                    'index'=>$vv['index'],
                 ];
             }
             $detail[] = ['children'=>$children];
         }
-        return [true, $detail];
+        return [true, ['data'=>$detail,'menu_id'=>$menu_id]];
 
     }
 
@@ -212,7 +218,7 @@ class OaService extends Service
         try {
             DB::beginTransaction();
             if(isset($data['id'])) $oa = Oa::where('id', $data['id'])->first();
-            $oa = new Oa();
+            else $oa = new Oa();
             $oa->menu_id = $data['menu_id'];
             $oa->crt_employee_id = $user['id'];
             $oa->type = $data['type']??0;

+ 29 - 11
app/Service/OperationLogService.php

@@ -55,22 +55,40 @@ class OperationLogService extends Service
         $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){
-
+        try {
+            DB::beginTransaction();
+            $log = new OperationLog();
+            $log->user_id = $user['id'];
+            $log->menu_id = $menu_id;
+            $log->type = $type;
+            $log->save();
+            $id = $log->id;
+            $bind_data_detail = [];
+            $key_data = [];
+            //以下是对比逻辑
+            foreach ($data as $k=>$v){
+                if(isset($detail[$k])&&isset($key_data[$k])&&$detail[$k] != $v){
+                    $bind_data_detail[] = [
+                        'log_id' => $id,
+                        'parent_id' => 0,
+                        'old_data' => $v,
+                        'new_data' => $detail[$k],
+                        'title' => $key_data[$k],
+                    ];
+                }
             }
+            OperationLogDetail::insert($bind_data_detail);
+            DB::commit();
+            return [true,''];
+        }catch (\Exception $e){
+            DB::rollBack();
+
+            return [false,$e->getLine().$e->getMessage()];
         }
 
 
 
+
     }
 
     public function oaGetData($menu_id,$request)