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

70 lines
1.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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;
}
}