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.pick_method' => AdoptOrderInfo::ORDER_FLOW_SELF_PICK, 'aoi.is_delete' => 0, ]) ->select(['aoi.*', 'o.order_no', 'o.user_id']) ->asArray()->one(); if (!$adopt_order) { $t->rollBack(); return [ 'code' => 1, 'msg' => '订单不存在' ]; } if ($this->state_type == 1) { //开始采摘 if ($adopt_order['confirm_self_pick_book'] == AdoptOrderInfo::ORDER_FLOW_NO_CONFIRM_SELF_PICK_BOOK) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您还未预约成功,管理员审核通过后才能开始采摘' ]; } if ($adopt_order['start_self_pick'] == AdoptOrderInfo::ORDER_FLOW_CONFIRM_START_SELF_PICK) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您已开始自采' ]; } }else{ //采摘结束 // if ($adopt_order->pick_treatment_method == AdoptOrderInfo::ORDER_FLOW_NO_TREATMENT_METHOD) { // $t->rollBack(); // return [ // 'code' => 1, // 'msg' => '您还未选择采摘后处理方式,不能自采完成' // ]; // } if ($adopt_order['start_self_pick'] == AdoptOrderInfo::ORDER_FLOW_NO_CONFIRM_START_SELF_PICK) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您还未开始自采,不能自采完成' ]; } if ($adopt_order['end_self_pick'] == AdoptOrderInfo::ORDER_FLOW_CONFIRM_END_SELF_PICK) { $t->rollBack(); return [ 'code' => 1, 'msg' => '您已自采完成' ]; } } $adopt_order_info = AdoptOrderInfo::findOne(['order_id' => $this->order_id, 'store_id' => $this->store_id]); if ($this->state_type == 2){ $adopt_order_info->end_self_pick = AdoptOrderInfo::ORDER_FLOW_CONFIRM_END_SELF_PICK; $adopt_order_info->end_self_pick_time = time(); } else { $adopt_order_info->start_self_pick = AdoptOrderInfo::ORDER_FLOW_CONFIRM_START_SELF_PICK; $adopt_order_info->start_self_pick_time = time(); } if ($adopt_order_info->save()) { $t->commit(); if ($this->state_type == 2) { $goods = Goods::findOne(OrderDetail::findOne(['order_id' => $this->order_id])->goods_id); NoticeSend::AdoptOrderStateChange($adopt_order['user_id'], $adopt_order->mobile, $adopt_order['order_no'], $goods->name, 6); 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->mobile, $adopt_order['order_no'], $goods->name, 5); return [ 'code' => 0, 'msg' => '您的商品已开始自采,请记得来庄园采摘哦,感谢您的支持~' ]; } } else { $t->rollBack(); return [ 'code' => 1, 'msg' => '操作失败' ]; } } }