where([ ['start_time', '<=', time()], ['end_time', '>=', time()], ['status', '=', SeckillEnum::SECKILL_STATUS_CONDUCT] ])->column('id'); // 查询出活动中的商品数据 $lists = (new SeckillGoods())->alias('TG') ->field('TG.*') ->whereIn('TG.seckill_id', $activityIds) ->join('seckill_activity TA', 'TA.id = TG.seckill_id') ->order('TG.min_seckill_price asc') ->limit($this->limitOffset, $this->limitLength) ->select()->toArray(); // 处理数据 foreach ($lists as &$item) { $item['name'] = $item['goods_snap']['name']; $item['image'] = $item['goods_snap']['image']; $item['original_price'] = $item['goods_snap']['max_price']; $item['closing_order'] = SeckillGoodsItem::where([ 'seckill_id' => $item['seckill_id'], 'goods_id' => $item['goods_id'] ])->sum('closing_order'); $item['sales_volume'] = SeckillGoodsItem::where([ 'seckill_id' => $item['seckill_id'], 'goods_id' => $item['goods_id'] ])->sum('sales_volume'); unset($item['goods_snap']); } return $lists; } /** * @notes 秒杀活动数量 * @return int * @author 张无忌 * @date 2021/7/29 18:13 */ public function count(): int { $activityIds = (new SeckillActivity())->where([ ['start_time', '<=', time()], ['end_time', '>=', time()], ['status', '=', SeckillEnum::SECKILL_STATUS_CONDUCT] ])->column('id'); return (new SeckillGoods())->alias('TG') ->field('TG.*') ->whereIn('TG.seckill_id', $activityIds) ->join('seckill_activity TA', 'TA.id = TG.seckill_id') ->count(); } }