作者 李宇航

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

Lyh server



查看合并请求 !2819
@@ -230,14 +230,12 @@ class AiBlogController extends BaseController @@ -230,14 +230,12 @@ class AiBlogController extends BaseController
230 'author_id'=>['required'], 230 'author_id'=>['required'],
231 'text'=>['required'], 231 'text'=>['required'],
232 'description'=>['required'], 232 'description'=>['required'],
233 - 'route'=>['required'],  
234 ],[ 233 ],[
235 'new_title.required' => '标题不能为空', 234 'new_title.required' => '标题不能为空',
236 'image.required' => '缩略图不能为空', 235 'image.required' => '缩略图不能为空',
237 'author_id.required' => '作者id不能为空', 236 'author_id.required' => '作者id不能为空',
238 'text.required' => '作者id不能为空', 237 'text.required' => '作者id不能为空',
239 'description.required' => '短描述不能为空', 238 'description.required' => '短描述不能为空',
240 - 'route.required' => '路由不能为空',  
241 ]); 239 ]);
242 $data = $aiBlogLogic->customSaveBlog($this->param); 240 $data = $aiBlogLogic->customSaveBlog($this->param);
243 $this->response('success',Code::SUCCESS,$data); 241 $this->response('success',Code::SUCCESS,$data);
@@ -171,9 +171,7 @@ class AiBlogLogic extends BaseLogic @@ -171,9 +171,7 @@ class AiBlogLogic extends BaseLogic
171 { 171 {
172 try { 172 try {
173 //处理路由 173 //处理路由
174 - if(empty($param['route'])){  
175 - $param['route'] = generateRoute(Translate::tran($param['new_title'], 'en'));  
176 - } 174 + $param['route'] = generateRoute(Translate::tran($param['route'] ?? $param['new_title'], 'en'));
177 //推送到ai的数据结构 175 //推送到ai的数据结构
178 $data = [ 176 $data = [
179 'title'=>$param['new_title'], 'thumb'=>$param['image'], 'foreword'=>$param['description'], 177 'title'=>$param['new_title'], 'thumb'=>$param['image'], 'foreword'=>$param['description'],
@@ -4,6 +4,7 @@ namespace App\Http\Logic\Bside\Blog; @@ -4,6 +4,7 @@ namespace App\Http\Logic\Bside\Blog;
4 4
5 use App\Http\Logic\Bside\BaseLogic; 5 use App\Http\Logic\Bside\BaseLogic;
6 use App\Models\Blog\Blog; 6 use App\Models\Blog\Blog;
  7 +use App\Models\Blog\BlogExtendInfo;
7 use App\Models\RouteMap\RouteMap; 8 use App\Models\RouteMap\RouteMap;
8 use App\Models\Template\BTemplate; 9 use App\Models\Template\BTemplate;
9 use Illuminate\Support\Facades\DB; 10 use Illuminate\Support\Facades\DB;
@@ -47,6 +48,7 @@ class BlogLogic extends BaseLogic @@ -47,6 +48,7 @@ class BlogLogic extends BaseLogic
47 $this->edit(['url'=>$route],['id'=>$id]); 48 $this->edit(['url'=>$route],['id'=>$id]);
48 $this->curlDelRoute(['new_route'=>$route]); 49 $this->curlDelRoute(['new_route'=>$route]);
49 } 50 }
  51 + $this->model->saveExtendInfo($id,$this->param['extend'] ?? [],$this->user['project_id']);
50 $this->addUpdateNotify(RouteMap::SOURCE_BLOG,$route); 52 $this->addUpdateNotify(RouteMap::SOURCE_BLOG,$route);
51 return $this->success(['id'=>$id]); 53 return $this->success(['id'=>$id]);
52 } 54 }
@@ -101,6 +103,7 @@ class BlogLogic extends BaseLogic @@ -101,6 +103,7 @@ class BlogLogic extends BaseLogic
101 $info['label_name'] = $blogLabelLogic->getLabelName($info['label_id']); 103 $info['label_name'] = $blogLabelLogic->getLabelName($info['label_id']);
102 $info['image_link'] = getImageUrl($info['image'],$this->user['storage_type'],$this->user['project_location']); 104 $info['image_link'] = getImageUrl($info['image'],$this->user['storage_type'],$this->user['project_location']);
103 $info['og_image'] = getImageUrl(empty($info['og_image']) ? $info['image'] : $info['og_image'],$this->user['storage_type'],$this->user['project_location']); 105 $info['og_image'] = getImageUrl(empty($info['og_image']) ? $info['image'] : $info['og_image'],$this->user['storage_type'],$this->user['project_location']);
  106 + $info['extend'] = $this->model->getExtendInfo($info['id']);
104 return $this->success($info); 107 return $this->success($info);
105 } 108 }
106 109
@@ -141,6 +144,9 @@ class BlogLogic extends BaseLogic @@ -141,6 +144,9 @@ class BlogLogic extends BaseLogic
141 $this->delRoute($id); 144 $this->delRoute($id);
142 RouteMap::delRoute(RouteMap::SOURCE_BLOG, $id, $this->user['project_id']); 145 RouteMap::delRoute(RouteMap::SOURCE_BLOG, $id, $this->user['project_id']);
143 $this->model->del(['id' => $id]); 146 $this->model->del(['id' => $id]);
  147 + //删除扩展字段
  148 + $extendInfoModel = new BlogExtendInfo();
  149 + $extendInfoModel->del(['blog_id'=>$id]);
