作者 lyh

Merge branch 'zbj_new' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

<?php
namespace App\Http\Controllers\Bside\Nav;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\Nav\BNavGroup;
use Illuminate\Http\Request;
/**
* 导航组
* Class NavGroupController
* @package App\Http\Controllers\Bside\Nav
* @author zbj
* @date 2023/10/9
*/
class NavGroupController extends BaseController
{
public function index(BNavGroup $nav_group){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav_group->list($this->map, 'id', ['id', 'name'], 'asc');
$this->response('success',Code::SUCCESS,$lists);
}
public function save(Request $request){
$request->validate([
'name'=> ['required','max:100'],
],[
'name.required' => '菜单组名称不能为空',
'name.max' => '菜单组名称不能超过100个字符'
]);
if(empty($this->param['id'])){
$nav_group = new BNavGroup();
}else{
if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
$this->fail('系统内置菜单组不能修改');
}
$nav_group = BNavGroup::find($this->param['id']);
if(!$nav_group){
$this->fail('数据不存在或者已经删除');
}
}
$nav_group->project_id = $this->user['project_id'];
$nav_group->name = $this->param['name'];
$nav_group->save();
$this->response('success');
}
public function delete(Request $request){
$request->validate([
'id'=>'required',
],[
'id.required' => 'ID不能为空',
]);
if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){
$this->fail('系统内置菜单组不能删除');
}
$nav_group = BNavGroup::find($this->param['id']);
if(!$nav_group){
$this->response('数据不存在或者已经删除');
}
$nav_group->delete();
$this->response('success');
}
}
... ...
... ... @@ -4,10 +4,11 @@ namespace App\Http\Logic\Aside\Template;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Service\Service as ServiceSettingModel;
use App\Models\Template\BCommonTemplate;
use App\Models\Template\Template;
use App\Models\Template\Setting;
use App\Services\ProjectServer;
use Illuminate\Support\Facades\DB;
use mysql_xdevapi\Exception;
class ATemplateLogic extends BaseLogic
{
... ... @@ -141,7 +142,7 @@ class ATemplateLogic extends BaseLogic
];
$serviceSettingModel->insert($data);
DB::commit();
}catch (Exception $e){
}catch (\Exception $e){
DB::rollBack();
$this->fail('error');
}
... ... @@ -184,6 +185,49 @@ class ATemplateLogic extends BaseLogic
if($rs === false){
$this->fail('error');
}
$html = Template::where('id', $this->param['template_id'])->value('html');
$this->splitTemplate($html);
return $this->success();
}
/**
* 保存拆分模板
* @author zbj
* @date 2023/10/11
*/
public function splitTemplate($html){
$data['main_html'] = characterTruncation($html,'/<main\b[^>]*>(.*?)<\/main>/s');
$data['main_style'] = characterTruncation($html,'/<style id="globalsojs-styles">(.*?)<\/style>/s');
$common['head_html'] = characterTruncation($html,'/<header\b[^>]*>(.*?)<\/header>/s');
$common['footer_html'] = characterTruncation($html,'/<footer\b[^>]*>(.*?)<\/footer>/s');
$common['head_style'] = characterTruncation($html,'/<style id="globalsojs-header">(.*?)<\/style>/s');
$common['footer_style'] = characterTruncation($html,'/<style id="globalsojs-footer">(.*?)<\/style>/s');
$common['other_html'] = str_replace('<header', '', characterTruncation($html,'/<link id="google-fonts-link"(.*?)<header/s'));
//保存公共部门
ProjectServer::useProject($this->param['project_id']);
$common_info = DB::connection('custom_mysql')->table('gl_web_common_template')
->where('project_id', $this->param['project_id'])
->where('template_id', $this->param['template_id'])
->first();
$common['updated_at'] = date('Y-m-d H:i:s');
if(!$common){
$common['project_id'] = $this->param['project_id'];
$common['template_id'] = $this->param['template_id'];
$common['created_at'] = date('Y-m-d H:i:s');
DB::connection('custom_mysql')->table('gl_web_common_template')->insert($common);
}else{
DB::connection('custom_mysql')->table('gl_web_common_template')
->where('project_id', $this->param['project_id'])
->where('template_id', $this->param['template_id'])
->update($common);
}
//返回main
return $data;
}
}
... ...
... ... @@ -32,6 +32,7 @@ class NavRequest extends FormRequest
public function rules()
{
$rule = [
'group_id' => ['required','integer'],
'pid' => ['required','integer'],
'name' => ['required','max:100'],
];
... ... @@ -41,6 +42,8 @@ class NavRequest extends FormRequest
public function messages()
{
return [
'group_id.required' => '未定义菜单组',
'group_id.integer' => '菜单组错误',
'pid.required' => '上级选择错误',
'pid.gte' => '上级选择错误',
'pid.integer' => '上级选择错误',
... ...
<?php
namespace App\Models\Nav;
use App\Models\Base;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* Class BNavGroup
* @package App\Models\Nav
* @author zbj
* @date 2023/10/9
*/
class BNavGroup extends Base
{
protected $table = 'gl_web_nav_group';
//连接数据库
protected $connection = 'custom_mysql';
use SoftDeletes;
public $hidden = ['deleted_at'];
const DEFAULT_HEADER_ID = 1;
const DEFAULT_FOOTER_ID = 2;
}
... ...
<?php
namespace App\Models\Template;
use App\Models\Base;
class BCommonTemplate extends Base
{
protected $table = 'gl_web_common_template';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...