diff --git a/app/Constants/v3/ErrorCode.php b/app/Constants/v3/ErrorCode.php index 2a6f7c6..9fa3de0 100644 --- a/app/Constants/v3/ErrorCode.php +++ b/app/Constants/v3/ErrorCode.php @@ -262,7 +262,7 @@ class ErrorCode extends AbstractConstants /** * 当前特价商品已被购买过 - * @Message("有活动商品您已买过") + * @Message("活动商品您已买过") */ const GOODS_ACTIVITY_BUY = 1151; @@ -286,7 +286,7 @@ class ErrorCode extends AbstractConstants /** * 商品超过限购数量 - * @Message("有活动商品超过限购数量") + * @Message("同类活动商品超过限购数量") */ const GOODS_ACTIVITY_RESTRICT_LIMIT = 1155; diff --git a/app/Service/v3/Implementations/GoodsActivityService.php b/app/Service/v3/Implementations/GoodsActivityService.php index 9e0bc45..e15ad50 100644 --- a/app/Service/v3/Implementations/GoodsActivityService.php +++ b/app/Service/v3/Implementations/GoodsActivityService.php @@ -140,8 +140,13 @@ class GoodsActivityService implements GoodsActivityServiceInterface public function checkOrderActivityCount($orderGoods, $limitNum=1) { + $goodsIds = []; + foreach ($orderGoods as $key => &$storeGoods) { + $goodsIds = array_merge($goodsIds, array_column(array_values($storeGoods), 'goods_id')); + } + $sourceGoods = GoodsActivity::query() - ->whereIn('id', array_values(array_column($orderGoods, 'goods_id'))) + ->whereIn('id', $goodsIds) ->get()->toArray(); $limitNums = [ diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 3900cd8..6208a23 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -339,9 +339,10 @@ class OrderOnlineService implements OrderOnlineServiceInterface // 订单成功,做一些处理 // 活动商品购买记录 foreach ($dataOrderGoods as $key => &$goods) { - foreach ($goods as $k => &$goodsItem) - if ($goodsItem['activity_type'] == 2) { - $this->goodsActivityService->cacheRecord($goodsItem['goods_id'], $goodsItem['number'], $userId); + foreach ($goods as $k => &$goodsItem) { + if ($goodsItem['activity_type'] == 2) { + $this->goodsActivityService->cacheRecord($goodsItem['goods_id'], $goodsItem['number'], $userId); + } } }