新增获取分类所有父级id

feat/task1-c-wallet
gongfuxiang 2021-11-07 10:35:22 +08:00
parent 83e1c226f1
commit adaf561ec8
1 changed files with 61 additions and 4 deletions

View File

@ -392,10 +392,12 @@ class GoodsService
{
$ids = explode(',', $ids);
}
$where = ['pid'=>$ids];
$where = [
['pid', 'in', $ids],
];
if($is_enable !== null)
{
$where['is_enable'] = $is_enable;
$where[] = ['is_enable', '=', $is_enable];
}
// 级别记录处理
@ -425,8 +427,63 @@ class GoodsService
}
}
}
$data = empty($data) ? $ids : array_unique(array_merge($ids, $data));
return $data;
return empty($data) ? $ids : array_unique(array_merge($ids, $data));
}
/**
* 获取商品分类的所有上级分类id
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-08-29
* @desc description
* @param [array] $ids [分类id数组]
* @param [int] $is_enable [是否启用 null, 0, 1]
* @param [int] $level [指定级别 null, 整数、默认则全部下级]
*/
public static function GoodsCategoryParentIds($ids = [], $is_enable = null, $level = null)
{
if(!is_array($ids))
{
$ids = explode(',', $ids);
}
$where = [
['id', 'in', $ids],
['pid', '>', 0],
];
if($is_enable !== null)
{
$where[] = ['is_enable', '=', $is_enable];
}
// 级别记录处理
if($level !== null)
{
if(is_array($level))
{
$level['temp'] += 1;
} else {
$level = [
'value' => $level,
'temp' => 1,
];
}
}
// 是否超过级别限制
if($level === null || $level['temp'] < $level['value'])
{
$data = Db::name('GoodsCategory')->where($where)->column('pid');
if(!empty($data))
{
$temp = self::GoodsCategoryParentIds($data, $is_enable, $level);
if(!empty($temp))
{
$data = array_merge($data, $temp);
}
}
}
return empty($data) ? $ids : array_unique(array_merge($ids, $data));
}
/**