getDefaultform($this->mall_id, $this->user_id); $form->attributes = Yii::$app->request->post(); $form['action'] = AppEnum::ACTION_PREVIEW; !empty($form->shipping_type) && $form->shipping_type = ShippingTypeEnum::LOGISTICS; // 初始化订单数据 $orderInitDataLogic = new OrderInitDataLogic(); $form = $orderInitDataLogic->execute($form, PreviewTypeEnum::BUY_NOW); if ($form === false) return $this->error($orderInitDataLogic->getError()); // // 购买验证 //预览不做限制 // $orderLimitLogic = new OrderLimitLogic(); // $form = $orderLimitLogic->run($form); // if ($form === false) return $this->error($orderLimitLogic->getError()); // 获取收货地址 $address_info = UserAddress::getUserAddress($this->user_id, $form->address_id); $form->address_id = $address_info['id'] ?? 0; // 运费 $orderMarketingLogic = new OrderMarketingLogic(); $form = $orderMarketingLogic->run($form); if ($form === false) return $this->error($orderMarketingLogic->getError()); $group_order_goods = $form['group_order_goods']; $marketing = $form['marketing']; $pay_type_list = \Yii::$app->services->pay->getEnablePayment($this->mall_id, $this->platform); $shipping_type_list = ShippingTypeEnum::getMap(); $info = compact('group_order_goods', 'marketing', 'address_info', 'pay_type_list', 'shipping_type_list'); $info['total_pay_money'] = '¥' . $form['total_pay_money']; $info['is_address'] = $form['is_address'] ?? 0; return $this->success('操作成功', $info); } /** * 创建订单 * @Author bing * @DateTime 2021-09-22 09:31:22 * @return void * @copyright: Copyright (c) 2020 广东七件事集团 */ public function actionCreate() { $orderFormLogic = new OrderFormLogic(); $form = $orderFormLogic->getDefaultform($this->mall_id, $this->user_id); $form->attributes = Yii::$app->request->post(); $form['action'] = AppEnum::ACTION_CREATE; !empty($form->shipping_type) && $form->shipping_type = ShippingTypeEnum::LOGISTICS; // 初始化订单数据 $orderInitDataLogic = new OrderInitDataLogic(); $form = $orderInitDataLogic->execute($form, PreviewTypeEnum::BUY_NOW); if ($form === false) return $this->error($orderInitDataLogic->getError()); // 购买验证 $orderLimitLogic = new OrderLimitLogic(); $form = $orderLimitLogic->run($form); if ($form === false) return $this->error($orderLimitLogic->getError()); // 获取收货地址 $address_info = UserAddress::getUserAddress($this->user_id, $form->address_id); $form->address_id = $address_info['id']??0; // 运费 $orderMarketingLogic = new OrderMarketingLogic(); $form = $orderMarketingLogic->run($form); if ($form === false) return $this->error($orderMarketingLogic->getError()); $res = LuckyGroupOrder::createOrder($form); if ($res === false) return $this->error(LuckyGroupOrder::getStaticError()); return $this->success('操作成功', $res); } /** * 支付完成 * @return array */ public function actionPaid() { $get = \Yii::$app->request->get(); $res = \Yii::$app->services->validate->validate($get, [ [['order_id'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $order = LuckyGroupOrder::findOne(['id' => $get['order_id']]); $activity_id = $order->activity_id; $mall_id = $order->mall_id; $activity = LuckyGroupActivity::findOne($activity_id); $goods_info = Goods::getOne([['id' => $order->goods_id]]); $counts = LuckyGroupOrder::find()->where(['mall_id' => $mall_id, 'activity_id' => $activity_id, 'goods_id' => $order->goods_id, 'group_status' => LuckyGroupEnum::GROUP_JOINING, 'status' => StatusEnum::ENABLED]) ->count(); if ($counts) { $counts--; } else { $counts = 0; } $data['goods_id'] = $order->goods_id; $data['money'] = $order->money; $data['created_at'] = date('m-d H:i', $order['created_at']); $data['counts'] = $counts; $time = time(); $date = date('Y-m-d', $time); $surplus_second = strtotime($date . ' ' . $activity['end_time']) - $time; $data['surplus_second'] = $surplus_second; $data['goods_name'] = $goods_info->goods_name; $data['cover_pic'] = $goods_info->cover_pic; $data['activity_id'] = $activity_id; $data['list'] = LuckyGroupOrder::getWinText($mall_id, $activity_id, $order->goods_id); return $this->success('success', $data); } //去支付,再次支付调用 public function actionToPay() { $params = \Yii::$app->request->post(); $res = \Yii::$app->services->validate->validate($params, [ [['id'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $params['user_id'] = $this->user_id; $res = LuckyGroupOrder::toPay($params); if ($res === false) return $this->error(LuckyGroupOrder::getStaticError()); return $this->success('操作成功', $res); } //取消订单 public function actionClose() { $params = \Yii::$app->request->post(); $res = \Yii::$app->services->validate->validate($params, [ [['id'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $params['user_id'] = $this->user_id; $res = LuckyGroupOrder::close($params); if (!$res) return $this->error(LuckyGroupOrder::getStaticError()); return $this->success('操作成功', []); } }