feat: 获取商品的推荐商品
parent
52ff1a01f8
commit
45de9175d3
|
@ -100,4 +100,20 @@ class Goods extends Api
|
|||
return JsonServer::error('请求方式错误');
|
||||
}
|
||||
}
|
||||
|
||||
// 获取商品的推荐商品
|
||||
public function getRecommendGoods()
|
||||
{
|
||||
if($this->request->isGet()) {
|
||||
$goodsId = input('goods_id/d',0);
|
||||
if (empty($goodsId)) {
|
||||
return JsonServer::error('参数错误');
|
||||
}
|
||||
|
||||
$data = GoodsLogic::getRecommendGoodsById($goodsId);
|
||||
return JsonServer::success('获取成功', $data);
|
||||
}else{
|
||||
return JsonServer::error('请求方式错误');
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ namespace app\api\logic;
|
|||
|
||||
use app\common\model\distribution\Distribution;
|
||||
use app\common\model\distribution\DistributionLevel;
|
||||
use app\common\model\goods\GoodsCategory;
|
||||
use app\common\model\shop\ShopFollow;
|
||||
use app\common\model\user\User;
|
||||
use app\common\basics\Logic;
|
||||
|
@ -499,6 +500,47 @@ class GoodsLogic extends Logic
|
|||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商品栏目获取商品列表
|
||||
*/
|
||||
public static function getRecommendGoodsById($goodsId, $limit = 6)
|
||||
{
|
||||
// 销售中商品:未删除/审核通过/已上架
|
||||
$onSaleWhere = [
|
||||
['del', '=', GoodsEnum::DEL_NORMAL],
|
||||
['status', '=', GoodsEnum::STATUS_SHELVES],
|
||||
['audit_status', '=', GoodsEnum::AUDIT_STATUS_OK],
|
||||
];
|
||||
|
||||
$goodsInfo = Goods::where('id', $goodsId)->field('id,name,third_cate_id')->find();
|
||||
if (empty($goodsInfo)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!empty(self::filterShopsIds())) {
|
||||
// 过滤已删除、已冻结、已暂停营业、已到期的店铺
|
||||
$onSaleWhere[] = ['shop_id', 'not in', self::filterShopsIds()];
|
||||
}
|
||||
|
||||
// $order = [
|
||||
// 'sort_weight' => 'asc', // 数字越小,权重越大
|
||||
// 'sales_actual' => 'desc',
|
||||
// 'id' => 'desc'
|
||||
// ];
|
||||
|
||||
$list = Goods::field('id,name,image,market_price,min_price,sales_actual,column_ids,sort_weight,sales_virtual,(sales_actual + sales_virtual) as sales_total')
|
||||
->where($onSaleWhere)
|
||||
->where('id', "<>", $goodsId)
|
||||
->whereFindInSet('column_ids', $goodsInfo['third_cate_id'])
|
||||
->orderRaw('RAND()')
|
||||
->limit($limit)
|
||||
->select();
|
||||
|
||||
return $list->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 获取已删除、已冻结、已暂停营业、已到期店铺的id
|
||||
* @return array
|
||||
|
|
Loading…
Reference in New Issue