作者 赵彬吉

update

... ... @@ -43,7 +43,7 @@ class ProductController extends BaseController
$map[] = ['status', $this->param['status']];
}
$sort = ['id' => 'desc'];
$data = $logic->getList($map, $sort, ['id', 'title', 'thumb', 'category_id', 'keywords', 'status', 'created_uid', 'created_at', 'updated_at']);
$data = $logic->getList($map, $sort, ['id', 'title', 'thumb', 'category_id', 'keyword_id', 'status', 'created_uid', 'created_at', 'updated_at']);
return $this->success($data);
}
... ... @@ -54,8 +54,8 @@ class ProductController extends BaseController
'id.required' => 'ID不能为空'
]);
$data = $logic->getInfo($this->param['id']);
return $this->success(Arr::twoKeepKeys($data, ['id', 'title', 'gallery', 'attrs', 'category_id', 'keywords', 'intro', 'content',
'describe', 'seo_mate', 'related_product_id', 'status', 'category_id_text', 'status_text', 'created_uid', 'created_uid_text']));
return $this->success(Arr::twoKeepKeys($data, ['id', 'title', 'gallery', 'attrs', 'category_id', 'keyword_id', 'attr_id', 'describe_id', 'intro', 'content',
'describe', 'seo_mate', 'related_product_id', 'status', 'category_id_text', 'keyword_id_text', 'status_text', 'created_uid', 'created_uid_text']));
}
public function save(ProductRequest $request, ProductLogic $logic)
... ...
... ... @@ -30,12 +30,7 @@ class ProductLogic extends BaseLogic
{
$data = parent::getList($map, $sort, $columns, $limit);
foreach ($data['list'] as &$v){
foreach ($v['category_id'] as $category_id){
$v['category_id_text'][] =(new CategoryLogic())->getCacheInfo($category_id)['title']??'';
}
$v['category_id_text'] = Arr::arrToSet($v['category_id_text'], 'trim');
$v['status_text'] = Product::statusMap()[$v['status']] ?? '';
$v['created_uid_text'] = (new UserLogic())->getCacheInfo($v['created_uid'])['name'] ?? '';
$v = $this->formatData($v);
}
return $this->success($data);
}
... ... @@ -43,13 +38,22 @@ class ProductLogic extends BaseLogic
public function getInfo($id)
{
$info = parent::getInfo($id);
$info = $this->formatData($info);
return $this->success($info);
}
public function formatData($info){
foreach ($info['category_id'] as $category_id) {
$info['category_id_text'][] = (new CategoryLogic())->getCacheInfo($category_id)['title'] ?? '';
}
foreach ($info['keyword_id'] as $keyword_id){
$info['keyword_id_text'][] =(new KeywordLogic())->getCacheInfo($keyword_id)['title']??'';
}
$info['category_id_text'] = Arr::arrToSet($info['category_id_text'], 'trim');
$info['keyword_id_text'] = Arr::arrToSet($info['keyword_id_text'], 'trim');
$info['status_text'] = Product::statusMap()[$info['status']] ?? '';
$info['created_uid_text'] = (new UserLogic())->getCacheInfo($info['created_uid'])['name'] ?? '';
return $this->success($info);
return $info;
}
public function save($param){
... ...
... ... @@ -48,7 +48,7 @@ class ProductRequest extends FormRequest
}
}
}],
'attrs' => ['required', 'array', function ($attribute, $value, $fail) {
'attrs' => ['array', function ($attribute, $value, $fail) {
foreach ($value as $v) {
if (empty($v['key'])) {
$fail('产品属性名不能为空');
... ... @@ -59,11 +59,9 @@ class ProductRequest extends FormRequest
}
}],
'category_id' => 'required',
'keywords' => 'required',
'intro' => 'required|max:500',
'content' => 'required',
'describe' => 'required|array',
'seo_mate' => ['required', 'array', function ($attribute, $value, $fail) {
'seo_mate' => ['array', function ($attribute, $value, $fail) {
if(empty($value['title'])){
$fail('SEO标题不能为空');
}
... ... @@ -74,7 +72,7 @@ class ProductRequest extends FormRequest
$fail('SEO关键词不能为空');
}
}],
'related_product_id' => ['required', function ($attribute, $value, $fail) {
'related_product_id' => [function ($attribute, $value, $fail) {
$value = array_filter(Arr::splitFilterToArray($value), 'intval');
if(count($value) > 16){
$fail('关联产品不能超过16个');
... ...
... ... @@ -85,12 +85,28 @@ class Product extends Base
return Arr::setToArr($value);
}
public function setKeywordsAttribute($value){
$this->attributes['keywords'] = Arr::arrToSet($value, 'trim');
public function setAttrIdAttribute($value){
$this->attributes['attr_id'] = Arr::arrToSet($value);
}
public function getKeywordsAttribute($value){
return Arr::setToArr($value, 'trim');
public function getAttrIdAttribute($value){
return Arr::setToArr($value);
}
public function setDescribeIdAttribute($value){
$this->attributes['describe_id'] = Arr::arrToSet($value);
}
public function getDescribeIdAttribute($value){
return Arr::setToArr($value);
}
public function setKeywordIdAttribute($value){
$this->attributes['keyword_id'] = Arr::arrToSet($value);
}
public function getKeywordIdAttribute($value){
return Arr::setToArr($value);
}
public function setRelatedProductIdAttribute($value){
... ...