144 } 150 }
145 } 151 }
146 DB::commit(); 152 DB::commit();
@@ -22,6 +22,89 @@ class Blog extends Base @@ -22,6 +22,89 @@ class Blog extends Base
22 } 22 }
23 return $value; 23 return $value;
24 } 24 }
  25 + /**
  26 + * @remark :扩展字段根据type返回类型
  27 + * @name :setTypValues
  28 + * @author :lyh
  29 + * @method :post
  30 + * @time :2023/12/6 14:43
  31 + */
  32 + public function getExtendInfo($news_id){
  33 + $extendModel = new BlogExtend();
  34 + $list = $extendModel->list(['status'=>1],'id',['id','type','key','title']);
  35 + if(empty($list)){
  36 + return [];
  37 + }
  38 + $extendInfoModel = new BlogExtendInfo();
  39 + $infoList = $extendInfoModel->list(['news_id'=>$news_id],'created_at');
  40 + foreach ($list as $k=>$v){
  41 + if($v['type'] == 3 || $v['type'] == 4){
  42 + $v['values'] = [];
  43 + }else{
  44 + $v['values'] = '';
  45 + }
  46 + if(!empty($infoList)){
  47 + foreach ($infoList as $values){
  48 + if($v['key'] == $values['key']){
  49 + $v = $this->setTypValues($v,$values);
  50 + break;
  51 + }
  52 + }
  53 + }
  54 + $list[$k] = $v;
  55 + }
  56 + return $list;
  57 + }
  58 + /**
  59 + * @remark :保存扩展字段
  60 + * @name :saveExtend
  61 + * @author :lyh
  62 + * @method :post
  63 + * @time :2023/11/9 15:02
  64 + */
  65 + public function saveExtendInfo($blog_id,$extend,$project_id){
  66 + //先删除以前的数据
  67 + $extendInfoModel = new BlogExtendInfo();
  68 + $extendInfoModel->del(['blog_id'=>$blog_id]);
  69 + if(empty($extend)) {
  70 + return true;
  71 + }
  72 + foreach ($extend as $k => $v){
  73 + if(empty($v['values'])){
  74 + continue;
  75 + }
  76 + $v = $this->saveHandleExtend($v,$blog_id,$project_id);
  77 + $extendInfoModel->add($v);
  78 + }
  79 + return true;
  80 + }
  81 +
  82 + /**
  83 + * @remark :保存扩展字段时处理数据
  84 + * @name :saveHandleExtend
  85 + * @author :lyh
  86 + * @method :post
  87 + * @time :2023/12/6 15:11
  88 + */
  89 + public function saveHandleExtend(&$v,$blog_id,$project_id){
  90 + unset($v['title']);
  91 + if($v['type'] == 3){
  92 + foreach ($v['values'] as $k1=>$v1){
  93 + $v1['url'] = str_replace_url($v1['url']);
  94 + $v['values'][$k1] = $v1;
  95 + }
  96 + $v['values'] = json_encode($v['values']);
  97 + }elseif ($v['type'] == 4){
  98 + foreach ($v['values'] as $k1=>$v1){
  99 + $v1['url'] = str_replace_url($v1['url']);
  100 + $v['values'][$k1] = $v1;
  101 + }
  102 + $v['values'] = json_encode($v['values']);
  103 + }
  104 + $v['project_id'] = $project_id;
  105 + $v['news_id'] = $blog_id;
  106 + return $v;
  107 + }
