作者 lyh

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

... ... @@ -27,29 +27,19 @@ class TemplateController extends BaseController
*/
public function index(){
$lists = (new ATemplate)->lists($this->map,$this->page,$this->row,$this->order,['id','name','status','is_default','sort','thumb','url','created_at','updated_at']);
$lists = (new ATemplate)->lists(
$this->map,
$this->page,
$this->row,
$this->order,
['id','name','status','is_default','sort','thumb','url','created_at','updated_at']
);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* 编辑
* @author:dc
* @time 2023/5/4 16:19
*/
public function edit(TemplateRequest $request){
$this->save($request->validated());
}
/**
* 新增
* @author:dc
* @time 2023/5/5 9:30
*/
public function insert(TemplateRequest $request){
$this->save($request->validated());
}
/**
... ... @@ -61,9 +51,9 @@ class TemplateController extends BaseController
* @author:dc
* @time 2023/5/11 10:13
*/
private function save($data){
public function save(TemplateRequest $request){
TemplateLogic::instance()->save($data);
TemplateLogic::instance()->save($request->validated());
}
... ... @@ -95,7 +85,7 @@ class TemplateController extends BaseController
*/
public function html_index($template_id){
$lists = (new ATemplate)->list($this->map,$this->order,['id','name','status','is_default','sort','thumb','url','created_at','updated_at']);
$lists = (new ATemplateHtml)->list([['template_id','=',$template_id]],$this->order,['id','name','status','is_default','sort','thumb','url','created_at','updated_at']);
$this->response('success',Code::SUCCESS,$lists);
}
... ...
... ... @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Http\Logic\Bside\CustomLogic;
use App\Http\Requests\Bside\Custom\CustomRequest;
use App\Models\BCustom;
/**
... ... @@ -17,41 +19,6 @@ class CustomController extends BaseController
{
/**
* 验证规则
* @var array[]
*/
private $verify = [
'role' => [
'name' => ['required','max:100'],
'title' => ['required','max:200'],
'keywords' => ['required','max:200'],
'description' => ['required','max:250'],
// 'html' => ['required'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
],
'message' => [
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'title.required' => '网页标题必须',
'title.max' => '网页标题不能超过200个字符',
'keywords.required' => '网页关键字必须',
'keywords.max' => '网页关键字不能超过200个字符',
'description.required' => '网页描述必须',
'description.max' => '网页描述不能超过250个字符',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏'
],
'attr' => [
]
];
/**
* 列表数据
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
... ... @@ -64,40 +31,18 @@ class CustomController extends BaseController
$limit = intval($this->param['limit']??20);
$lists = BCustom::_all($this->user['project_id'],$limit)->toArray();
$lists = CustomLogic::instance()->getList(
[],
[],
['id','name','title','status','url','keywords','description','created_at','updated_at'],
$limit
);
return $this->success($lists);
}
/**
* 创建数据
* @author:dc
* @time 2023/5/8 16:39
*/
public function create(){
return $this->save();
}
/**
* 修改
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Validation\ValidationException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/8 17:06
*/
public function update(){
$this->verify['role']['id'] = ['required','integer','gt:0'];
$this->verify['message']['id.gt'] = $this->verify['message']['id.integer'] = $this->verify['message']['id.required'] = '编辑导航数据不存在';
return $this->save();
}
/**
* 新增修改
* @return \Illuminate\Http\JsonResponse
... ... @@ -107,17 +52,9 @@ class CustomController extends BaseController
* @author:dc
* @time 2023/5/8 17:06
*/
private function save(){
$data = $this->validate(request() ,$this->verify['role'],$this->verify['message']);
public function save(CustomRequest $request){
// 保存
$id = BCustom::_save($this->user['project_id'],$data,$data['id']??0);
if($id===-1){
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
return $this->success(BCustom::_find($this->user['project_id'],$id,true));
return $this->success(CustomLogic::instance()->save($request->validated()));
}
... ... @@ -127,18 +64,11 @@ class CustomController extends BaseController
* @author:dc
* @time 2023/5/9 9:20
*/
public function delete(){
$id = $this->param['id']??0;
$data = BCustom::_find($this->user['project_id'],$id);
if(empty($data)){
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
public function delete(CustomRequest $request){
CustomLogic::instance()->delete($request->validated()['id']);
if($data->delete()){
return $this->response('删除成功',Code::SUCCESS);
}
return $this->response('删除成功');
}
... ...
... ... @@ -4,9 +4,12 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Http\Logic\Bside\TemplateLogic;
use App\Http\Requests\Bside\TemplateRequest;
use App\Models\Template\ATemplate;
use App\Models\Template\ATemplateHtml;
use App\Models\Template\BSetting;
use App\Models\Template\BTemplate;
use App\Models\Template\BTemplateData;
use Illuminate\Validation\Rule;
... ... @@ -117,9 +120,10 @@ class TemplateController extends BaseController
$source = $this->param['source']??'';
$source_id = $this->param['source_id']??0;
$data = TemplateLogic::instance()->first($source,$source_id);
return $this->success();
return $this->response('',Code::SUCCESS,$data['html']);
}
... ... @@ -128,13 +132,38 @@ class TemplateController extends BaseController
* @author:dc
* @time 2023/5/11 11:00
*/
public function save_html(){
public function save_html(TemplateRequest $request){
$source = $this->param['source']??'';
$source_id = $this->param['source_id']??0;
$data = $request->validated();
$data['data_source'] = $data['source'];
$data['data_source_id'] = $data['source_id'];
unset($data['source']);
unset($data['source_id']);
TemplateLogic::instance()->save($data);
return $this->response('保存成功');
}
/**
* 状态修改
* @param TemplateRequest $request
* @return \Illuminate\Http\JsonResponse
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author:dc
* @time 2023/5/15 14:43
*/
public function status(TemplateRequest $request){
$data = $request->validated();
$html = $this->param['html']??'';
TemplateLogic::instance()->status($data['source'],$data['source_id'],$data['status']);
return $this->response('保存成功');
}
... ...
<?php
namespace App\Http\Logic\Bside;
use App\Helper\Arr;
use App\Models\BCustom;
use App\Models\Inquiry;
use App\Models\RouteMap;
/**
* 自定义页面
* @author:dc
* @time 2023/5/12 9:47
* Class CustomLogic
* @package App\Http\Logic\Bside
*/
class CustomLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new BCustom();
}
/**
* @param $param
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author:dc
* @time 2023/5/12 9:54
*/
public function save($param)
{
$id = parent::save($param);
$data = $this->getInfo($id['id']);
try {
RouteMap::setRoute($data['url'],RouteMap::SOURCE_CUSTOM,$data['id'],$this->user['project_id']);
}catch (\Throwable $e){
}
return $data;
}
/**
* 删除
* @param $ids
* @param array $map
* @return array|void
* @author:dc
* @time 2023/5/12 9:58
*/
public function delete($ids, $map = [])
{
parent::delete($ids, $map); // TODO: Change the autogenerated stub
// 删除路由
RouteMap::delRoute(RouteMap::SOURCE_CUSTOM,$ids,$this->user['project_id']);
}
}
... ...
<?php
namespace App\Http\Logic\Bside;
use App\Models\RouteMap;
use App\Models\Template\BTemplate;
/**
* @author:dc
* @time 2023/5/15 13:57
* Class TemplateLogic
* @package App\Http\Logic\Bside
*/
class TemplateLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new BTemplate();
}
/**
* @param $param
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author:dc
* @time 2023/5/12 9:54
*/
public function save($param)
{
// 查询
$data = $this->first($param['data_source'],$param['data_source_id']);
if($data){
$param['id'] = $data['id'];
}
parent::save($param);
}
/**
* 状态修改
* @param $source
* @param $source_id
* @param $status
* @return mixed
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author:dc
* @time 2023/5/15 14:41
*/
public function status($source,$source_id,$status){
$data = $this->first($source,$source_id);
if(!$data){
$this->fail('数据不存在');
}
$data->status = $status;
return $data->save();
}
/**
* @param $source
* @param $source_id
* @return mixed
* @author:dc
* @time 2023/5/15 14:49
*/
public function first($source,$source_id)
{
return $data = BTemplate::where([
'project_id'=>$this->user['project_id'],
'data_source' => $source,
'data_source_id' => $source_id,
])->first();
}
}
... ...
<?php
namespace App\Http\Requests\Bside\Custom;
use Illuminate\Foundation\Http\FormRequest;
/**
* @author:dc
* @time 2023/5/12 9:45
* Class CustomRequest
* @package App\Http\Requests\Bside\Custom
*/
class CustomRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rule = [
'name' => ['required','max:100'],
'title' => ['required','max:200'],
'keywords' => ['required','max:200'],
'description' => ['required','max:250'],
// 'html' => ['required'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
];
// 修改
if($this->is('b/custom/update')){
$rule['id'] = ['required','integer'];
}
// 删除
if($this->is('b/custom/delete')){
$rule = ['id' => ['required','integer']];
}
return $rule;
}
public function messages()
{
return [
'id.required' => '数据不存在',
'id.integer' => '数据不存在',
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'title.required' => '网页标题必须',
'title.max' => '网页标题不能超过200个字符',
'keywords.required' => '网页关键字必须',
'keywords.max' => '网页关键字不能超过200个字符',
'description.required' => '网页描述必须',
'description.max' => '网页描述不能超过250个字符',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏'
];
}
}
... ...
<?php
namespace App\Http\Requests\Bside;
use App\Models\Template\ATemplateHtml;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
/**
* @author:dc
* @time 2023/5/15 14:04
* Class TemplateRequest
* @package App\Http\Requests\Bside\Nav
*/
class TemplateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rule = [
'css' => [],
'script' => [],
'html' => ['required'],
'source' => ['required',Rule::in(array_column(ATemplateHtml::$sourceMap,'template'))],
'source_id' => ['required','integer','gte:0'],
'status' => ['required',Rule::in([0,1])]
];
// 删除
if(!$this->is('b/template/status')){
unset($rule['css']);
unset($rule['script']);
unset($rule['html']);
}
return $rule;
}
public function messages()
{
return [
'html.required' => '自定义内容必须',
'source.required' => '数据错误',
'source.in' => '数据错误',
'source_id.required' => '数据错误',
'source_id.integer' => '数据错误',
'source_id.gte' => '数据错误',
'status.required' => '状态错误',
'status.in' => '状态错误',
];
}
}
... ...
... ... @@ -32,78 +32,7 @@ class BCustom extends Base
const STATUS_DISABLED = 0;
/**
* 创建或者新增导航栏
* @param int $project_id
* @param array $data
* @param int $id
* @return int
* @author:dc
* @time 2023/5/8 16:24
*/
public static function _save(int $project_id, array $data, int $id = 0):int {
if($id){
$model = static::where('id',$id)->where('project_id', $project_id)->first();
if(!$model){
return -1;
}
}else{
$model = new static();
$model->project_id = $project_id;
}
$model->name = $data['name'];
$model->title = $data['title'];
$model->keywords = $data['keywords'];
$model->description = $data['description'];
$model->url = $data['url'];
$model->status = $data['status'];
$model->html = $data['html']??'';
$model->save();
// 创建路由标识
try {
RouteMap::setRoute($model->url,RouteMap::SOURCE_CUSTOM,$model->id,$project_id);
}catch (\Throwable $e){
}
return $model->id;
}
/**
* 删除
* @param int $project_id
* @param int $id
* @return mixed
* @author:dc
* @time 2023/5/8 16:27
*/
public static function _del(int $project_id, int $id){
return static::where(['project_id'=>$project_id,'id'=>$id])->delete();
}
/**
* 查询当前项目下的所有信息
* @param int $project_id
* @return mixed
* @author:dc
* @time 2023/5/8 16:29
*/
public static function _all(int $project_id, int $limit = 20)
{
return static::where(function ($query) use ($project_id){
// 那个公司
$query->where('project_id',$project_id);
})
->select(['id','name','title','status','url','keywords','description','created_at','updated_at'])
->paginate($limit);
}
/**
* 查询一条数据
... ...
... ... @@ -32,52 +32,6 @@ class BNav extends Base
const STATUS_DISABLED = 0;
/**
* 创建或者新增导航栏
* @param int $project_id
* @param array $data
* @param int $id
* @return int
* @author:dc
* @time 2023/5/8 16:24
*/
public static function _save(int $project_id, array $data, int $id = 0):int {
if($id){
$model = static::where('id',$id)->where('project_id', $project_id)->first();
if(!$model){
return -1;
}
}else{
$model = new static();
$model->project_id = $project_id;
}
$model->pid = $data['pid'];
$model->name = $data['name'];
$model->location = $data['location'];
$model->url = $data['url'];
$model->status = $data['status'];
$model->target = $data['target'];
$model->sort = $data['sort'];
$model->save();
return $model->id;
}
/**
* 删除
* @param int $project_id
* @param int $id
* @return mixed
* @author:dc
* @time 2023/5/8 16:27
*/
public static function _del(int $project_id, int $id){
return static::where(['project_id'=>$project_id,'id'=>$id])->delete();
}
/**
* 查询当前项目下的所有栏目信息
... ... @@ -98,36 +52,8 @@ class BNav extends Base
->get();
}
/**
* 查询一条数据
* @param int $project_id
* @param int $id
* @return mixed
* @author:dc
* @time 2023/5/8 17:04
*/
public static function _find(int $project_id, int $id, $array = false)
{
$data = static::where(['id'=>$id,'project_id'=>$project_id])->first();
if($data){
return $array ? $data->toArray() : $data;
}
return [];
}
/**
* 是否存在
* @param int $project_id
* @param int $id
* @return mixed
* @author:dc
* @time 2023/5/8 17:24
*/
public static function _check(int $project_id, int $id)
{
return static::where(['id'=>$id,'project_id'=>$project_id])->count();
}
/**
* 是否有下级
... ...
... ... @@ -127,8 +127,8 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
// 自定义页面 模板,头部底部
Route::prefix('template')->group(function () {
Route::get('/', [\App\Http\Controllers\Aside\TemplateController::class, 'index'])->name('admin.template');
Route::post('/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'edit'])->name('admin.template_edit');
Route::post('/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'insert'])->name('admin.template_insert');
Route::post('/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'save'])->name('admin.template_edit');
Route::post('/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'save'])->name('admin.template_insert');
Route::delete('/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'delete'])->where('id','\d+')->name('admin.template_delete');
Route::get('/html/{template_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_index'])->where('template_id','\d+')->name('admin.template.html');
... ...
... ... @@ -233,15 +233,17 @@ Route::middleware(['bloginauth'])->group(function () {
Route::get('/get_type', [\App\Http\Controllers\Bside\TemplateController::class, 'get_type'])->name('bside_template_type');
Route::get('/get_html', [\App\Http\Controllers\Bside\TemplateController::class, 'get_html'])->name('bside_template_get_html');
Route::get('/save_html', [\App\Http\Controllers\Bside\TemplateController::class, 'save_html'])->name('bside_template_save_html');
Route::get('/status', [\App\Http\Controllers\Bside\TemplateController::class, 'status'])->name('bside_template_status');
});
// 自定义页面,专题页
Route::prefix('custom')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\CustomController::class, 'index'])->name('bside_custom');
Route::post('/create', [\App\Http\Controllers\Bside\CustomController::class, 'create'])->name('bside_custom_create');
Route::post('/update', [\App\Http\Controllers\Bside\CustomController::class, 'update'])->name('bside_custom_update');
Route::post('/create', [\App\Http\Controllers\Bside\CustomController::class, 'save'])->name('bside_custom_create');
Route::post('/update', [\App\Http\Controllers\Bside\CustomController::class, 'save'])->name('bside_custom_update');
Route::delete('/delete', [\App\Http\Controllers\Bside\CustomController::class, 'delete'])->name('bside_custom_delete');
Route::any('/html/{id}', [\App\Http\Controllers\Bside\CustomController::class, 'html'])->where('id','\d+')->name('bside_custom_delete');
});
// 导航栏编辑
Route::prefix('nav')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\NavController::class, 'index'])->name('bside_nav');
... ...