glhcp/server/app/api/logic/GoodsBrandLogic.php

70 lines
1.9 KiB
PHP
Raw Normal View History

2023-08-10 06:59:52 +00:00
<?php
namespace app\api\logic;
use app\common\basics\Logic;
use app\common\model\goods\Goods;
2023-08-10 06:59:52 +00:00
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;
}
2023-08-10 06:59:52 +00:00
}