2019-09-06 23:53:10 +08:00

62 lines
1.9 KiB
PHP
Executable File

<?php
namespace wstmart\home\model;
use wstmart\common\model\GoodsCats as M;
/**
* ============================================================================
* 商品属性分类
*/
class Attributes extends Base{
/**
* 获取可供筛选的商品属性
*/
public function listQueryByFilter($catId){
$m = new M();
$ids = $m->getParentIs($catId);
if(!empty($ids)){
$catIds = [];
foreach ($ids as $key =>$v){
$catIds[] = $v;
}
/*$attrs = $this->alias('a')
->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
->where(['a.goodsCatId'=>['in',$catIds],'a.isShow'=>1,'a.dataFlag'=>1,'a.attrType'=>['<>',0]])
->field('a.attrId,a.attrName,a.attrVal')->order('a.attrSort asc')->select();*/
// 取出分类下有设置的属性。
$attrs = $this->alias('a')
->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
->field('ga.attrId,GROUP_CONCAT(distinct ga.attrVal) attrVal,a.attrName')
->where(['a.goodsCatId'=>['in',$catIds],'a.isShow'=>1,'a.dataFlag'=>1,'a.attrType'=>['<>',0]])
->group('ga.attrId')
->order('a.attrSort asc')
->select();
foreach ($attrs as $key =>$v){
$attrs[$key]['attrVal'] = explode(',',$v['attrVal']);
}
return $attrs;
}
return [];
}
/**
* 根据商品id获取可供选择的属性
*/
public function getAttribute($goodsId){
if(empty($goodsId))return [];
$attrs = $this->alias('a')
->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
->field('ga.attrId,GROUP_CONCAT(distinct ga.attrVal) attrVal,a.attrName')
->where(['ga.goodsId'=>['in',$goodsId],
'a.isShow'=>1,
'a.dataFlag'=>1,
'a.attrType'=>['<>',0]])
->group('ga.attrId')
->order('a.attrSort asc')
->select();
if(empty($attrs))return [];
foreach ($attrs as $key =>$v){
$attrs[$key]['attrVal'] = explode(',',$v['attrVal']);
}
return $attrs;
}
}