25 } 108 }
26 109
27 110
@@ -141,13 +141,18 @@ Route::middleware(['bloginauth'])->group(function () { @@ -141,13 +141,18 @@ Route::middleware(['bloginauth'])->group(function () {
141 Route::any('/category/sort', [\App\Http\Controllers\Bside\Blog\BlogCategoryController::class, 'sort'])->name('blog_category_sort'); 141 Route::any('/category/sort', [\App\Http\Controllers\Bside\Blog\BlogCategoryController::class, 'sort'])->name('blog_category_sort');
142 Route::any('/category/categoryTopList', [\App\Http\Controllers\Bside\Blog\BlogCategoryController::class, 'categoryTopList'])->name('blog_category_categoryTopList'); 142 Route::any('/category/categoryTopList', [\App\Http\Controllers\Bside\Blog\BlogCategoryController::class, 'categoryTopList'])->name('blog_category_categoryTopList');
143 //博客标签 143 //博客标签
144 - Route::any('/label/', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'lists'])->name('blog_lists');  
145 - Route::any('/label/add', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'add'])->name('blog_add');  
146 - Route::any('/label/info', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'info'])->name('blog_info');  
147 - Route::any('/label/edit', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'edit'])->name('blog_edit');  
148 - Route::any('/label/del', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'del'])->name('blog_del');  
149 - Route::any('/label/batchAdd', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'batchAdd'])->name('blog_batchAdd');  
150 - Route::any('/label/status', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'status'])->name('blog_status'); 144 + Route::any('/label/', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'lists'])->name('blog_label_lists');
  145 + Route::any('/label/add', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'add'])->name('blog_label_add');
  146 + Route::any('/label/info', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'info'])->name('blog_label_info');
  147 + Route::any('/label/edit', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'edit'])->name('blog_label_edit');
  148 + Route::any('/label/del', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'del'])->name('blog_label_del');
  149 + Route::any('/label/batchAdd', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'batchAdd'])->name('blog_label_batchAdd');
  150 + Route::any('/label/status', [\App\Http\Controllers\Bside\Blog\BlogLabelController::class, 'status'])->name('blog_label_status');
  151 + //扩展字段
  152 + Route::any('/extend/', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'lists'])->name('blog_extend_lists');
  153 + Route::any('/extend/save', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'save'])->name('blog_extend_save');
  154 + Route::any('/extend/status', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'status'])->name('blog_extend_status');
  155 + Route::any('/extend/del', [\App\Http\Controllers\Bside\Blog\BlogExtendController::class, 'del'])->name('blog_extend_del');
151 }); 156 });
152 //ai指令 157 //ai指令
153 Route::prefix('command')->group(function () { 158 Route::prefix('command')->group(function () {