|
@@ -13,6 +13,7 @@ use app\common\model\AttributeValue;
|
|
|
// use app\common\model\UserCoupon;
|
|
|
use fast\Http;
|
|
|
use think\Log;
|
|
|
+use think\Db;
|
|
|
use app\common\Service\SkuSpec as SkuSpecService;
|
|
|
/**
|
|
|
* 商品接口
|
|
@@ -146,16 +147,16 @@ class Goods extends Base
|
|
|
public function lists()
|
|
|
{
|
|
|
$param = $this->request->param();
|
|
|
- $pageNum = (int)$this->request->param('pageNum', 10);
|
|
|
+ $pageSize = (int)$this->request->param('pageSize', 10);
|
|
|
$orderby = $this->request->param('orderby', 'weigh');
|
|
|
$orderway = $this->request->param('orderway', 'desc');
|
|
|
|
|
|
$list = GoodsModel::where(function ($query) use ($param) {
|
|
|
$query->where('status',GoodsEnum::STATUS_ON_SALE);
|
|
|
//关键词
|
|
|
- if (isset($param['keyword']) && !empty($param['keyword'])) {
|
|
|
- $query->where('title|keywords', 'like', '%' . $param['keyword'] . '%');
|
|
|
- $log = \app\common\model\SearchLog::getByKeywords($param['keyword']);
|
|
|
+ if (isset($param['keywords']) && !empty($param['keywords'])) {
|
|
|
+ $query->where('title|keywords', 'like', '%' . $param['keywords'] . '%');
|
|
|
+ $log = \app\common\model\SearchLog::getByKeywords($param['keywords']);
|
|
|
if ($log) {
|
|
|
$log->setInc("nums");
|
|
|
} else {
|
|
@@ -165,11 +166,13 @@ class Goods extends Base
|
|
|
//分类
|
|
|
if (isset($param['category_id']) && !empty($param['category_id'])) {
|
|
|
$categoryIds = \app\common\model\Category::getCategoryChildrenIds($param['category_id']);
|
|
|
- $query->where(function($q) use ($categoryIds) {
|
|
|
- foreach ($categoryIds as $categoryId) {
|
|
|
- $q->whereOr('category_ids', 'exp', "FIND_IN_SET('{$categoryId}', category_ids)");
|
|
|
- }
|
|
|
- });
|
|
|
+ $conditions = [];
|
|
|
+ foreach ($categoryIds as $categoryId) {
|
|
|
+ $conditions[] = "FIND_IN_SET('{$categoryId}', `category_ids`)";
|
|
|
+ }
|
|
|
+ if (!empty($conditions)) {
|
|
|
+ $query->whereRaw('(' . implode(' OR ', $conditions) . ')');
|
|
|
+ }
|
|
|
}
|
|
|
//属性
|
|
|
if (isset($param['attributes']) && !empty($param['attributes'])) {
|
|
@@ -192,7 +195,7 @@ class Goods extends Base
|
|
|
$query->where('price', 'BETWEEN', $priceArr);
|
|
|
}
|
|
|
}
|
|
|
- })->order("{$orderby} {$orderway}")->paginate($pageNum);
|
|
|
+ })->order("{$orderby} {$orderway}")->paginate($pageSize);
|
|
|
|
|
|
foreach ($list as $item) {
|
|
|
$item->visible(explode(',', 'id,title,image,price,sales,views,description,marketprice,createtime'));
|