From ef1fd1d908e4ec9bb98e8c41a7c3b074c6d45685 Mon Sep 17 00:00:00 2001 From: luofei <604446095@qq.com> Date: Tue, 23 Jan 2024 18:26:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=B4=BB=E5=8A=A8=E4=B8=93?= =?UTF-8?q?=E5=8C=BA=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/store/StoreActivityDao.php | 17 ++++++++++------- app/controller/api/store/StoreActivity.php | 3 ++- route/api.php | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/common/dao/store/StoreActivityDao.php b/app/common/dao/store/StoreActivityDao.php index ad683647..7b021132 100644 --- a/app/common/dao/store/StoreActivityDao.php +++ b/app/common/dao/store/StoreActivityDao.php @@ -42,6 +42,7 @@ class StoreActivityDao extends BaseDao /** * 活动商品专区 + * @param $userId * @param $location * @param $streetCode * @param $activityId @@ -50,7 +51,7 @@ class StoreActivityDao extends BaseDao * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ - public function product($location, $streetCode, $activityId) + public function product($userId, $location, $streetCode, $activityId) { [$lat, $lng] = (new CityAreaDao())->getLngAndLat($location, $streetCode); $cloud_product_arr = (new CloudProductDao())->getByDistance($lat, $lng, ['activity_id' => $activityId], 4); @@ -69,17 +70,19 @@ class StoreActivityDao extends BaseDao if (!$cloud_product) { return app('json')->success(['count' => 0, 'list' => []]); } - $query = Db::name('cloud_product')->where('status', 1); - $count = $query->where(function($query){ - $query->whereOr('mer_labels', '') - ->whereOr('mer_labels',',5,'); - })->count(); /** @var SpuRepository $spuRep */ $spuRep = app()->make(SpuRepository::class); $products = $spuRep->getApiSearch($where, 1, 4, false, true); + $canBuy = 1; if ($products['list']) { $list = $products['list']; foreach ($cloud_product_arr as $key => $value) { + if (!empty($userId)) { + $buyRecord = $this->canBuy($userId, $value['product_id']); + if (!$buyRecord['is_true']) { + $canBuy = 0; + } + } foreach ($list as $k => $v) { if ($value['product_id'] == $v['product_id']) { if ($value['mer_labels'] == ',5,') { @@ -91,7 +94,7 @@ class StoreActivityDao extends BaseDao } } } - return ['count' => $count, 'list' => $list ?? []]; + return ['can_buy' => $canBuy, 'count' => $products['count'], 'list' => $list ?? []]; } /** diff --git a/app/controller/api/store/StoreActivity.php b/app/controller/api/store/StoreActivity.php index bd220d98..d31b0037 100644 --- a/app/controller/api/store/StoreActivity.php +++ b/app/controller/api/store/StoreActivity.php @@ -110,10 +110,11 @@ class StoreActivity extends BaseController */ public function product(StoreActivityDao $dao) { + $userId = $this->request->uid(); $location = $this->request->get('location'); $streetCode = $this->request->get('street_code'); $activityId = $this->request->get('activity_id', 2); - $result = $dao->product($location, $streetCode, $activityId); + $result = $dao->product($userId, $location, $streetCode, $activityId); return app('json')->success($result); } diff --git a/route/api.php b/route/api.php index 4ddeb480..eb20317d 100644 --- a/route/api.php +++ b/route/api.php @@ -467,6 +467,7 @@ Route::group('api/', function () { Route::post('receive', 'api.store.StoreActivity/receive'); //领取活动红包 Route::get('record', 'api.store.StoreActivity/record'); //活动红包获取记录 Route::get('total', 'api.store.StoreActivity/total'); //活动红包统计 + Route::get('product', 'api.store.StoreActivity/product'); //活动商品专区 }); })->middleware(UserTokenMiddleware::class, true); @@ -647,7 +648,6 @@ Route::group('api/', function () { Route::resource('store/product/cloudWarehouse', 'api.store.product.CloudWarehouse'); Route::get('store/product/town_cloud', 'api.store.product.CloudWarehouse/town'); Route::get('storeActivity/consumption', 'api.store.StoreActivity/consumption'); //消费金列表 - Route::get('storeActivity/product', 'api.store.StoreActivity/product'); //活动商品专区 Route::post('open/activityCommission', 'api.open/activityCommission'); //活动佣金回调 })->middleware(UserTokenMiddleware::class, false);