request->isAjax && Yii::$app->request->isGet) { $params = Yii::$app->request->get(); $valid = Yii::$app->services->validate->validate($params, [ [['page', 'limit'], 'integer'], [['user', 'user_id', 'buy_user', 'buy_user_id', 'goods_name', 'start_date', 'end_date'], 'string'], ]); if ($valid === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $ret = (new OrderService())->page($this->mall_id, $params); return is_string($ret) ? $this->error($ret) : $this->success('获取成功',$ret); } return $this->render('index'); } public function actionCreate() { if (\Yii::$app->request->isAjax && \Yii::$app->request->isPost) { $params = Yii::$app->request->post(); $valid = Yii::$app->services->validate->validate($params, [ [['province_id', 'city_id', 'district_id', 'num', 'attr_id'], 'integer'], [['province', 'city', 'district', 'address', 'name', 'phone', 'parent_mobile', 'mobile', 'buy_user_id'], 'string'], [['province_id', 'city_id', 'district_id', 'num', 'attr_id'], 'required'], [['province', 'city', 'district', 'address', 'name', 'phone', 'mobile'], 'required'], ['mobile', 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], ['phone', 'match', 'pattern' => '/^1\d{10}$/', 'message' => '请输入正确的手机号码'], ]); if ($valid === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); // 执行创建订单 $orderFormLogic = new OrderFormLogic(); $form = $orderFormLogic->getDefaultform($this->mall_id, intval($params['buy_user_id'])); $form->attributes = [ 'data' => [ 'attr_id' => $params['attr_id'], 'num' => $params['num'], 'address_id'=> 0, 'extra_info'=> [ 'valet_order' => [ 'mobile' => $params['mobile'], 'parent' => $params['parent_mobile'] ?? '', 'backend' => StatusEnum::ENABLED, ] ] ], 'type' => 'buy_now', 'name' => $params['name'], 'mobile' => $params['phone'], 'province' => $params['province'], 'city' => $params['city'], 'district' => $params['district'], 'province_id' => $params['province_id'], 'city_id' => $params['city_id'], 'district_id' => $params['district_id'], 'address' => $params['address'], ]; $form['action'] = AppEnum::ACTION_CREATE; // 初始化订单数据 $orderInitDataLogic = new OrderInitDataLogic(); $form = $orderInitDataLogic->execute($form, $form->type); if ($form === false) return $this->error($orderInitDataLogic->getError()); $orderMarketingLogic = new OrderMarketingLogic(); $form = $orderMarketingLogic->run($form, true); if ($form === false) return $this->error($orderMarketingLogic->getError()); $res = Order::createOrder($form); if ($res === false) return $this->error(Order::getStaticError()); // 处理成功则需要支付 if (!empty($res['transaction']['trade_no'])) { // 执行支付 $params['mall_id'] = $this->mall_id; $params['mch_id'] = $this->admin->mch_id; $params['operator_id'] = $this->admin->id; $params['operator_name'] = $this->admin->account; $params['id'] = $res['transaction']['order_ids']; $service = new MallOrderService(['mall_id' => $this->mall_id]); $res = $service->adminPay($params); if ($res === false) return $this->error(Goods::getStaticError()); return $this->success(); } return $this->error("下单失败"); } return $this->render('create'); } public function actionRegion() { $id = intval(\Yii::$app->request->get('region_id', 0)); $ret = Region::lists([ 'where' => [ ['parent_id' => $id] ] ]); return $this->success('获取成功', $ret); } /** * @name: * @msg: 获取会员列表 * @param {*} * @return {*} */ public function actionUsers() { if (!\Yii::$app->request->isGet) { return $this->error('请求方式错误'); } $user_id = \Yii::$app->request->get('user_id'); $keyword = \Yii::$app->request->get('keyword'); $page = \Yii::$app->request->get('page', 1); $limit = \Yii::$app->request->get('limit', $this->pageSize); $wheres[] = ['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]; if (!empty($user_id)) { $wheres[] = ['id' => $user_id]; } if (!empty($keyword)) { $wheres[] = ['or', ['like', 'nickname', $keyword], ['like', 'mobile', $keyword]]; } $params = [ 'select' => 'id,nickname,avatar_url,mobile,level,parent_id', 'where' => $wheres, 'order' => 'created_at desc', 'page' => $page, 'limit' => $limit, ]; $user_list = User::listPage($params); if (empty($user_list['list'])) { if (false === $user_list['list']) { return $this->error(User::getStaticError()); } } else { $levels = UserLevel::find() ->select('id,level,name') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]) ->asArray() ->indexBy('level') ->all(); $parent_ids = array_column($user_list['list'], 'parent_id'); $parent_users = User::find() ->select('id,nickname,avatar_url,mobile,level,parent_id') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $parent_ids]) ->asArray() ->indexBy('id') ->all(); foreach ($user_list['list'] as &$user) { if (empty($user['avatar_url'])) { $user['avatar_url'] = \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png'; } $level = $levels[$user['level']] ?? []; $parent_user = $parent_users[$user['parent_id']] ?? []; $user['level_name'] = $level['name'] ?? ''; $user['parent_nickname'] = $parent_user['nickname'] ?? ''; } } return $this->success('success', $user_list); } public function actionGoodsAttr() { $ret = GoodsAttr::lists([ 'where' => [ ['goods_id' => \Yii::$app->request->get('goods_id')], ['status' => StatusEnum::ENABLED] ] ]); return $this->success('获取成功', $ret); } }