70 lines
1.9 KiB
PHP
70 lines
1.9 KiB
PHP
<?php
|
||
namespace app\api\logic;
|
||
|
||
use app\common\basics\Logic;
|
||
use app\common\model\goods\Goods;
|
||
use app\common\model\goods\GoodsBrand;
|
||
|
||
class GoodsBrandLogic extends Logic
|
||
{
|
||
/**
|
||
* 获取品牌列表
|
||
*/
|
||
public static function getGoodsBrandList()
|
||
{
|
||
$where = [
|
||
'del' => 0, // 未删除
|
||
'is_show' => 1, // 显示
|
||
];
|
||
$list = GoodsBrand::field('id,name,image,initial')
|
||
->where($where)
|
||
->order('sort', 'asc')
|
||
->select()
|
||
->toArray();
|
||
|
||
return self::format($list);
|
||
}
|
||
|
||
/**
|
||
* 格式化品牌数据
|
||
*/
|
||
public static function format($list)
|
||
{
|
||
// 生成A-Z字母
|
||
$letters = range('A', 'Z');
|
||
$newList = [];
|
||
foreach($letters as $key => $letter) {
|
||
$newList[$key]['letter'] = $letter;
|
||
$newList[$key]['list'] = [];
|
||
foreach($list as $item) {
|
||
if(strtoupper($item['initial']) == $letter) {
|
||
$newList[$key]['list'][] = $item;
|
||
}
|
||
}
|
||
// 去除字母下没有品牌的项
|
||
if(!$newList[$key]['list']) {
|
||
unset($newList[$key]);
|
||
}
|
||
}
|
||
// 重置下标索引
|
||
$newList = array_merge([], $newList);
|
||
return $newList;
|
||
}
|
||
|
||
// 通过分类ID 获取相关联的品牌列表
|
||
// 逻辑: 通过分类ID查询以该分类ID为三级分类的产品有哪些,再从产品中获得品牌ID再去重
|
||
public static function getByCateId($cateId)
|
||
{
|
||
$list = Goods::alias('g')
|
||
->field('g.brand_id')
|
||
->join('goods_brand gb', 'g.brand_id = gb.id')
|
||
->where('g.third_cate_id', $cateId)
|
||
->where('gb.del',0)
|
||
->where('gb.is_show',1)
|
||
->group('g.brand_id')
|
||
->field('gb.id,gb.name')
|
||
->select()->toArray();
|
||
return $list;
|
||
|
||
}
|
||
} |