16], [['start', 'end'], 'string', 'max' => 32], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'spec_time' => 'Spec Time', 'start' => 'Start', 'end' => 'End', 'reserve_time_id' => 'Reserve Time ID', 'reserve_sku_id' => 'Reserve Sku ID', 'checked' => 'Checked', 'is_next' => 'Is Next', 'stock' => 'Stock', 'price' => 'Price', 'original_price' => 'Original Price', 'cost_price' => 'Cost Price', 'reserve_max_buy' => 'Reserve Max Buy', 'updated_at' => 'Updated At', 'created_at' => 'Created At', ]; } // 设置sku的可预约时间 public static function setTimeSpec($reserveTime, $timeSpecs,&$totalStock) { try { array_map(function ($val) use (&$reserveTime,&$totalStock) { $model = new self(); $model->loadDefaultValues(); $attributes = [ 'spec_time' => $val['spec_time'], 'start' => $val['start'], 'end' => $val['end'], 'reserve_time_id' => $reserveTime['id'], 'price' => $val['price'] ?? 0, 'original_price' => $val['original_price'] ?? 0, 'cost_price' => $val['cost_price'] ?? 0, 'reserve_max_buy' => $val['reserve_max_buy'] ?? 0, 'reserve_sku_id' => $reserveTime['reserve_sku_id'] ?? 0, 'stock' => $val['reserve_max_buy'] ?? 0, 'checked' => $val['checked'], 'is_next' => $val['is_next'], ]; $totalStock += $val['reserve_max_buy']; if (!$model->load($attributes, '') || !$model->save()) { throw new Exception($model->getErrorMessage()); } }, $timeSpecs); } catch (Exception $e) { if (isset($trans)) $trans->rollback(); self::$static_error = $e->getMessage(); return false; } } }