コード例 #1
0
 public function actionAdd()
 {
     $model = new Goods();
     $model->setScenario('insert');
     if ($model->load(Yii::$app->request->post())) {
         $model->image = UploadedFile::getInstance($model, 'image');
         if ($model->validate()) {
             $model->cover = Yii::$app->security->generateRandomString(10) . '.' . $model->image->extension;
             if (floatval($model->price_original) < 0.01) {
                 $model->price_original = null;
             }
             $transaction = Yii::$app->db->beginTransaction();
             try {
                 if (!$model->save(false)) {
                     throw new \Exception('商品添加失败!');
                 }
                 $filename = Yii::getAlias(Yii::$app->params['goods.coverPath']) . DIRECTORY_SEPARATOR . $model->cover;
                 if (!$model->image->saveAs($filename)) {
                     throw new \Exception('封面图片添加失败!');
                 }
                 // 记录商品库存
                 $goodsSurplus = new GoodsSurplus();
                 $goodsSurplus->goods_id = $model->id;
                 $goodsSurplus->surplus_before = 0;
                 $goodsSurplus->amount = $model->surplus;
                 $goodsSurplus->surplus_after = $model->surplus;
                 $goodsSurplus->remark = '初始化库存。';
                 if (!$goodsSurplus->save(false)) {
                     throw new \Exception('商品库存记录失败!');
                 }
                 $transaction->commit();
                 Yii::$app->session->setFlash('success', '成功添加商品“' . $model->name . '”。');
                 return $this->refresh();
             } catch (\Exception $e) {
                 $transaction->rollBack();
                 Yii::$app->session->setFlash('danger', $e->getMessage());
             }
         }
     }
     return $this->render('form', ['model' => $model]);
 }
コード例 #2
0
ファイル: Goods.php プロジェクト: daixianceng/xiaoego.com
 /**
  * 调整库存
  * 
  * @param integer $number
  * @param string $remark
  * @throws \Exception
  * @return boolean
  */
 public function moveSurplus($number, $remark)
 {
     $number = (int) $number;
     $surplusOriginal = $this->surplus;
     $this->surplus += $number;
     if ($this->surplus < 0) {
         $this->surplus = 0;
     }
     if ($surplusOriginal == $this->surplus) {
         return true;
     }
     $transaction = Yii::$app->db->beginTransaction();
     try {
         if (!$this->save(false)) {
             throw new \Exception('商品错误!');
         }
         $goodsSurplus = new GoodsSurplus();
         $goodsSurplus->goods_id = $this->id;
         $goodsSurplus->surplus_before = $surplusOriginal;
         $goodsSurplus->amount = $number;
         $goodsSurplus->surplus_after = $this->surplus;
         $goodsSurplus->remark = $remark;
         if (!$goodsSurplus->save(false)) {
             throw new \Exception('商品库存记录失败!');
         }
         $transaction->commit();
         return true;
     } catch (\Exception $e) {
         $transaction->rollBack();
         return false;
     }
 }