|
@@ -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,''];
|
|
|
}
|
|
|
}
|