作者 lyh

gx

... ... @@ -11,6 +11,7 @@ namespace App\Http\Controllers\Bside\CustomModule;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\CustomModule\CustomModuleContentLogic;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
class CustomModuleContentController extends BaseController
... ... @@ -34,6 +35,19 @@ class CustomModuleContentController extends BaseController
}
/**
* @remark :添加/编辑内容时获取分类
* @name :getCategoryList
* @author :lyh
* @method :post
* @time :2023/12/7 15:19
*/
public function getCategoryList(){
$categoryModel = new CustomModuleCategory();
$list = $categoryModel->list(['project_id'=>$this->user['project_id'],'module_id'=>$this->param['module_id']],['id','name']);
$this->response('success',Code::SUCCESS,$list);
}
/**
* @remark :获取当前数据详情
* @name :info
* @author :lyh
... ... @@ -46,7 +60,7 @@ class CustomModuleContentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$info = $logic->getCustomModuleContentInfo();
$info = $logic->getContentInfo();
$this->response('success',Code::SUCCESS,$info);
}
... ... @@ -67,7 +81,7 @@ class CustomModuleContentController extends BaseController
'route.required' => '分类路由不能为空',
'module_id.required' => '所选模块id不能为空'
]);
$logic->customModuleContentSave();
$logic->contentSave();
$this->response('success');
}
... ... @@ -84,7 +98,7 @@ class CustomModuleContentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$logic->customModuleContentDel();
$logic->contentDel();
$this->response('success');
}
}
... ...
... ... @@ -22,9 +22,15 @@ class CustomModuleExtentController extends BaseController
* @method :post
* @time :2023/12/4 15:43
*/
public function list(CustomModuleExtend $customModuleExtend){
public function lists(CustomModuleExtend $customModuleExtend){
$this->request->validate([
'module_id'=>['required'],
],[
'module_id.required' => 'module_id不能为空',
]);
$this->map['project_id'] = $this->user['project_id'];
$lists = $customModuleExtend->lists($this->map,$this->page,$this->row,$this->order);
$filed = ['id','title','status','type','operator_id','project_id','module_id','created_at','updated_at'];
$lists = $customModuleExtend->lists($this->map,$this->page,$this->row,$this->order,$filed);
$this->response('success',Code::SUCCESS,$lists);
}
... ... @@ -41,7 +47,7 @@ class CustomModuleExtentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$info = $logic->getCustomModuleExtendInfo();
$info = $logic->getExtendInfo();
$this->response('success',Code::SUCCESS,$info);
}
... ... @@ -53,7 +59,7 @@ class CustomModuleExtentController extends BaseController
* @time :2023/12/4 15:45
*/
public function save(CustomModuleExtendLogic $logic){
$logic->customModuleExtendSave();
$logic->extendSave();
$this->response('success');
}
... ... @@ -70,7 +76,7 @@ class CustomModuleExtentController extends BaseController
],[
'id.required' => 'ID不能为空',
]);
$logic->customModuleExtendDel();
$logic->extendDel();
$this->response('success');
}
}
... ...
... ... @@ -93,6 +93,7 @@ class CustomModuleCategoryLogic extends BaseLogic
* @time :2023/12/4 15:47
*/
public function categorySave(){
$this->param = $this->handleParam($this->param);
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->categoryEdit();
}else{
... ... @@ -102,6 +103,21 @@ class CustomModuleCategoryLogic extends BaseLogic
}
/**
* @name :(参数处理)paramProcessing
* @author :lyh
* @method :post
* @time :2023/6/13 11:30
*/
public function handleParam($param)
{
$param['operator_id'] = $this->user['id'];
if(!isset($param['id']) || empty($param['id'])){
$param['project_id'] = $this->user['project_id'];
}
return $this->success($param);
}
/**
* @remark :添加分类
* @name :categoryAdd
* @author :lyh
... ... @@ -116,7 +132,7 @@ class CustomModuleCategoryLogic extends BaseLogic
$this->handleAddSon($id);
$this->addUpdateNotify(RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],$route);
$this->curlDelRoute(['new_route'=>$route]);
$this->edit(['url' => $route], ['id' => $id]);
$this->edit(['route' => $route], ['id' => $id]);
//处理上级分类商品
$this->handleAddSon($id);
}catch (\Exception $e){
... ... @@ -136,7 +152,7 @@ class CustomModuleCategoryLogic extends BaseLogic
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],
$this->param['id'], $this->user['project_id']);
$this->editHandleCategory($this->param['id'],$this->param['pid']);
$this->editNewsRoute($this->param['id'],$route);
$this->editRoute($this->param['id'],$route);
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请连续管理员');
... ... @@ -193,7 +209,7 @@ class CustomModuleCategoryLogic extends BaseLogic
* @method :post
* @time :2023/9/7 11:05
*/
public function editNewsRoute($id, $route)
public function editRoute($id, $route)
{
//生成一条删除路由记录
$info = $this->model->read(['id' => $id], ['id', 'route']);
... ...
... ... @@ -10,7 +10,15 @@
namespace App\Http\Logic\Bside\CustomModule;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\CustomModule\CustomModuleExtend;
use App\Models\CustomModule\CustomModuleExtentContent;
use App\Models\Product\Extend;
use App\Models\Product\ExtendInfo;
use App\Models\RouteMap\RouteMap;
use Illuminate\Support\Facades\DB;
use mysql_xdevapi\Exception;
class CustomModuleContentLogic extends BaseLogic
{
... ... @@ -28,23 +36,253 @@ class CustomModuleContentLogic extends BaseLogic
* @method :post
* @time :2023/12/4 16:10
*/
public function getCustomModuleContentInfo(){
public function getContentInfo(){
$info = $this->model->read($this->param);
if($info === false){
$this->fail('当前数据不存在或已被删除');
}
$info['extend'] = $this->getExtendInfo($info['module_id'],$info['id']);
return $this->success($info);
}
/**
* @remark :获取扩展字段详情
* @name :getExtendInfo
* @author :lyh
* @method :post
* @time :2023/11/14 9:45
*/
public function getExtendInfo($module_id,$content_id){
$extendModel = new CustomModuleExtend();
$list = $extendModel->list(['module_id'=>$module_id],'id',['id','type','key','title']);
if(empty($list)){
return [];
}
$extendContentModel = new CustomModuleExtentContent();
foreach ($list as $k=>$v){
$info = $extendContentModel->read(['key'=>$v['key'],'content_id'=>$content_id]);
if($info == false){
if($v['type'] == 3 || $v['type'] == 4){
$v['values'] = [];
}else{
$v['values'] = '';
}
}else{
$v = $this->setTypValues($v,$info);
}
$list[$k] = $v;
}
return $this->success($list);
}
/**
* @remark :扩展字段根据type返回类型
* @name :setTypValues
* @author :lyh
* @method :post
* @time :2023/12/6 14:43
*/
public function setTypValues($v,$info){
if($v['type'] == 3){
$arr = json_decode($info['values']);
foreach ($arr as $k1=>$v1){
$v1 = (array)$v1;
$v1['url'] = getImageUrl($v1['url']);
$arr[$k1] = $v1;
}
$v['values'] = $arr;
}elseif($v['type'] == 4){
$arr1 = json_decode($info['values']);
foreach ($arr1 as $k1=>$v1){
$v1 = getFileUrl($v1);
$arr1[$k1] = $v1;
}
$v['values'] = $arr1;
}else{
$v['values'] = $info['values'];
}
return $this->success($v);
}
/**
* @remark :保存数据
* @name :ModuleSave
* @author :lyh
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleContentSave(){
public function contentSave(){
$extend = $this->handleExtent();
$this->param = $this->handleParam($this->param);
if(isset($this->param['id']) && !empty($this->param['id'])){
$id = $this->contentEdit();
}else{
$id = $this->contentAdd();
}
//保存扩展字段
$this->saveExtendInfo($id,$extend);
return $this->success();
}
/**
* @remark :处理扩展字段
* @name :handleExtent
* @author :lyh
* @method :post
* @time :2023/12/6 15:06
*/
public function handleExtent(){
//扩展字段
$extend = [];
if(!empty($this->param['extend'])){
$extend = $this->param['extend'];
unset($this->param['extend']);
}
return $extend;
}
/**
* @remark :添加数据
* @name :contentAdd
* @author :lyh
* @method :post
* @time :2023/12/7 15:04
*/
public function contentAdd(){
try {
$id = $this->model->addReturnId($this->param);
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE.$this->param['module_id'],
$id, $this->user['project_id']);
$this->addUpdateNotify(RouteMap::SOURCE_MODULE.$this->param['module_id'],$route);
$this->curlDelRoute(['new_route'=>$route]);
$this->edit(['route' => $route], ['id' => $id]);
}catch (\Exception $e){
$this->fail('系统错误,请联系管理员');
}
return $id;
}
/**
* @remark :编辑数据
* @name :contentEdit
* @author :lyh
* @method :post
* @time :2023/12/7 15:04
*/
public function contentEdit(){
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE.$this->param['module_id'],
$this->param['id'], $this->user['project_id']);
$this->editRoute($this->param['id'],$route);
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请连续管理员');
}
return $this->param['id'];
}
/**
* @name :(参数处理)paramProcessing
* @author :lyh
* @method :post
* @time :2023/6/13 11:30
*/
public function handleParam($param)
{
$param['operator_id'] = $this->user['id'];
if(!isset($param['id']) || empty($param['id'])){
$param['project_id'] = $this->user['project_id'];
}
if(isset($param['category_id']) && !empty($param['category_id'])){
$param['category_id'] = $this->getLastCategory($param['category_id']);
}
return $this->success($param);
}
/**
* @remark :查看是否编辑路由
* @name :editCategoryRoute
* @author :lyh
* @method :post
* @time :2023/9/7 11:05
*/
public function editRoute($id, $route)
{
//生成一条删除路由记录
$info = $this->model->read(['id' => $id], ['id', 'route']);
if ($info['route'] != $route) {
$this->addUpdateNotify(RouteMap::SOURCE_MODULE.$this->param['module_id'],$route);
$this->curlDelRoute(['route'=>$info['route'],'new_route'=>$route]);
}
return true;
}
/**
* @remark :获取最后一级分类id
* @name :getLastCategory
* @author :lyh
* @method :post
* @time :2023/10/20 9:02
*/
public function getLastCategory($category){
$str = '';
$cateModel = new CustomModuleCategory();
foreach ($category as $v){
$info = $cateModel->read(['pid'=>$v]);
if($info === false){
$str .= $v.',';
}
}
return ','.$str;
}
/**
* @remark :保存扩展字段
* @name :saveExtend
* @author :lyh
* @method :post
* @time :2023/11/9 15:02
*/
public function saveExtendInfo($content_id,$extend){
//先删除以前的数据
$extendInfoModel = new ExtendInfo();
$extendInfoModel->del(['content_id'=>$content_id]);
if(empty($extend)) {
return $this->success();
}
foreach ($extend as $v){
if(empty($v['values'])){
continue;
}
$v = $this->saveHandleExtend($v,$content_id);
$extendInfoModel->add($v);
}
return $this->success();
}
/**
* @remark :保存扩展字段时处理数据
* @name :saveHandleExtend
* @author :lyh
* @method :post
* @time :2023/12/6 15:11
*/
public function saveHandleExtend(&$v,$content_id){
if($v['type'] == 3){
foreach ($v['values'] as $k1=>$v1){
$v1['url'] = str_replace_url($v1['url']);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}elseif ($v['type'] == 4){
foreach ($v['values'] as $k1=>$v1){
$v1 = str_replace_url($v1);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}
$v['project_id'] = $this->user['project_id'];
$v['content_id'] = $content_id;
return $this->success($v);
}
/**
... ... @@ -54,7 +292,34 @@ class CustomModuleContentLogic extends BaseLogic
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleContentDel(){
public function contentDel(){
DB::beginTransaction();
try {
foreach ($this->param['id'] as $id) {
$this->delRoute($id);
$this->model->del(['id' => $id]);
}
DB::commit();
} catch (Exception $e) {
DB::rollBack();
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
* @remark :删除路由
* @name :delRoute
* @author :lyh
* @method :post
* @time :2023/9/7 10:50
*/
public function delRoute($id)
{
RouteMap::delRoute(RouteMap::SOURCE_MODULE.$this->param['module_id'], $id, $this->user['project_id']);
//通知
$info = $this->model->read(['id' => $id], ['id', 'url']);
$this->curlDelRoute(['route'=>$info['url']]);
return $this->success();
}
}
... ...
... ... @@ -28,8 +28,12 @@ class CustomModuleExtendLogic extends BaseLogic
* @method :post
* @time :2023/12/4 16:10
*/
public function getCustomModuleExtendInfo(){
public function getExtendInfo(){
$info = $this->model->read($this->param,['id','title','status','type','operator_id','project_id','module_id']);
if($info === false){
$this->fail('当前数据不存在或者已被删除');
}
return $this->success($info);
}
/**
... ... @@ -39,8 +43,68 @@ class CustomModuleExtendLogic extends BaseLogic
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleExtendSave(){
public function extendSave(){
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->extendEdit();
}else{
$this->extendAdd();
}
return $this->success();
}
/**
* @remark :添加
* @name :extendAdd
* @author :lyh
* @method :post
* @time :2023/12/7 14:09
*/
public function extendAdd(){
$info = $this->model->read(['title'=>$this->param['title']]);
if($info !== false){
$this->fail('当前扩展名称已存在');
}
$key = 'pd_extended_field_';
$this->param['key'] = $this->getKey($key);
$this->param['project_id'] = $this->user['project_id'];
$this->param['operator_id'] = $this->user['id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
* @remark :获取唯一key
* @name :getKey
* @author :lyh
* @method :post
* @time :2023/11/9 15:55
*/
public function getKey($key,$i = 1){
$info = $this->model->read(['key'=>$key.$i]);
if($info !== false){
return $this->getKey($key,$i+1);
}else{
return $key.$i;
}
}
/**
* @remark :编辑
* @name :extendEdit
* @author :lyh
* @method :post
* @time :2023/12/7 14:09
*/
public function extendEdit(){
$this->param['operator_id'] = $this->user['id'];
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
/**
... ... @@ -50,7 +114,11 @@ class CustomModuleExtendLogic extends BaseLogic
* @method :post
* @time :2023/12/4 15:47
*/
public function customModuleExtendDel(){
public function extendDel(){
$rs = $this->model->del($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
}
return $this->success();
}
}
... ...
... ... @@ -46,6 +46,7 @@ class CustomModuleLogic extends BaseLogic
* @time :2023/12/4 15:47
*/
public function customModuleSave(){
$this->param = $this->handleParam($this->param);
if(isset($this->param['id']) && !empty($this->param['id'])){
$this->moduleEdit();
}else{
... ... @@ -55,6 +56,21 @@ class CustomModuleLogic extends BaseLogic
}
/**
* @name :(参数处理)paramProcessing
* @author :lyh
* @method :post
* @time :2023/6/13 11:30
*/
public function handleParam($param)
{
$param['operator_id'] = $this->user['id'];
if(!isset($param['id']) || empty($param['id'])){
$param['project_id'] = $this->user['project_id'];
}
return $this->success($param);
}
/**
* @remark :新增
* @name :moduleAdd
* @author :lyh
... ... @@ -62,7 +78,6 @@ class CustomModuleLogic extends BaseLogic
* @time :2023/12/5 9:39
*/
public function moduleAdd(){
$this->param['project_id'] = $this->user['project_id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
... ...
... ... @@ -106,6 +106,7 @@ class ProductLogic extends BaseLogic
}
return $category_ids;
}
/**
* @remark :新增时处理字段
* @name :addHandleParam
... ...
... ... @@ -9,6 +9,7 @@
namespace App\Models\CustomModule;
use App\Helper\Arr;
use App\Models\Base;
class CustomModuleContent extends Base
... ... @@ -16,4 +17,8 @@ class CustomModuleContent extends Base
protected $table = 'gl_custom_module_content';
//连接数据库
protected $connection = 'custom_mysql';
public function getCategoryIdAttribute($value){
return Arr::setToArr(trim($value,','));
}
}
... ...
<?php
/**
* @remark :
* @name :CustomModuleExtentContent.php
* @author :lyh
* @method :post
* @time :2023/12/7 14:38
*/
namespace App\Models\CustomModule;
use App\Models\Base;
class CustomModuleExtentContent extends Base
{
protected $table = 'gl_custom_module_extent_content';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -440,10 +440,18 @@ Route::middleware(['bloginauth'])->group(function () {
Route::prefix('content')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'lists'])->name('custom_content_lists');
Route::any('/getCategoryList', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'getCategoryList'])->name('custom_content_getCategoryList');
Route::any('/info', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'info'])->name('custom_content_info');
Route::any('/save', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'save'])->name('custom_content_save');
Route::any('/del', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'del'])->name('custom_content_del');
});
Route::prefix('extend')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'lists'])->name('custom_extend_lists');
Route::any('/info', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'info'])->name('custom_extend_info');
Route::any('/save', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'save'])->name('custom_extend_save');
Route::any('/del', [\App\Http\Controllers\Bside\CustomModule\CustomModuleContentController::class, 'del'])->name('custom_extend_del');
});
});
});
//无需登录验证的路由组
... ...