from(GroupBuy::tableName()); $endTime = time(); $startTime = strtotime('-10 days'); $query->where(['status' => GroupBuyClass::STATUS_ONGOING]) ->andWhere(['>', 'deadline', $startTime]) ->andWhere(['<=', 'deadline', $endTime]) ->orderBy('deadline ASC'); foreach ($query->batch() as $batch) { foreach ($batch as $row) { $id = intval($row['id'] ?? 0); try { GroupBuyClass::expireById($id); } catch (\Exception $e) { noticeUtil::push( '拼团到期扫描报错 groupBuyId=' . $id . ' ' . $e->getMessage(), '15280215347' ); } } } echo "group-buy expire done\n"; } }