delete(); } $saveData['goods_id'] = $goodsId; $saveData['uniacid'] = \YunShop::app()->uniacid; $saveData['status'] = empty($data['status']) ? 0 : $data['status']; $saveData['start_time'] = $data['start_time']; $saveData['end_time'] = $data['end_time']; $saveData['display_name'] = $data['display_name']; $changeTime = 0; if($saleModel->end_time <> $saveData['end_time'] && $saveData['end_time'] >= time() && $saveData['status']){ $changeTime = 1; } $saleModel->setRawAttributes($saveData); if ($saleModel->getOriginal('start_time') != $saveData['start_time'] || $saleModel->getOriginal('end_time') != $saveData['end_time']) { $goods = self::getGoodsById($goodsId); $saleModel->original_stock = $goods->stock; } $res = $saleModel->save(); if($res && $changeTime){ //触发限时购延时队列任务(用于后续触发限时购商品下架事件) $diff = ($saveData['end_time'] - time()) + 30; $job = (new LimitBuyEndJob($saleModel->toArray()))->delay(Carbon::now()->addSeconds(intval($diff))); dispatch($job); } return $res; } public static function getModel($goodsId, $operate) { $model = false; if ($operate != 'created') { $model = static::where(['goods_id' => $goodsId])->first(); } !$model && $model = new static; return $model; } public function getGoodsById($goodsId) { return Goods::find($goodsId); } }