cqpCow hace 2 años
padre
commit
6f1b3ad32e

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

@@ -49,4 +49,16 @@ class HeaderWordController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function detail(Request $request){
+        $service =  HeaderWordHookService::getInstance();
+        $data = $request->all();
+        list($status,$data) = $service->detail($data);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 19 - 0
app/Model/Header_ext_sub.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class Header_ext_sub extends Model
+{
+    protected $table = "header_ext_sub"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 76 - 26
app/Service/HeaderWord/HeaderWordHookService.php

@@ -6,7 +6,9 @@ namespace App\Service\HeaderWord;
 
 
 use App\Model\Header_ext;
+use App\Model\Header_ext_sub;
 use App\Service\Service;
+use Illuminate\Support\Facades\DB;
 
 /**
  * 表头相关工厂模式
@@ -59,31 +61,43 @@ class HeaderWordHookService extends Service
         list($status,$msg) = $this->headerRule($data);
         if(!$status) return [$status,$msg];
 
-//        $data = [
-//            'menu_id' => '210',
-//            'data' => [
-//                0 => [
-//                    'key' => 'order_no',
-//                    'value' => '内部订单编号',
-//                    'type' => 1,
-//                    'menu_id' => 210,
-//                    'position' => 'A1'
-//                ],
-//                1 => [
-//                    'key' => 'out_order_no',
-//                    'value' => '销售订单号',
-//                    'type' => 1,
-//                    'menu_id' => 210,
-//                    'position' => 'B1:C1'
-//                ],
-//            ]
-//        ];
-
-        Header_ext::where('menu_id',$data['menu_id'])
-            ->where('del_time',0)
-            ->update(['del_time'=>time()]);
-
-        Header_ext::insert($data['data']);
+        DB::beginTransaction();
+        try{
+            Header_ext::where('menu_id',$data['menu_id'])
+                ->where('type',$data['type'])
+                ->where('del_time',0)
+                ->update(['del_time'=>time()]);
+            Header_ext_sub::where('menu_id',$data['menu_id'])
+                ->where('type',$data['type'])
+                ->where('del_time',0)
+                ->update(['del_time'=>time()]);
+
+            $insert = [];
+            foreach ($data['data'] as $value){
+                $insert[] = [
+                    'key' => $value['key'],
+                    'value' => $value['value'],
+                    'type' => $value['type'],
+                    'menu_id' => $value['menu_id'],
+                    'position' => $value['position'],
+                    'x_axis' => $value['x'],
+                    'y_axis' => $value['y'],
+                ];
+            }Header_ext::insert($insert);
+
+            Header_ext_sub::insert([
+                'type' => $data['type'],
+                'menu_id' => $data['menu_id'],
+                'merge_cells' => json_encode($data['mergeCells']),
+                'max_length' => $data['maxLength'],
+            ]);
+
+            DB::commit();
+        }catch (\Exception $e){
+            DB::rollBack();
+            return [false,$e->getMessage()];
+        }
+
         return [true,'保存成功!'];
     }
 
@@ -93,10 +107,46 @@ class HeaderWordHookService extends Service
         return [true,'删除成功'];
     }
 
-    public function headerRule($data,$is_add = true){
+    public function detail($data){
+        if($this->isEmpty($data,'menu_id')) return [false,'菜单ID不能为空!'];
+        if($this->isEmpty($data,'type')) return [false,'TYPE不能为空!'];
+
+        $result = Header_ext::where('del_time',0)
+            ->select('key','value','position','x_axis as x','y_axis as y')
+            ->where('menu_id',$data['menu_id'])
+            ->where('type',$data['type'])
+            ->get()->toArray();
+        $result_sub = Header_ext_sub::where('del_time',0)
+            ->select('merge_cells','max_length')
+            ->where('menu_id',$data['menu_id'])
+            ->where('type',$data['type'])
+            ->get()->toArray();
+
+        $return['data'] = $result;
+        $return['mergeCells'] = ! empty($result_sub[0]['merge_cells']) ? json_decode($result_sub[0]['merge_cells'],true) : [];
+        $return['maxLength'] = $result_sub[0]['max_length'] ?? '';
+
+        return [true,$return];
+    }
+
+    public function headerRule(&$data,$is_add = true){
         if($this->isEmpty($data,'menu_id')) return [false,'菜单ID不能为空!'];
         if($this->isEmpty($data,'data')) return [false,'数据不能为空!'];
 
+        foreach ($data['data'] as $key => $value){
+            if (strpos($value['position'], ',') !== false) {
+                $tmp = explode(',',$value['position']);
+                $str = '';
+                foreach ($tmp as $v){
+                    $tmp_v = explode(':',$v);
+                    if($tmp_v[0] != $tmp_v[1]) continue;
+                    $str .= $tmp_v[0] . ':';
+                }
+                $str = rtrim($str,':');
+                if($str) $data['data'][$key]['position'] = $str;
+            }
+        }
+
         return [true,''];
     }
 }

+ 1 - 0
routes/api.php

@@ -27,6 +27,7 @@ Route::any('deviceList', 'Api\Device\DeviceController@deviceList');
 Route::any('fyy_set','Api\FyyOrderController@setFyy');
 Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('HeaderSettingsAdd', 'Api\HeaderWordController@add');
+    $route->any('HeaderSettingsDetail', 'Api\HeaderWordController@detail');
 
     $route->any('menuAdd', 'Api\SysMenuController@add');
     $route->any('menuEdit', 'Api\SysMenuController@edit');