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_delete' => 0, ]) ->select(['aoi.*', 'o.order_no', 'o.user_id']) ->asArray()->one(); if (!$adopt_order) { $t->rollBack(); return [ 'code' => 1, 'msg' => '订单不存在' ]; } if ($adopt_order['end_self_pick'] == AdoptOrderInfo::ORDER_FLOW_NO_CONFIRM_END_SELF_PICK) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您还没有采摘结束不能操作' ]; } if ($adopt_order['pick_treatment_method'] != AdoptOrderInfo::ORDER_FLOW_NO_TREATMENT_METHOD) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您已选择采摘后处理方式' ]; } $adopt_order_info = AdoptOrderInfo::findOne(['order_id' => $this->order_id, 'store_id' => $this->store_id]); if ($this->treatment_method_type == 2){ $adopt_order_info->pick_treatment_method = AdoptOrderInfo::ORDER_FLOW_PICK_STORAGE; } else { $adopt_order_info->pick_treatment_method = AdoptOrderInfo::ORDER_FLOW_PICK_TAKE; $order = Order::find()->where(['id' => $this->order_id, 'store_id' => $this->store_id, 'user_id' => $this->user_id])->one(); $order->trade_status = Order::ORDER_FLOW_CONFIRM; if (!$order->save()) { $t->rollBack(); return [ 'code' => 1, 'msg' => '操作失败' ]; } } $adopt_order_info->pick_treatment_method_time = time(); if ($adopt_order_info->save()) { $t->commit(); if ($this->treatment_method_type == 2){ $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, 9); 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, 8); NoticeSend::AdoptOrderStateChange($adopt_order['user_id'], $adopt_order_info->mobile, $adopt_order['order_no'], $goods->name, 13); return [ 'code' => 0, 'msg' => '您的商品已选择带走,感谢您的支持,祝您购物愉快~' ]; } } else { $t->rollBack(); return [ 'code' => 1, 'msg' => '操作失败' ]; } } }