作者 赵彬吉

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

正在显示 56 个修改的文件 包含 1237 行增加246 行删除
... ... @@ -44,19 +44,11 @@ class Demo extends Command
*/
public function handle()
{
//切换数据库配置
$project = ProjectServer::useProject(1);
//创建数据库
ProjectServer::createDatabase($project);
//创建表
ProjectServer::initTable($project);
preg_match_all("/\@include\(\"([a-z0-9_]+)\"\)/i",'
@include("asdf")@include("")@include("asdtrw2erf")
',$include);
dd(1);
$sql = 'CREATE DATABASE database_name;';
$results = DB::select($sql);
dd($results);
return true;
print_r($include);
}
public function printMessage()
... ... @@ -97,4 +89,4 @@ class Demo extends Command
}
dd(1);
}
}
\ No newline at end of file
}
... ...
... ... @@ -146,6 +146,71 @@ if (!function_exists('checkDomain')) {
}
}
/**
* 把返回的数据集转换成Tree
* @param $list array 数据列表
* @param string|int $pk 主键|root
* @param string $pid 父id
* @param string $child 子键
* @param int $root 获取哪个id下面
* @param bool $empty_child 当子数据不存在,是否要返回空子数据
* @return array
*/
function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0,$empty_child=true) {
// 如果是数字,则是root
if(is_numeric($pk)){
$root = $pk;
$pk = 'id';
}
// 创建Tree
$tree = array();
if(is_array($list)) {
// 创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
if($empty_child){
$list[$key][$child] = [];
}
$refer[$data[$pk]] =& $list[$key];
}
foreach ($list as $key => $data) {
// 判断是否存在parent
$parentId = $data[$pid];
if ($root == $parentId) {
$tree[] =& $list[$key];
}else{
if (isset($refer[$parentId])) {
$refer[$parentId][$child][] = & $list[$key];
}
}
}
}
return $tree;
}
/**
* tree数据转list
* @param $tree
* @param string $child
* @return array
* @author:dc
* @time 2022/1/11 10:13
*/
function tree_to_list($tree, $child='_child'){
$lists = [];
foreach ($tree as $item){
$c = $item[$child]??[];
unset($item[$child]);
$lists[] = $item;
if ($c){
$lists = array_merge($lists,tree_to_list($c, $child));
}
}
return $lists;
}
if (!function_exists('getThisWeekStarDate')) {
/**
* 获取本周一的日期
... ...
... ... @@ -32,8 +32,8 @@ class AiCommandController extends BaseController
* @author :liyuhang
* @method
*/
public function info(Request $request,AiCommandLogic $aiCommandLogic){
$request->validate([
public function info(AiCommandLogic $aiCommandLogic){
$this->request->validate([
'id'=>'required'
],[
'id.required' => 'ID不能为空'
... ...
... ... @@ -4,6 +4,8 @@ namespace App\Http\Controllers\Aside;
use App\Enums\Common\Code;
use App\Http\Controllers\Controller;
use App\Http\Requests\Aside\Template\TemplateRequest;
use App\Http\Requests\Scene;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Exceptions\HttpResponseException;
... ... @@ -155,4 +157,21 @@ class BaseController extends Controller
}
return $data;
}
/**
* 验证
* @param $c
* @param $scene
* @return array
* @author:dc
* @time 2023/5/11 14:56
*/
protected final function verify($c,$scene=null){
return app($c)->setScene($scene?:Scene::$CREATE)->validated();
}
}
... ...
... ... @@ -2,7 +2,13 @@
namespace App\Http\Controllers\Aside;
use App\Models\Template\AHeadFoot;
use App\Enums\Common\Code;
use App\Http\Logic\Aside\Template\TemplateLogic;
use App\Http\Requests\Aside\Template\TemplateRequest;
use App\Http\Requests\Scene;
use App\Models\Template\ATemplate;
use App\Models\Template\ATemplateHtml;
use Illuminate\Validation\Rule;
/**
* 模板
... ... @@ -22,21 +28,8 @@ class TemplateController extends BaseController
*/
public function index(){
$data = AHeadFoot::all();
$lists = [];
// 以名字为单位区分
foreach ($data as $datum){
if(empty($lists[$datum['name']])) $lists[$datum['name']] = [];
$lists[$datum['name']]['name'] = $datum['name'];
$lists[$datum['name']]['default'] = $datum['is_default'];
$lists[$datum['name']]['sort'] = $datum['sort'];
$lists[$datum['name']]['status'] = $datum['status'];
$lists[$datum['name']]['created_at'] = $datum['created_at'];
// $lists[$datum['name']]['tags'] = $datum['tags'];
$lists[$datum['name']][$datum['type']==AHeadFoot::TYPE_HEADER?'header':'footer'] = $datum['html'];
}
return $this->success($lists);
$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);
}
... ... @@ -47,7 +40,7 @@ class TemplateController extends BaseController
* @time 2023/5/4 16:19
*/
public function edit(){
$this->save(Scene::$UPDATE);
}
/**
... ... @@ -56,12 +49,134 @@ class TemplateController extends BaseController
* @time 2023/5/5 9:30
*/
public function insert(){
$this->save(Scene::$CREATE);
}
/**
* @param false $is_edit
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Validation\ValidationException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/11 10:13
*/
private function save($scene){
$data = $this->verify(TemplateRequest::class,$scene);
TemplateLogic::instance()->save($data);
}
/**
* 删除
* @author:dc
* @time 2023/5/4 17:10
*/
public function delete($id){
if(ATemplate::destroy($id)){
return $this->response('删除成功');
}
return $this->response('删除失败',Code::SYSTEM_ERROR);
}
/**
* 列表
* @author:dc
* @time 2023/5/4 17:10
*/
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']);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* 编辑
* @author:dc
* @time 2023/5/4 16:19
*/
public function html_edit($template_id){
$this->html_save($template_id,true);
}
/**
* 新增
* @author:dc
* @time 2023/5/5 9:30
*/
public function html_insert($template_id){
$this->html_save($template_id);
}
/**
* @param false $is_edit
* @return \Illuminate\Http\JsonResponse
* @throws \Illuminate\Validation\ValidationException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/11 10:13
*/
private function html_save($template_id,$is_edit=false){
$verify = [
'role' => [
'id' => ['required','integer'],
// 'template_id' => ['required','integer'],
'name' => ['required'],
'type' => ['required',Rule::in(ATemplateHtml::$typeMap)],
'css' => [],
'script' => [],
'html' => ['required'],
],
'message' => [
'id.required' => 'id必须',
'id.integer' => 'id必须',
// 'template_id.required' => '模板选择错误',
// 'template_id.integer' => '模板选择错误',
'name.required' => '名称必须',
'type.required' => '页面类型选择错误',
'type.in' => '页面类型选择错误',
'html.required' => 'html 代码必须',
]
];
if(!$is_edit) unset($verify['role']['id']);
$data = $this->validate(request() ,$verify['role'],$verify['message']);
private function save($name = ''){
// 保存
$id = ATemplateHtml::_save($template_id,$data,$data['id']??0);
if(!$id){
return $this->response('保存失败',Code::SYSTEM_ERROR);
}
return $this->success(ATemplateHtml::_find($id));
}
... ... @@ -70,12 +185,28 @@ class TemplateController extends BaseController
* @author:dc
* @time 2023/5/4 17:10
*/
public function delete(){
public function html_delete($template_id, $id){
if(ATemplateHtml::where('template_id',$template_id)->where('id',$id)->delete()){
return $this->response('删除成功');
}
return $this->response('删除失败',Code::SYSTEM_ERROR);
}
/**
* 页面类型
* @return \Illuminate\Http\JsonResponse
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
* @author:dc
* @time 2023/5/11 10:29
*/
public function html_type(){
return $this->success(ATemplateHtml::$typeMap);
}
... ...
... ... @@ -6,9 +6,10 @@ use App\Enums\Common\Code;
use App\Helper\AyrShare as AyrShareHelper;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Controllers\Bside\FileController;
use App\Http\Controllers\file\ImageController;
use App\Http\Controllers\File\ImageController;
use App\Http\Logic\Bside\AyrShare\AyrReleaseLogic;
use App\Http\Logic\Bside\AyrShare\AyrShareLogic;
use App\Http\Requests\Bside\AyrRelease\AyrReleaseRequest;
use App\Models\File\Image;
use App\Models\File\Image as ImageModel;
... ... @@ -43,6 +44,11 @@ class AyrReleaseController extends BaseController
* @time :2023/5/9 16:00
*/
public function share_info(AyrShareLogic $ayrShareLogic){
$this->request->validate([
'share_id'=>['required']
],[
'share_id.required' => 'SHARE_ID不能为空'
]);
$info = $ayrShareLogic->ayr_share_info();
$this->response('success',Code::SUCCESS,$info);
}
... ... @@ -52,7 +58,10 @@ class AyrReleaseController extends BaseController
* @method :post
* @time :2023/5/9 9:36
*/
public function send_post(AyrReleaseLogic $ayrReleaseLogic,AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
public function send_post(AyrReleaseRequest $ayrReleaseRequest,AyrReleaseLogic $ayrReleaseLogic,
AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
$ayrReleaseRequest->validated();
//验证发送平台
//获取发送账号详情
$share_info = $ayrShareLogic->ayr_share_info();
$data = [
... ... @@ -82,21 +91,26 @@ class AyrReleaseController extends BaseController
* @time :2023/5/10 14:07
*/
public function send_media(AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
$this->request->validate([
'share_id'=>['required'],
'hash'=>['required']
],[
'share_id.required' => 'SHARE_ID不能为空',
'hash.required' => 'HASH不能为空'
]);
$image_info = $ayrShareLogic->save_img_info($this->param['hash']);
if(empty($image_info['ayr_id'])){
//获取发送账号详情
$share_info = $ayrShareLogic->ayr_share_info();
//获取当前图片数据是否已上传到第三方
$arr = (new ImageController())->index($this->param['hash']);
//向第三方存储图片
$param = [
'file'=>($arr->original),//base64编码
'file'=>$ayrShareLogic->base_img_content($this->param['hash']),//base64编码
];
$param_data = $ayrShare->post_media_upload($param,$share_info['profile_key']);
//更新图片库
$ayrShareLogic->save_img($param_data);
}
$this->response('success');
$this->response('success',Code::SUCCESS,$image_info);
}
/**
... ... @@ -106,15 +120,20 @@ class AyrReleaseController extends BaseController
* @time :2023/5/10 14:07
*/
public function send_media_file(AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
$this->request->validate([
'share_id'=>['required'],
'hash'=>['required']
],[
'share_id.required' => 'SHARE_ID不能为空',
'hash.required' => 'HASH不能为空'
]);
$image_info = $ayrShareLogic->save_file_info($this->param['hash']);
if(empty($image_info['ayr_id'])){
//获取发送账号详情
$share_info = $ayrShareLogic->ayr_share_info();
//获取当前图片数据是否已上传到第三方
$arr = (new FileController())->index($this->param['hash']);
//向第三方存储图片
$param = [
'file'=>($arr->original),//base64编码
'file'=>$ayrShareLogic->base_img_content($this->param['hash']),//base64编码
];
$param_data = $ayrShare->post_media_upload($param,$share_info['profile_key']);
//更新图片库
... ...
... ... @@ -6,6 +6,7 @@ use App\Enums\Common\Code;
use App\Helper\AyrShare as AyrShareHelper;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\AyrShare\AyrShareLogic;
use App\Http\Requests\Bside\AyrShare\AyrShareRequest;
use App\Models\AyrShare\AyrShare as AyrShareModel;
/**
... ... @@ -36,6 +37,11 @@ class AyrShareController extends BaseController
* @time :2023/5/9 14:39
*/
public function save_account(AyrShareLogic $ayrShareLogic){
$this->request->validate([
'share_id'=>['required'],
],[
'share_id.required' => 'SHARE_ID不能为空',
]);
$info = $ayrShareLogic->ayr_share_info();
$ayrShareHelper = new AyrShareHelper();
$share_info = $ayrShareHelper->get_profiles_users($info['profile_key']);
... ... @@ -55,7 +61,8 @@ class AyrShareController extends BaseController
* @method :post
* @time :2023/5/5 16:44
*/
public function create_account(AyrShareLogic $ayrShareLogic){
public function create_account(AyrShareRequest $ayrShareRequest,AyrShareLogic $ayrShareLogic){
$ayrShareRequest->validated();
$param = [
'title'=>self::TITLE.$this->user['project_id'].':'.$this->param['name'],
];
... ...
... ... @@ -5,11 +5,14 @@ namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Helper\Common;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bside\Nav\NavRequest;
use App\Http\Requests\Scene;
use App\Models\User\User as UserModel;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Validator;
class BaseController extends Controller
{
... ... @@ -207,4 +210,5 @@ class BaseController extends Controller
}
}
... ...
... ... @@ -26,7 +26,7 @@ class CustomController extends BaseController
'title' => ['required','max:200'],
'keywords' => ['required','max:200'],
'description' => ['required','max:250'],
'html' => ['required'],
// 'html' => ['required'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
],
... ... @@ -114,7 +114,7 @@ class CustomController extends BaseController
$id = BCustom::_save($this->user['project_id'],$data,$data['id']??0);
if($id===-1){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
return $this->success(BCustom::_find($this->user['project_id'],$id,true));
... ... @@ -132,7 +132,7 @@ class CustomController extends BaseController
$data = BCustom::_find($this->user['project_id'],$id);
if(empty($data)){
return $this->response('数据不存在','B_CUSTOM_NOTFOUND');
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
... ... @@ -144,5 +144,33 @@ class CustomController extends BaseController
/**
* @param $id
* @return \Illuminate\Http\JsonResponse
* @author:dc
* @time 2023/5/10 14:10
*/
public function html($id)
{
$data = BCustom::_find($this->user['project_id'],$id);
if(!$data){
return $this->response('数据不存在',Code::SYSTEM_ERROR);
}
if($this->isPost()){
$html = $this->param['html']??'';
$data->html = $html;
$data->save();
}
return $this->response('',Code::SUCCESS,$data['html']);
}
}
... ...
... ... @@ -119,14 +119,14 @@ class NavController extends BaseController
// 验证是否存在上级
$all = BNav::_all($this->user['project_id'],$data['location']);
if(!$all->where('id',$data['pid'])->count()){
return $this->response('上级栏目不存在','B_NAV_PID_NOTFOUND');
return $this->response('上级栏目不存在',Code::SYSTEM_ERROR);
}
// 上级不允许是自己的下级
if(!empty($data['id'])){
$all = list_to_tree($all->toArray(),$data['id']);
$all = tree_to_list($all);
if(in_array($data['pid'],array_column($all,'id'))){
return $this->response('上级栏目不允许为本身的下级','B_NAV_PID_IS_CHILD');
return $this->response('上级栏目不允许为本身的下级',Code::SYSTEM_ERROR);
}
}
}
... ... @@ -135,7 +135,7 @@ class NavController extends BaseController
$id = BNav::_save($this->user['project_id'],$data,$data['id']??0);
if($id===-1){
return $this->response('导航菜单不存在','B_NAV_NOTFOUND');
return $this->response('导航菜单不存在',Code::SYSTEM_ERROR);
}
return $this->success(BNav::_find($this->user['project_id'],$id,true));
... ... @@ -153,12 +153,12 @@ class NavController extends BaseController
$data = BNav::_find($this->user['project_id'],$id);
if(empty($data)){
return $this->response('导航菜单不存在','B_NAV_NOTFOUND');
return $this->response('导航菜单不存在',Code::SYSTEM_ERROR);
}
if(BNav::isChild($data['id'],$this->user['project_id'])){
return $this->response('存在下级无法删除','B_NAV_DELETE_CHILD');
return $this->response('存在下级无法删除',Code::SYSTEM_ERROR);
}
... ... @@ -176,22 +176,22 @@ class NavController extends BaseController
public function urls(){
// todo::需要配合 c端来
return $this->success([
[
'url' => '/',
'name' => '首页'
],
[
'url' => '/list',
'name' => '列表'
],
[
'url' => '/page',
'name' => '单页'
],
[
'url' => 'goods',
'name' => '商品'
],
[
'url' => '/',
'name' => '首页'
],
[
'url' => '/list',
'name' => '列表'
],
[
'url' => '/page',
'name' => '单页'
],
[
'url' => '/goods',
'name' => '商品'
],
]);
}
... ...
... ... @@ -3,8 +3,12 @@
namespace App\Http\Controllers\Bside;
use App\Enums\Common\Code;
use App\Models\Template\ATemplate;
use App\Models\Template\ATemplateHtml;
use App\Models\Template\BSetting;
use App\Models\Template\BTemplateData;
use Illuminate\Validation\Rule;
/**
... ... @@ -53,7 +57,7 @@ class TemplateController extends BaseController
if($template_id && ATemplate::_bFind($template_id)){
BSetting::_save($this->user['project_id'],$template_id);
}else{
return $this->response('无法使用不存在的模板','B_TEMPLATE_NOTFOUND');
return $this->response('无法使用不存在的模板',Code::SYSTEM_ERROR);
}
}
... ... @@ -71,5 +75,110 @@ class TemplateController extends BaseController
}
/**
* 保存模板
* @author:dc
* @time 2023/5/10 10:53
*/
public function save(){
$html = '<header id="globalso-header" class="web_head sticky-top py-1 py-md-0" style="background-color: #318fff;">asdf</header>';
// 替换 header
$html = preg_replace("/<header(.*)id=\"globalso-header\"(.*)>([\s\S]*)<\/header>/iU",'',$html);
$html = preg_replace("/<main(.*)id=\"globalso-main\"(.*)>([\s\S]*)<\/main>/iU",'',$html);
$html = preg_replace("/<footer(.*)id=\"globalso-footer\"(.*)>([\s\S]*)<\/footer>/iU",'',$html);
}
/**
* 数据源
* @return \Illuminate\Http\JsonResponse
* @author:dc
* @time 2023/5/11 10:47
*/
public function get_type(){
return $this->success(ATemplateHtml::$sourceMap);
}
/**
* 获取 编辑html
* @author:dc
* @time 2023/5/11 9:33
*/
public function get_html(){
$source = $this->param['source']??'';
$source_id = $this->param['source_id']??0;
return $this->success();
}
/**
* 保存
* @author:dc
* @time 2023/5/11 11:00
*/
public function save_html(){
$source = $this->param['source']??'';
$source_id = $this->param['source_id']??0;
$html = $this->param['html']??'';
}
/**
* 自定义块
* @author:dc
* @time 2023/5/10 14:55
*/
public function customChunk(){
$html = $this->param['html']??[];
// 那个页面 的
$type = $this->param['type']??'';
if(!is_array($html)){
return $this->response('参数异常',Code::SYSTEM_ERROR);
}
// 项目id
$project_id = $this->user['project_id'];
// 当前模板
$template_id = BSetting::_get($project_id)['template_id'];
// 验证这个模板是否存在
if(!$type || !ATemplateHtml::_typeExist($template_id,$type)){
return $this->response('页面类型错误',Code::SYSTEM_ERROR);
}
$html = view("template.{$template_id}.{$type}")->render();
return $this->response('',Code::SUCCESS,$html);
// $data = BTemplateData::_insert();
}
}
... ...
<?php
namespace App\Http\Controllers\file;
namespace App\Http\Controllers\File;
use App\Enums\Common\Code;
use App\Models\File\File;
... ...
<?php
namespace App\Http\Controllers\file;
namespace App\Http\Controllers\File;
use App\Enums\Common\Code;
use App\Http\Controllers\type;
use App\Http\Controllers\统一返回参数;
use App\Models\File\Image as ImageModel;
use App\Models\User\User as UserModel;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Storage;
... ... @@ -43,7 +41,16 @@ class ImageController
$this->path = $this->config['root'].$this->uploads['path'].'/';
}
public function index($hash = '',$type = self::TYPE, $w = 0 ,$h = 0 ){
/**
* @param $hash
* @param $w
* @param $h
* @name :index
* @author :lyh
* @method :post
* @time :2023/5/11 17:19
*/
public function index($hash = '', $w = 0 ,$h = 0 ){
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
header("HTTP/1.1 304 Not Modified");
exit;
... ... @@ -54,14 +61,13 @@ class ImageController
$this->response('指定图片不存在!', Code::USER_ERROR);
}
//查看缩略图是否存在
// $header['Content-Type'] = 'image/'.$info['type'];
$filename = $this->path . $info['hash'] . $w . '_' . $h;
if(is_file($filename)){
$last_modified_time = gmdate(time() + ((30 * 60 * 60 * 24))) . " GMT";
$header = str_replace(['%Expires%', "%etag%", '%Last-Modified%'],
[$last_modified_time, $hash . ':' . $w . '_' . $h . '_' . 2, $last_modified_time], $this->upload_img['header']);
[$last_modified_time, $hash . ':' . $w . '_' . $h . '_' . 1, $last_modified_time], $this->upload_img['header']);
$content = file_get_contents($filename);
$header['Content-Length'] = $info['size'];
$header['Content-Length'] = strlen($content);
}else{
$path = $info['path'];
if (!is_file($path)) {
... ... @@ -70,25 +76,18 @@ class ImageController
$content = '';
$last_modified_time = gmdate(time() + ((30 * 60 * 60 * 24))) . " GMT";
$header = str_replace(['%Expires%', "%etag%", '%Last-Modified%'],
[$last_modified_time, $hash . ':' . $w . '_' . $h . '_' . 2, $last_modified_time], $this->upload_img['header']);
[$last_modified_time, $hash . ':' . $w . '_' . $h . '_' . 1, $last_modified_time], $this->upload_img['header']);
if ($w > 0 && $h > 0) {
$path = $this->cacheImage($info, $w, $h);
$content = file_get_contents($path);
$header['Content-Length'] = strlen($content);
} else {
$content = file_get_contents($path);
$header['Content-Length'] = $info['size'];
$header['Content-Length'] = strlen($content);
}
}
$img_type = $info['type'];
$content = base64_encode($content);
$img_base64 = 'data:image/' . $img_type . ';base64,' . $content;
if($type != self::TYPE){
header('Content-Type: image/' . $img_type);
echo base64_decode($content);
exit;
}
return response($img_base64,200,$header);
$header['Content-Type'] = 'image/'.$info['type'];
return response($content,200,$header);
}
/**
... ...
... ... @@ -26,4 +26,5 @@ class BaseLogic extends Logic
$this->user = Session::get('manage');
}
}
... ...
... ... @@ -51,6 +51,7 @@ class LoginLogic extends BaseLogic
public static function manage($field = ''){
$manage = Session::get('manage');
$manage = Manage::find(1)->toArray();
if($field){
return $manage[$field] ?? '';
}
... ...
<?php
namespace App\Http\Logic\Aside\Template;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Template\ATemplate;
/**
* @author:dc
* @time 2023/5/11 14:35
* Class TemplateLogic
* @package App\Http\Logic\Aside\Template
*/
class TemplateLogic extends BaseLogic {
public function __construct()
{
parent::__construct();
$this->model = new ATemplate();
}
}
... ...
... ... @@ -69,102 +69,8 @@ class AyrReleaseLogic extends BaseLogic
return $this->success($arr);
}
/**
* @name :(发布到推特)post_twitter
* @author :lyh
* @method :post
* @time :2023/5/9 13:42
*/
public function post_twitter($param){
$param['post'] = '描述';
$param['platforms'] = ['twitter'];
$param['twitterOptions'] = [
'thread'=> true,
'threadNumber'=> true,
'mediaUrls'=>[
//图片地址
],
];
return $this->success($param);
}
/**
* @name :(发布到youtube)post_facebook
* @author :lyh
* @method :post
* @time :2023/5/9 10:05
*/
public function post_facebook(){
$param['post'] = '视频描述';
$param['platforms'] = ['facebook'];
$param['faceBookOptions'] = [
'reels'=> true,
'title'=>'Super title for the Reel'
];
return $this->success($param);
}
/**
* @name :(发布到fbg,)post_youtube
* @author :lyh
* @method :post
* @time :2023/5/9 10:22
* @TODO::只能发布一张图片和一张视频
*/
public function post_gmb(){
$param['post'] = '描述';
$param['platforms'] = ['gmb'];
$param['mediaUrls'] = [];//图片链接
$param['gmbOptions'] = [
//视屏设置
'isPhotoVideo' => true,
'category'=> 'cate',//分类
];
return $this->success($param);
}
/**
* @name :(发布到instagram)post_google
* @author :lyh
* @method :post
* @time :2023/5/9 11:54
*/
public function post_instagram(){
$param['post'] = '视频描述';
$param['platforms'] = ['instagram'];
$param['faceBookOptions'] = [
'reels'=> true,
'title'=>'Super title for the Reel'
];
return $this->success();
}
/**
* @name :(领英)post_linkedin
* @author :lyh
* @method :post
* @time :2023/5/9 11:56
*/
public function post_linkedin(){
return $this->success();
}
/**
* @name :(红迪网)post_reddit
* @author :lyh
* @method :post
* @time :2023/5/9 13:40
*/
public function post_reddit(){
return $this->success();
}
/**
* @name :(抖音)post_tiktok
* @author :lyh
* @method :post
* @time :2023/5/9 13:44
*/
public function post_tiktok(){
public function platforms_request(){
}
}
... ...
... ... @@ -94,7 +94,7 @@ class AyrShareLogic extends BaseLogic
if($info === false){
$this->fail('error');
}
return $this->success();
return $this->success($info);
}
/**
... ... @@ -109,7 +109,7 @@ class AyrShareLogic extends BaseLogic
if($info === false){
$this->fail('error');
}
return $this->success();
return $this->success($info);
}
/**
... ... @@ -134,6 +134,24 @@ class AyrShareLogic extends BaseLogic
}
/**
* @name :(获取图片的base64)base_img_content
* @author :lyh
* @method :post
* @time :2023/5/12 9:28
*/
public function base_img_content($hash){
$imageModel = new ImageModel();
$info = $imageModel->read(['hash'=>$hash]);
if($info === false){
$this->fail('当前数据不存在');
}
$content = file_get_contents($info['path']);
$img_type = $info['type'];
$content = base64_encode($content);
$img_base64 = 'data:image/' . $img_type . ';base64,' . $content;
return $img_base64;
}
/**
* @name :(更新文件库)save_img
* @author :lyh
* @method :post
... ...
... ... @@ -3,10 +3,12 @@
namespace App\Http\Logic\Bside;
use App\Enums\Common\Code;
use App\Enums\Common\Common;
use App\Exceptions\BsideGlobalException;
use App\Http\Controllers\file\ImageController;
use App\Http\Controllers\File\ImageController;
use App\Http\Logic\Logic;
use App\Models\File\Image as ImageModel;
use Illuminate\Support\Facades\Cache;
/**
... ... @@ -99,9 +101,35 @@ class BaseLogic extends Logic
* @method
*/
public function upload(){
$image = new ImageController();
$data = $image->upload();
return $data['data']['image'];
$files = $this->request->file('image');
$hash = hash_file('md5', $files->getPathname());
//查看文件是否存在
$imageModel = new ImageModel();
$image_hash = $imageModel->read(['hash'=>$hash]);
if($image_hash !== false){
return $hash;
}
$this->config = config('filesystems.disks.upload');
$this->uploads = config('upload.default_image');
$this->path = $this->config['root'].$this->uploads['path'].'/';
$url = $this->path;
$fileName = uniqid().rand(10000,99999).'.'.$files->getClientOriginalExtension();
$res = $files->move($url,$fileName);
if ($res === false) {
return false;
}
$data = [
'path' => $url.$fileName,
'created_at' => date('Y-m-d H:i:s',time()),
'size' => $res->getSize(),
'hash' => $hash,
'type'=>$files->getClientOriginalExtension(),
];
$rs = $imageModel->add($data);
if ($rs === false) {
return false;
}
return $hash;
}
/**
... ...
... ... @@ -67,6 +67,7 @@ class BlogLogic extends BaseLogic
$this->param['project_id'] = $this->user['project_id'];
$this->param['created_at'] = date('Y-m-d H:i:s',time());
$this->param['updated_at'] = date('Y-m-d H:i:s',time());
$this->param['category_id'] = ','.$this->param['category_id'].',';
DB::beginTransaction();
try {
if(isset($this->param['image'])){
... ... @@ -100,6 +101,7 @@ class BlogLogic extends BaseLogic
$this->fail('当前名称已存在');
}
$this->param['operator_id'] = $this->user['id'];
$this->param['category_id'] = ','.trim($this->param['category_id'],',').',';
DB::beginTransaction();
try {
//是否有图片更新
... ...
<?php
namespace App\Http\Logic\Bside;
use App\Helper\Arr;
use App\Models\BNav;
use App\Models\Inquiry;
/**
* @author:dc
* @time 2023/5/11 16:51
* Class NavLogic
* @package App\Http\Logic\Bside
*/
class NavLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new BNav();
}
/**
* @param $ids
* @return array
* @throws \App\Exceptions\AsideGlobalException
* @throws \App\Exceptions\BsideGlobalException
* @author:dc
* @time 2023/5/11 16:59
*/
public function delete($ids,$map = [])
{
if(BNav::isChild($ids,$this->user['project_id'])){
$this->fail('存在下级无法删除','B_NAV_DELETE_CHILD');
}
return parent::delete($ids,$map); // TODO: Change the autogenerated stub
}
}
... ...
... ... @@ -59,6 +59,7 @@ class NewsLogic extends BaseLogic
$this->param['project_id'] = $this->user['project_id'];
$this->param['created_at'] = date('Y-m-d H:i:s',time());
$this->param['updated_at'] = date('Y-m-d H:i:s',time());
$this->param['category_id'] = ','.trim($this->param['category_id'],',').',';
DB::beginTransaction();
try {
if(isset($this->param['image'])){
... ... @@ -91,6 +92,7 @@ class NewsLogic extends BaseLogic
$this->fail('当前名称已存在');
}
$this->param['operator_id'] = $this->user['id'];
$this->param['category_id'] = ','.trim($this->param['category_id'],',').',';
DB::beginTransaction();
try {
//上传图片
... ... @@ -99,7 +101,7 @@ class NewsLogic extends BaseLogic
}
//设置路由
RouteMap::setRoute($this->param['url'], RouteMap::SOURCE_NEWS, $this->param['id'], $this->user['project_id']);
$this->model->edit($this->param,['id'=>$this->param['id']]);
$this->edit($this->param,['id'=>$this->param['id']]);
DB::commit();
}catch (\exception $e){
DB::rollBack();
... ...
... ... @@ -3,7 +3,7 @@
namespace App\Http\Logic\Bside\User;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\ProjectGroup;
use App\Models\User\ProjectGroup;
class GroupLogic extends BaseLogic
{
... ... @@ -25,6 +25,7 @@ class GroupLogic extends BaseLogic
$this->param['admin_id'] = $this->user['admin_id'];
$this->param['create_id'] = $this->user['create_id'];
$this->param['operator_id'] = $this->user['operator_id'];
$this->param['user_list'] = ','.trim($this->param['user_list'],',').',';
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('error');
... ... @@ -39,6 +40,7 @@ class GroupLogic extends BaseLogic
* @method
*/
public function group_edit(){
$this->param['user_list'] = ','.trim($this->param['user_list'],',').',';
$rs = $this->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('error');
... ... @@ -54,7 +56,6 @@ class GroupLogic extends BaseLogic
*/
public function group_info(){
$info = $this->info($this->param);
return $this->success($info);
}
... ...
... ... @@ -384,4 +384,17 @@ class Logic
}
return $this->success($info);
}
/**
* 获取实例
* @param mixed ...$params
* @return static
* @author:dc
* @time 2023/5/11 15:23
*/
public static function instance(...$params){
return new static(...$params);
}
}
... ...
... ... @@ -31,7 +31,7 @@ class LoginAuthMiddleware
}
// 设置数据信息
// $project = ProjectServer::useProject($info['project_id']);
// if($project){
// if(empty($project)){
// return response(['code'=>Code::USER_ERROR,'msg'=>'数据库未配置']);
// }
//操作权限设置
... ...
<?php
namespace App\Http\Requests\Aside\Template;
use App\Http\Requests\Scene;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
/**
* @author:dc
* @time 2023/5/11 14:38
* Class TemplateRequest
* @package App\Http\Requests\Aside\Template
*/
class TemplateRequest extends FormRequest
{
// use Scene;
/**
* 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 = [
'id' => ['required','integer'],
'name' => ['required'],
'status' => ['required',Rule::in(0,1)],
'is_default' => ['required',Rule::in(0,1)],
'sort' => ['required','integer'],
'thumb' => ['required'],
'url' => ['required'],
];
// 更新场景
// if(!$this->isScene(Scene::$CREATE)){
// unset($rule['id']);
// }
return $rule;
}
public function messages()
{
return [
'id.required' => 'id必须',
'id.integer' => 'id必须',
'name.required' => '名称必须',
'status.integer' => '状态错误',
'status.in' => '状态错误',
'is_default.integer' => '是否默认',
'is_default.in' => '是否默认',
'sort.required' => '排序必须',
'sort.integer' => '排序必须',
'thumb.required' => '缩略图必须',
'url.required' => '预览链接必须',
];
}
}
... ...
<?php
namespace App\Http\Requests\Bside\Nav;
use App\Http\Requests\Scene;
use Illuminate\Foundation\Http\FormRequest;
/**
* 导航 c端的 nav
* @author:dc
* @time 2023/5/11 15:20
* Class NavRequest
* @package App\Http\Requests\Bside\Nav
*/
class NavRequest extends FormRequest
{
use Scene;
/**
* 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 = [
'pid' => ['required','integer','gte:0'],
'name' => ['required','max:100'],
'location' => ['required','in:header,footer'],
'url' => ['required','max:200'],
'status' => ['required','in:0,1'],
'target' => ['required','in:0,1'],
'sort' => ['required','integer','gte:0']
];
// 修改
if($this->isScene(static::$UPDATE)){
$rule['id'] = ['required','integer'];
}
// 删除
if($this->isScene(static::$DELETE)){
$rule = ['id' => ['required','integer']];
}
return $rule;
}
public function messages()
{
return [
'id.required' => '编辑导航数据不存在',
'id.integer' => '编辑导航数据不存在',
'pid.required' => '上级选择错误',
'pid.gte' => '上级选择错误',
'pid.integer' => '上级选择错误',
'name.required' => '名称必须',
'name.max' => '名称不能超过100个字符',
'location.required' => '位置选择错误',
'location.in' => '位置选择错误',
'url.required' => '链接必须',
'url.max' => '链接不能超过200个字符',
'status.required' => '状态选择错误',
'status.in' => '状态必须是显示/隐藏',
'target.required' => '打开方式必须',
'target.in' => '打开方式选择错误',
'sort.required' => '排序必须',
'sort.integer' => '排序必须是一个数字',
'sort.gte' => '排序必须大于等于0',
];
}
}
... ...
<?php
namespace App\Http\Requests;
/**
* @author:dc
* @time 2023/5/11 14:49
* Class Scene
* @package App\Http\Requests
*/
trait Scene {
/**
* 更新场景
*/
static $UPDATE = 1;
/**
* 创建场景
*/
static $CREATE = 0;
/**
* 删除场景
*/
static $DELETE = -1;
private $scene;
/**
* @param $scene
* @return $this
* @author:dc
* @time 2023/5/11 17:14
*/
public function setScene($scene){
var_dump($scene);
$this->scene = $scene;
return $this;
}
/**
* @return mixed
*/
public function getScene()
{
return $this->scene;
}
/**
* @param $scene
* @return bool
* @author:dc
* @time 2023/5/11 17:14
*/
public function isScene($scene){
return $this->scene === $scene;
}
}
... ...
... ... @@ -33,4 +33,20 @@ class AyrShare extends Base
self::TYPE_PINTEREST => 'Pinterest',
self::TYPE_TIKTOK => 'TikTok',
];
/**
* @var :发布图片数量
*/
public $image = [
self::TYPE_FACEBOOK => 10,
self::TYPE_TWITTER => 4,
self::TYPE_LINKEDIN => 9,
self::TYPE_INSTAGRAM => 10,
self::TYPE_YOUTUBE => 1,
self::TYPE_REDDIT => 1,
self::TYPE_TELEGRAM => 1,
self::TYPE_GMB => 1,
self::TYPE_PINTEREST => 1,
self::TYPE_TIKTOK => 1,
];
}
... ...
... ... @@ -59,7 +59,7 @@ class BCustom extends Base
$model->description = $data['description'];
$model->url = $data['url'];
$model->status = $data['status'];
$model->html = $data['html'];
$model->html = $data['html']??'';
$model->save();
... ...
... ... @@ -2,7 +2,6 @@
namespace App\Models;
use App\Helper\Common;
use Illuminate\Database\Eloquent\Model;
class Base extends Model
{
... ...
... ... @@ -9,7 +9,7 @@ class Blog extends Base
{
protected $table = 'gl_blog';
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
public function user(){
return $this->hasMany(User::class,'operator_id','id');
}
... ...
... ... @@ -8,6 +8,6 @@ class BlogCategory extends Base
{
protected $table = 'gl_blog_category';
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -8,5 +8,5 @@ class BlogLabel extends Base
{
protected $table = 'gl_blog_label';
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -10,5 +10,5 @@ class Mail extends Base
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -10,5 +10,5 @@ class MailUser extends Base
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -8,5 +8,5 @@ class News extends Base
{
protected $table = 'gl_news';
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -8,5 +8,5 @@ class NewsCategory extends Base
{
protected $table = 'gl_news_category';
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -8,5 +8,5 @@ class NewsLabel extends Base
{
protected $table = 'gl_news_label';
//连接数据库
protected $connection = 'custom_mysql';
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -81,5 +81,43 @@ class ATemplate extends \App\Models\Base{
}
/**
* 查询
* @param $id
* @return mixed
* @author:dc
* @time 2023/5/10 10:15
*/
public static function _find($id)
{
return static::where('id',$id)->first();
}
// /**
// * @param array $data
// * @param int $id
// * @author:dc
// * @time 2023/5/11 10:08
// */
// public static function _save(array $data,int $id=0){
// if($id){
// $model = static::where('id',$id)->first();
// }
// if(empty($model)) $model = new static();
//
// $model->name = $data['name'];
// $model->status = $data['status'];
// $model->is_default = $data['is_default'];
// $model->sort = $data['sort'];
// $model->thumb = $data['thumb'];
// $model->url = $data['url'];
//
// $model->save();
//
// return $model->id;
// }
}
... ...
... ... @@ -24,6 +24,117 @@ class ATemplateHtml extends \App\Models\Base{
use SoftDeletes;
public static $sourceMap = [
// 数据表/数据类型 =》 模板类型/模板名称
'index' => [
'template' => 'index',
'name'=>'首页'
],
'product' => [
'template' => 'product',
'name'=>'商品列表'
],
'product_info' => [
'template' => 'product_info',
'name'=>'商品详情'
],
'blogs' => [
'template' => 'blogs',
'name'=>'博客列表'
],
'blogs_info' => [
'template' => 'blogs_info',
'name'=>'博客详情'
],
'page' => [
'template' => 'page',
'name'=>'单页'
],
'news' => [
'template' => 'news',
'name'=>'新闻列表'
],
'news_info' => [
'template' => 'news_info',
'name'=>'新闻详情'
],
];
public static $typeMap = [
'index' => '首页',
'product' => '商品列表',
'product_info' => '商品详情',
'blogs' => '博客列表',
'blogs_info' => '博客详情',
'page' => '单页',
'news' => '新闻列表',
'news_info' => '新闻详情',
];
/**
* 模板中的数据
* @param $template_id
* @return mixed
* @author:dc
* @time 2023/5/10 10:30
*/
public static function _all($template_id){
return static::where(['template_id'=>$template_id])->get();
}
/**
* 是否存在type
* @param int $template_id
* @param $type
* @return mixed
* @author:dc
* @time 2023/5/10 16:03
*/
public static function _typeExist(int $template_id,$type){
return static::where(['template_id'=>$template_id,'type'=>$type])->limit(1)->count();
}
public static function _bAll($template_id){
return static::where(['template_id'=>$template_id,'status'=>1])->get();
}
public static function _find($id){
return static::where('id',$id)->first();
}
/**
* @param array $data
* @param int $id
* @return mixed
* @author:dc
* @time 2023/5/11 10:20
*/
public static function _save(int $template_id, array $data,int $id = 0){
if($id){
$model = static::where('id',$id)->first();
}
if(empty($model)) $model = new static();
$model->template_id = $template_id;
$model->name = $data['name'];
$model->status = $data['status'];
$model->is_default = $data['is_default'];
$model->sort = $data['sort'];
$model->thumb = $data['thumb'];
$model->url = $data['url'];
$model->save();
return $model->id;
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Models\Template;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;
/**
* 当前用户的模板
... ... @@ -71,6 +72,30 @@ class BSetting extends \App\Models\Base{
$data->save();
// 是否有模板
// if(!BTemplate::_isExist($project_id,$template_id)){
// // 没有模板
// $aData = ATemplate::_find($template_id);
// // 保存到自己的数据中
// BTemplate::_insert($project_id,$aData);
//
// $aDataHtml = ATemplateHtml::_all($template_id);
// DB::beginTransaction();
// foreach ($aDataHtml as $item){
// try {
// // 插入子数据
// BTemplateHtml::_insert($project_id,$item);
// }catch (\Throwable $e){
// DB::rollBack();
//
// return $data->id;
// break;
// }
//
// }
// DB::commit();
// }
return $data->id;
}
... ...
... ... @@ -11,48 +11,46 @@ namespace App\Models\Template;
*/
class BTemplate extends \App\Models\Base{
protected $table = 'gl_web_template_html';
protected $table = 'gl_web_template';
protected $hidden = ['project_id'];
/**
* @param $project_id
* @return mixed
* 是否存在模板
* @param int $template_id
* @author:dc
* @time 2023/5/4 16:13
* @time 2023/5/10 10:00
*/
public static function _get($project_id){
return static::where(['project_id'=>$project_id])->get(['html','type'])->pluck('html','type')->toArray();
}
public static function _all($project_id){
return static::where(['project_id'=>$project_id])->get();
public static function _isExist(int $project_id, int $template_id)
{
return static::where(['project_id'=>$project_id,'template_id'=>$template_id])->limit(1)->count();
}
/**
* 保存
* 插入
* @param $project_id
* @param $type
* @param $html
* @param $data
* @return mixed
* @author:dc
* @time 2023/5/4 17:50
* @time 2023/5/10 10:23
*/
public static function _save($project_id,$type,$html){
$data = static::where(['project_id'=>$project_id,'type'=>$type])->first();
if(!$data){
$data = new static();
$data->project_id = $project_id;
$data->type = $type;
}
$data->html = $html;
$data->save();
return $data->id;
}
public static function _insert($project_id,$data)
{
$model = new static();
$model->project_id = $project_id;
$model->template_id = $data['id'];
$model->name = $data['name'];
$model->thumb = $data['thumb'];
$model->html = $data['html'];
$model->save();
return $model->id;
}
}
... ...
<?php
namespace App\Models\Template;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
* @author:dc
* @time 2023/5/10 14:31
* Class BTemplateData
* @package App\Models\Template
*/
class BTemplateData extends \App\Models\Base{
protected $table = 'gl_web_template_data';
protected $hidden = ['project_id'];
/**
* 插入/修改
* @param int $project_id
* @param array $data
* @return mixed
* @author:dc
* @time 2023/5/10 10:23
*/
public static function _save(int $project_id, array $data)
{
$model = static::where([
'project_id'=>$project_id,
'template_id'=>$data['template_id'],
'type' => $data['type'],
'tag' => $data['tag'],
])->first();
if(!$model){
$model = new static();
$model->project_id = $project_id;
$model->template_id = $data['template_id'];
$model->type = $data['type'];
$model->tag = $data['tag'];
}
$model->css = $data['css']??'';
$model->script = $data['script']??'';
$model->html = $data['html']??'';
$model->data_ext = $data['data_ext']??'';
$model->data_source = $data['data_source']??'all';
$model->data_source_id = $data['data_source_id']??0;
$model->save();
return $model->id;
}
}
... ...
<?php
namespace App\Models\Template;
use Illuminate\Database\Eloquent\SoftDeletes;
/**
*
* 模板
* @author:dc
* @time 2023/5/9 13:56
* Class ATemplate
* @package App\Models\Template
*/
class BTemplateHtml extends \App\Models\Base{
protected $table = 'gl_web_template_html';
protected $hidden = ['deleted_at','project_id'];
use SoftDeletes;
/**
* 插入
* @param $project_id
* @param $data
* @return mixed
* @author:dc
* @time 2023/5/10 10:23
*/
public static function _insert($project_id,$data)
{
$model = new static();
$model->project_id = $project_id;
$model->template_id = $data['template_id'];
$model->name = $data['name'];
$model->type = $data['type'];
$model->is_edit = $data['is_edit'];
$model->css = $data['css'];
$model->script = $data['script'];
$model->html = $data['html'];
$model->data_ext = $data['data_ext'];
$model->save();
return $model->id;
}
}
... ...
... ... @@ -8,4 +8,7 @@ class WebSetting extends Base
{
protected $table = 'gl_web_setting';
//连接数据库
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,7 @@ use App\Models\Base;
class WebSettingCountry extends Base
{
protected $table = 'gl_web_setting_country';
//连接数据库
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,7 @@ use App\Models\Base;
class WebSettingForm extends Base
{
protected $table = 'gl_web_setting_from';
//连接数据库
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,7 @@ use App\Models\Base;
class WebSettingHtml extends Base
{
protected $table = 'gl_web_setting_html';
//连接数据库
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,7 @@ use App\Models\Base;
class WebSettingReceiving extends Base
{
protected $table = 'gl_web_setting_receiving';
//连接数据库
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,7 @@ use App\Models\Base;
class WebSettingService extends Base
{
protected $table = 'gl_web_setting_service';
//连接数据库
// protected $connection = 'custom_mysql';
}
... ...
... ... @@ -8,6 +8,9 @@ class WebSettingText extends Base
{
protected $table = 'gl_web_setting_text';
//连接数据库
// protected $connection = 'custom_mysql';
//定义常量参数
const TYPE_PAGE = 1;
const TYPE_PRODUCT = 2;
... ...
*
!.gitignore
!readme.md
... ...
此目录为自动创建
不可手动操作
... ...
... ... @@ -126,10 +126,16 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w
// 自定义页面 模板,头部底部
Route::prefix('template')->group(function () {
Route::get('/', [\App\Http\Controllers\Aside\TemplateController::class, 'index'])->name('admin.template_header_footer');
Route::get('/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'edit'])->name('admin.template_header_footer_edit');
Route::get('/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'insert'])->name('admin.template_header_footer_insert');
Route::get('/delete', [\App\Http\Controllers\Aside\TemplateController::class, 'delete'])->name('admin.template_header_footer_system');
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::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');
Route::post('/html/{template_id}/edit', [\App\Http\Controllers\Aside\TemplateController::class, 'html_edit'])->where('template_id','\d+')->name('admin.template_edit.html');
Route::post('/html/{template_id}/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'html_insert'])->where('template_id','\d+')->name('admin.template_insert.html');
Route::delete('/html/{template_id}/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_delete'])->where('template_id','\d+')->where('id','\d+')->name('admin.template_delete.html');
Route::get('/html/type', [\App\Http\Controllers\Aside\TemplateController::class, 'html_type'])->name('admin.template_type.html');
});
... ...
... ... @@ -190,11 +190,11 @@ Route::middleware(['bloginauth'])->group(function () {
});
//图片操作
Route::prefix('images')->group(function () {
Route::post('/upload', [\App\Http\Controllers\file\ImageController::class, 'upload'])->name('image_upload');
Route::post('/upload', [\App\Http\Controllers\File\ImageController::class, 'upload'])->name('image_upload');
});
//文件上传第三方操作
Route::prefix('files')->group(function () {
Route::post('/upload', [\App\Http\Controllers\file\FileController::class, 'upload'])->name('files_upload');
Route::post('/upload', [\App\Http\Controllers\File\FileController::class, 'upload'])->name('files_upload');
});
//精准询盘
Route::prefix('inquiry')->group(function () {
... ... @@ -225,15 +225,26 @@ Route::middleware(['bloginauth'])->group(function () {
});
});
// 自定义页面
// 模板
Route::prefix('template')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\TemplateController::class, 'index'])->name('template_header_footer');
Route::get('/edit', [\App\Http\Controllers\Bside\TemplateController::class, 'edit_html'])->name('template_header_footer_edit');
Route::post('/edit', [\App\Http\Controllers\Bside\TemplateController::class, 'edit_save'])->name('template_header_footer_edit_save');
Route::get('/system', [\App\Http\Controllers\Bside\TemplateController::class, 'system_all_html'])->name('template_header_footer_system');
Route::get('/custom', [\App\Http\Controllers\Bside\TemplateController::class, 'custom'])->name('template_custom');
Route::get('/', [\App\Http\Controllers\Bside\TemplateController::class, 'index'])->name('bside_template');
Route::any('/use-template', [\App\Http\Controllers\Bside\TemplateController::class, 'info'])->name('bside_template_use');
// Route::get('/custom-chunk', [\App\Http\Controllers\Bside\TemplateController::class, 'customChunk'])->name('bside_template_custom_chunk');
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::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::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');
... ... @@ -256,6 +267,6 @@ Route::group([], function () {
Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login');
// Route::any('/', [\App\Http\Controllers\Bside\ComController::class, 'get_country'])->name('get_country');
Route::get('/file/download', [\App\Http\Controllers\Bside\FileController::class, 'download'])->name('file_download');
Route::any('/image/{hash}/{type?}/{w?}/{h?}', [\App\Http\Controllers\file\ImageController::class,'index'])->name('image_show');
Route::any('/file_hash/{hash}/', [\App\Http\Controllers\file\FileController::class,'index'])->name('file_show');
Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\File\ImageController::class,'index'])->name('image_show');
Route::any('/file_hash/{hash}/', [\App\Http\Controllers\File\FileController::class,'index'])->name('file_show');
});
... ...