50000], ]; } public function attributeLabels() { return [ 'orderSn' => '订单号', 'remark' => '发票备注', ]; } /** * 指定校验场景 * @return array */ public function scenarios() { $parentScenarios = parent::scenarios(); $customScenarios = []; return array_merge($parentScenarios, $customScenarios); } /** * @throws Exception */ public function remarkOrderInvoice() { if (!$this->validate()) { return null; } $sn = $this->orderSn; // 订单详情 $orderInfo = Order::findUseDbCalc() ->select('ID,INVOICE_REMARK,SN,INVOICE_REMARK_EDIE_CNT,STATUS,COUNTRY_ID') ->where("SN=:SN", [':SN' => $sn]) ->asArray() ->one(); if (!$orderInfo) { throw new Exception('订单不存在'); } // 已经修改过就可以再修改了 if ($orderInfo['INVOICE_REMARK_EDIE_CNT'] > 0) { throw new Exception('订单已经修改过,不能再修改'); } $db = \Yii::$app->db; $transaction = $db->beginTransaction(); try { Order::updateAll( ['INVOICE_REMARK' => 1, 'INVOICE_REMARK_EDIE_CNT' => 1], 'SN=:SN', ['SN' => $sn] ); $transaction->commit(); } catch(Exception $e) { $transaction->rollBack(); $this->addError('add', $e->getMessage()); return null; } return true; } }