validate()) { return $this->getErrorSummary(false)[0]; } $t = \Yii::$app->db->beginTransaction(); $adopt_order = Order::find()->alias('o') ->where([ 'o.store_id' => $this->store_id, 'o.user_id' => $this->user_id, 'o.id' => $this->order_id, 'o.is_delete' => 0, ]) ->leftJoin(AdoptOrderInfo::tableName() . ' aoi', "aoi.order_id = o.id ") ->andWhere([ 'aoi.is_mature' => AdoptOrderInfo::ORDER_FLOW_MATURE, 'aoi.is_preserve' => AdoptOrderInfo::ORDER_FLOW_WAIT_PRESERVE, 'aoi.is_delete' => 0, 'aoi.pick_treatment_method' => AdoptOrderInfo::ORDER_FLOW_PICK_STORAGE ]) ->select(['aoi.*', 'o.order_no', 'o.user_id']) ->asArray()->one(); if (!$adopt_order) { $t->rollBack(); return [ 'code' => 1, 'msg' => '订单不存在' ]; } if ($adopt_order['is_preserve'] != AdoptOrderInfo::ORDER_FLOW_WAIT_PRESERVE) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您已选择保管方式' ]; } $adopt_order_info = AdoptOrderInfo::findOne(['order_id' => $this->order_id, 'store_id' => $this->store_id]); if ($this->preserve_type == 1){ $adopt_order_info->is_preserve = AdoptOrderInfo::ORDER_FLOW_NO_PRESERVE; $order1 = Order::find()->where(['id' => $this->order_id, 'store_id' => $this->store_id, 'user_id' => $this->user_id])->one(); $order1->trade_status = Order::ORDER_FLOW_CONFIRM; if (!$order1->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => '操作失败' ]; } }else { $adopt_order_info->is_preserve = AdoptOrderInfo::ORDER_FLOW_PRESERVE; } $adopt_order_info->preserve_time = time(); if ($adopt_order_info->save()) { $t->commit(); if ($this->preserve_type == 1){ $goods = Goods::findOne(OrderDetail::findOne(['order_id' => $this->order_id])->goods_id); NoticeSend::AdoptOrderStateChange($adopt_order['user_id'], $adopt_order_info->mobile, $adopt_order['order_no'], $goods->name, 12); NoticeSend::AdoptOrderStateChange($adopt_order['user_id'], $adopt_order_info->mobile, $adopt_order['order_no'], $goods->name, 13); return [ 'code' => 0, 'msg' => '您的商品已选择不保管,感谢您的支持,祝您购物愉快~' ]; } else { $goods = Goods::findOne(OrderDetail::findOne(['order_id' => $this->order_id])->goods_id); NoticeSend::AdoptOrderStateChange($adopt_order['user_id'], $adopt_order_info->mobile, $adopt_order['order_no'], $goods->name, 11); return [ 'code' => 0, 'msg' => '您的商品已选择保管,请记得来提货哦,感谢您的支持~' ]; } } else { $t->rollBack(); return [ 'code' => 1, 'msg' => '操作失败' ]; } } }