constructionEditOtherRule($data, $user); if(! $status) return [false, $msg]; DB::beginTransaction(); try{ $set = TSpaceSet::where('del_time',0) ->where('type', $data['type']) ->select('file', 'id') ->get()->toArray(); $set_map = array_column($set,'file','id'); $time = time(); $insert = $update = $new = $old = $id = []; foreach ($data['data'] as $value){ $text = ""; if(! empty($value['text'])) $text = json_encode($data['text']); if(! empty($value['id'])){ $file = $set_map[$value['id']] ?? ""; if($value['file'] != $file){ $old[] = $file; }else{ $new[] = $value['file']; } $update[] = [ 'id' => $value['id'], 'type' => $data['type'], 'text' => $text, 'file' => $value['file'], 'crt_time' => $time, ]; $id[] = $value['id']; }else{ $new[] = $value['file']; $insert[] = [ 'type' => $data['type'], 'text' => $text, 'file' => $value['file'], 'crt_time' => $time, ]; } } foreach ($set as $value){ if(! in_array($value['id'], $id)){ $update[] = [ 'id' => $value['id'], 'del_time' => $time, ]; $old[] = $value['file']; } } if(! empty($update)){ foreach ($update as $value){ TSpaceSet::where('id',$value['id']) ->update($value); } } if(! empty($insert)) TSpaceSet::insert($insert); DB::commit(); }catch (\Exception $exception){ DB::rollBack(); return [false, $exception->getMessage()]; } return [true, ['file' => ['new' => $new, 'old' => $old]]]; } public function constructionEditOtherRule($data,$user){ if(empty($data['type'])) return [false,'TSpace首页设置类型不能为空']; if(! isset(TSpaceSet::$model_type_title[$data['type']])) return [false,'TSpace首页设置类型错误']; if(empty($data['data'])) return [false, '设置内容不能为空']; foreach ($data['data'] as $value){ if(empty($value['file'])) return [false, '文件不能为空']; } return [true, '']; } public function detail($data, $user){ if(empty($data['type'])) return [false,'TSpace首页设置类型不能为空']; if(! isset(TSpaceSet::$model_type_title[$data['type']])) return [false,'TSpace首页设置类型错误']; $set = TSpaceSet::where('del_time',0) ->where('type', $data['type']) ->select('file', 'id', 'text') ->get()->toArray(); foreach ($set as $key => $value){ if(! empty($value['text'])) $set[$key]['text'] = json_decode($value['text'], true); } return [true, $set]; } }