Browse Source

文章增加绑定产品

develop
李可松 4 years ago
parent
commit
f26f62dff2
  1. 10
      MySQL_change.sql
  2. 6
      app/AdminAgent/Controllers/ArticleController.php
  3. 14
      app/Http/Controllers/Api/ArticleController.php
  4. 2
      app/Models/Article.php
  5. 1
      resources/lang/zh_CN/article.php

10
MySQL_change.sql

@ -117,7 +117,6 @@ COMMENT='瀑布流内嵌广告'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
#################################################################
# 12:39 2021/8/24
ALTER TABLE `notices`
ADD COLUMN `sort` SMALLINT NOT NULL DEFAULT '255' COMMENT '排序,越小越靠前' AFTER `content`;
@ -202,3 +201,12 @@ CREATE TABLE `agent_settings` (
COMMENT='代理商设置配置'
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
#################################################################
# 15:19 2021/8/27
ALTER TABLE `messages`
ADD COLUMN `author` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '作者' COLLATE 'utf8_general_ci' AFTER `content`;
ALTER TABLE `notices`
ADD COLUMN `author` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '作者' COLLATE 'utf8_general_ci' AFTER `sort`;
ALTER TABLE `articles`
ADD COLUMN `agent_product_ids` TEXT NULL DEFAULT NULL COMMENT '绑定产品' AFTER `sort`;

6
app/AdminAgent/Controllers/ArticleController.php

@ -2,7 +2,9 @@
namespace App\AdminAgent\Controllers;
use App\AdminAgent\Renderable\SelectAgentProduct;
use App\AdminAgent\Repositories\Article;
use App\Models\AgentProduct;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
@ -87,6 +89,10 @@ class ArticleController extends AdminController
$form->editor('content')->required();
$form->text('sort')->default(255);
$form->select('type')->options(['普通列表', '大图显示'])->default(0)->required();
$form->multipleSelectTable('agent_product_ids')
->dialogWidth('80%;min-width:825px;')
->from(new SelectAgentProduct)
->model(AgentProduct::class);
})->saving(function (Form $form) {
//不允许修改非自己的数据
if ($form->isEditing() && $form->model()->agent_id != Admin::user()->id) {

14
app/Http/Controllers/Api/ArticleController.php

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\AgentProduct;
use App\Models\Article;
use Illuminate\Support\Facades\Storage;
@ -53,6 +54,19 @@ class ArticleController extends Controller
return $this->error('文章不存在或已被删除');
}
$article->image = Storage::disk('public')->url('') . $article->image;
if ($article->agent_product_ids) {
$product = AgentProduct::list($this->agent_id)
->whereIn('id', $article->agent_product_ids)
->get();
if (!$product->isEmpty()) {
$prefix = Storage::disk('public')->url('');
foreach ($product as &$v) {
$v->pictures = array_map(fn($item) => $prefix . $item, $v->pictures);
}
}
}
$article->product = $product;
return $this->success($article);
}
}

2
app/Models/Article.php

@ -8,4 +8,6 @@ use Illuminate\Database\Eloquent\SoftDeletes;
class Article extends BaseModel
{
use HasFactory, SoftDeletes;
protected $casts = ['agent_product_ids' => 'json'];
}

1
resources/lang/zh_CN/article.php

@ -12,6 +12,7 @@ return [
'content' => '文章内容',
'sort' => '排序',
'type' => '显示方式',
'agent_product_ids' => '绑定产品',
],
'options' => [
'type' => [

Loading…
Cancel
Save