62 lines
1.9 KiB
PHP
Executable File
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;
|
|
}
|
|
}
|