作者 李宇航

合并分支 'lyh-server' 到 'master'

Lyh server



查看合并请求 !2819
... ... @@ -230,14 +230,12 @@ class AiBlogController extends BaseController
'author_id'=>['required'],
'text'=>['required'],
'description'=>['required'],
'route'=>['required'],
],[
'new_title.required' => '标题不能为空',
'image.required' => '缩略图不能为空',
'author_id.required' => '作者id不能为空',
'text.required' => '作者id不能为空',
'description.required' => '短描述不能为空',
'route.required' => '路由不能为空',
]);
$data = $aiBlogLogic->customSaveBlog($this->param);
$this->response('success',Code::SUCCESS,$data);
... ...
... ... @@ -171,9 +171,7 @@ class AiBlogLogic extends BaseLogic
{
try {
//处理路由
if(empty($param['route'])){
$param['route'] = generateRoute(Translate::tran($param['new_title'], 'en'));
}
$param['route'] = generateRoute(Translate::tran($param['route'] ?? $param['new_title'], 'en'));
//推送到ai的数据结构
$data = [
'title'=>$param['new_title'], 'thumb'=>$param['image'], 'foreword'=>$param['description'],
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Http\Logic\Bside\Blog;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Blog\Blog;
use App\Models\Blog\BlogExtendInfo;
use App\Models\RouteMap\RouteMap;
use App\Models\Template\BTemplate;
use Illuminate\Support\Facades\DB;
... ... @@ -47,6 +48,7 @@ class BlogLogic extends BaseLogic
$this->edit(['url'=>$route],['id'=>$id]);
$this->curlDelRoute(['new_route'=>$route]);
}
$this->model->saveExtendInfo($id,$this->param['extend'] ?? [],$this->user['project_id']);
$this->addUpdateNotify(RouteMap::SOURCE_BLOG,$route);
return $this->success(['id'=>$id]);
}
... ... @@ -101,6 +103,7 @@ class BlogLogic extends BaseLogic
$info['label_name'] = $blogLabelLogic->getLabelName($info['label_id']);
$info['image_link'] = getImageUrl($info['image'],$this->user['storage_type'],$this->user['project_location']);
$info['og_image'] = getImageUrl(empty($info['og_image']) ? $info['image'] : $info['og_image'],$this->user['storage_type'],$this->user['project_location']);
$info['extend'] = $this->model->getExtendInfo($info['id']);
return $this->success($info);
}
... ... @@ -141,6 +144,9 @@ class BlogLogic extends BaseLogic
$this->delRoute($id);
RouteMap::delRoute(RouteMap::SOURCE_BLOG, $id, $this->user['project_id']);
$this->model->del(['id' => $id]);
//删除扩展字段
$extendInfoModel = new BlogExtendInfo();
$extendInfoModel->del(['blog_id'=>$id]);
}
}
DB::commit();
... ...
... ... @@ -22,6 +22,89 @@ class Blog extends Base
}
return $value;
}
/**
* @remark :扩展字段根据type返回类型
* @name :setTypValues
* @author :lyh
* @method :post
* @time :2023/12/6 14:43
*/
public function getExtendInfo($news_id){
$extendModel = new BlogExtend();
$list = $extendModel->list(['status'=>1],'id',['id','type','key','title']);
if(empty($list)){
return [];
}
$extendInfoModel = new BlogExtendInfo();
$infoList = $extendInfoModel->list(['news_id'=>$news_id],'created_at');
foreach ($list as $k=>$v){
if($v['type'] == 3 || $v['type'] == 4){
$v['values'] = [];
}else{
$v['values'] = '';
}
if(!empty($infoList)){
foreach ($infoList as $values){
if($v['key'] == $values['key']){
$v = $this->setTypValues($v,$values);
break;
}
}
}
$list[$k] = $v;
}
return $list;
}
/**
* @remark :保存扩展字段
* @name :saveExtend
* @author :lyh
* @method :post
* @time :2023/11/9 15:02
*/
public function saveExtendInfo($blog_id,$extend,$project_id){
//先删除以前的数据
$extendInfoModel = new BlogExtendInfo();
$extendInfoModel->del(['blog_id'=>$blog_id]);
if(empty($extend)) {
return true;
}
foreach ($extend as $k => $v){
if(empty($v['values'])){
continue;
}
$v = $this->saveHandleExtend($v,$blog_id,$project_id);
$extendInfoModel->add($v);
}
return true;
}
/**
* @remark :保存扩展字段时处理数据
* @name :saveHandleExtend
* @author :lyh
* @method :post
* @time :2023/12/6 15:11
*/
public function saveHandleExtend(&$v,$blog_id,$project_id){
unset($v['title']);
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['url'] = str_replace_url($v1['url']);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}
$v['project_id'] = $project_id;
$v['news_id'] = $blog_id;
return $v;
}
}
... ...
... ... @@ -141,13 +141,18 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/category/sort', [\App\Http\Controllers\Bside\Blog\BlogCategoryController::class, 'sort'])->name('blog_category_sort');
Route::any('/category/categoryTopList', [\App\Http\Controllers\Bside\Blog\BlogCategoryController::class, 'categoryTopList'])->name('blog_category_categoryTopList');
//博客标签
Route::any('/label/', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'lists'])->name('blog_lists');
Route::any('/label/add', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'add'])->name('blog_add');
Route::any('/label/info', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'info'])->name('blog_info');
Route::any('/label/edit', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'edit'])->name('blog_edit');
Route::any('/label/del', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'del'])->name('blog_del');
Route::any('/label/batchAdd', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'batchAdd'])->name('blog_batchAdd');
Route::any('/label/status', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'status'])->name('blog_status');
Route::any('/label/', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'lists'])->name('blog_label_lists');
Route::any('/label/add', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'add'])->name('blog_label_add');
Route::any('/label/info', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'info'])->name('blog_label_info');
Route::any('/label/edit', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'edit'])->name('blog_label_edit');
Route::any('/label/del', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'del'])->name('blog_label_del');
Route::any('/label/batchAdd', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'batchAdd'])->name('blog_label_batchAdd');
Route::any('/label/status', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'status'])->name('blog_label_status');
//扩展字段
Route::any('/extend/', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'lists'])->name('blog_extend_lists');
Route::any('/extend/save', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'save'])->name('blog_extend_save');
Route::any('/extend/status', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'status'])->name('blog_extend_status');
Route::any('/extend/del', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'del'])->name('blog_extend_del');
});
//ai指令
Route::prefix('command')->group(function () {
... ...