Browse Source

特价商品排序

master
Lemon 5 years ago
parent
commit
c274fd1ece
  1. 42
      app/Service/v3/Implementations/GoodsActivityService.php

42
app/Service/v3/Implementations/GoodsActivityService.php

@ -5,8 +5,10 @@ namespace App\Service\v3\Implementations;
use App\Commons\Log;
use App\Constants\v3\ActivityType;
use App\Constants\v3\ErrorCode;
use App\Constants\v3\Goods as GoodsConstants;
use App\Constants\v3\LogLabel;
use App\Constants\v3\SsdbKeys;
use App\Model\v3\Store;
use App\Service\v3\Interfaces\GoodsActivityServiceInterface;
use App\Service\v3\Interfaces\GoodsInventoryServiceInterface;
use App\TaskWorker\SSDBTask;
@ -194,8 +196,42 @@ class GoodsActivityService implements GoodsActivityServiceInterface
public function getList($marketId,$page,$pagesize)
{
$paginate = GoodsActivity::query()->where('market_id',$marketId)->orderByDesc('created_at')->paginate($pagesize);
$goods = $paginate->toArray();
return ['has_more_pages' => $paginate->hasMorePages(),'goods' => $goods['data']];
$storeTable = ApplicationContext::getContainer()->get(Store::class)->getTable();
$goodsTable = ApplicationContext::getContainer()->get(GoodsActivity::class)->getTable();
$builder = GoodsActivity::query()
->join($storeTable, ''.$storeTable.'.id', '=', ''.$goodsTable.'.store_id')
->with(['store'])
//->where([''.$goodsTable.'.type' => $type])
->where(function ($query) use ($marketId, $goodsTable) {
$query->whereJsonContains(''.$goodsTable.'.market_ids', [(string)$marketId])
->orWhereJsonLength(''.$goodsTable.'.market_ids', '=', 0);
})
->where([''.$goodsTable.'.on_sale' => GoodsConstants::ON_SALE_YES])
// ->where(function ($query) use ($goodsTable) {
// $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1);
// })
->whereRaw(''.$goodsTable.'.deleted_at IS NULL')
->where([''.$storeTable.'.market_id' => $marketId])
->where([''.$storeTable.'.is_open' => \App\Constants\v3\Store::IS_OPEN_YES])
->where([''.$storeTable.'.is_rest' => \App\Constants\v3\Store::IS_REST_NO])
->where('time1', '<=', date('H:i'))
->where(function ($query) {
$query->where('time2', '>=', date('H:i'))
->orWhere('time4', '>=', date('H:i'));
})
->where(''.$goodsTable.'.expire_time', '>', time());
$paginate = $builder->select(''.$goodsTable.'.*')->addSelect(''.$goodsTable.'.sales as total_sales')
->orderBy(''.$goodsTable.'.sort', 'DESC')
->orderBy(''.$goodsTable.'.expire_time', 'ASC')
->orderBy(''.$goodsTable.'.created_at', 'DESC')
->paginate($pagesize);
$goodsArr = $paginate->toArray();
$goods = collect($goodsArr['data']);
$goods = $goods->sortBy(function ($product, $key) {
return $product['noneffective_note'];
});
$goods = $goods->values()->all();
return ['has_more_pages' => $paginate->hasMorePages(), 'goods' => $goods];
}
}
Loading…
Cancel
Save