diff --git a/app/Controller/v3/GoodsRecommendController.php b/app/Controller/v3/GoodsRecommendController.php index 7528c17..2f265d8 100644 --- a/app/Controller/v3/GoodsRecommendController.php +++ b/app/Controller/v3/GoodsRecommendController.php @@ -51,6 +51,11 @@ class GoodsRecommendController extends BaseController ->whereRaw(''.$goodsTable.'.deleted_at IS NULL') ->where(function ($query) use ($goodsTable) { $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1); + }) + ->where('time1', '<=', date('H:i')) + ->where(function ($query) { + $query->where('time2', '>=', date('H:i')) + ->orWhere('time4', '>=', date('H:i')); }); // $builder = Goods::query()->with('store') @@ -122,6 +127,11 @@ class GoodsRecommendController extends BaseController ->where(function ($query) use ($goodsTable) { $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1); }) + ->where('time1', '<=', date('H:i')) + ->where(function ($query) { + $query->where('time2', '>=', date('H:i')) + ->orWhere('time4', '>=', date('H:i')); + }) ->inRandomOrder() ->limit(20) ->get()->toArray(); diff --git a/app/Request/v3/GoodsRequest.php b/app/Request/v3/GoodsRequest.php index b135e2e..ff315a4 100644 --- a/app/Request/v3/GoodsRequest.php +++ b/app/Request/v3/GoodsRequest.php @@ -15,7 +15,7 @@ class GoodsRequest extends BaseFormRequest public function rules(): array { return [ - 'goods_id' => 'required|nonempty|integer|exists_enable:lanzu_goods_new,id,on_sale=1', + 'goods_id' => 'required|nonempty|integer', ]; } diff --git a/app/Service/v3/Implementations/ActivityService.php b/app/Service/v3/Implementations/ActivityService.php index e5ed0bf..eafe022 100644 --- a/app/Service/v3/Implementations/ActivityService.php +++ b/app/Service/v3/Implementations/ActivityService.php @@ -2,9 +2,11 @@ namespace App\Service\v3\Implementations; -use App\Constants\v3\ActivityType; +use App\Constants\v3\Goods as GoodsConstants; use App\Model\v3\GoodsActivity; +use App\Model\v3\Store; use App\Service\v3\Interfaces\ActivityServiceInterface; +use Hyperf\Utils\ApplicationContext; class ActivityService implements ActivityServiceInterface { @@ -26,16 +28,33 @@ class ActivityService implements ActivityServiceInterface public function allForAppletIndex($type, $marketId) { + + $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(['type' => $type]) - ->where(function ($query) use ($marketId) { - $query->whereJsonContains("market_ids", [(string)$marketId]) - ->orWhereJsonLength("market_ids", '=', 0); + ->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('time1', '<=', date('H:i')) + ->where(function ($query) { + $query->where('time2', '>=', date('H:i')) + ->orWhere('time4', '>=', date('H:i')); }); - return $builder->orderBy('sort', 'DESC') - ->orderBy('expire_time', 'ASC') + return $builder->select(''.$goodsTable.'.*')->addSelect(''.$goodsTable.'.sales as total_sales') + ->orderBy(''.$goodsTable.'.sort', 'DESC') + ->orderBy(''.$goodsTable.'.expire_time', 'ASC') ->get()->toArray(); } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/SearchService.php b/app/Service/v3/Implementations/SearchService.php index 4bc658a..151a601 100644 --- a/app/Service/v3/Implementations/SearchService.php +++ b/app/Service/v3/Implementations/SearchService.php @@ -38,6 +38,11 @@ class SearchService implements SearchServiceInterface ->with(['store']) ->where(function ($query) use ($goodsTable) { $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1); + }) + ->where('time1', '<=', date('H:i')) + ->where(function ($query) { + $query->where('time2', '>=', date('H:i')) + ->orWhere('time4', '>=', date('H:i')); }); if (isset($params['store_id']) && $params['store_id']) { @@ -102,7 +107,12 @@ class SearchService implements SearchServiceInterface $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1); }) ->whereRaw(''.$goodsTable.'.deleted_at IS NULL') - ->where([''.$storeTable.'.market_id' => $params['market_id']]); + ->where([''.$storeTable.'.market_id' => $params['market_id']]) + ->where('time1', '<=', date('H:i')) + ->where(function ($query) { + $query->where('time2', '>=', date('H:i')) + ->orWhere('time4', '>=', date('H:i')); + }); if (isset($params['store_id']) && $params['store_id']) { $builder->where([''.$storeTable.'.store_id' => $params['store_id']]);