filterCondition([ 'TYPE'=> 'TYPE', 'GIFT_TYPE'=> 'GIFT_TYPE', 'STATUS'=> 'STATUS', 'GOODS_NAME'=> 'GOODS_NAME', 'GOODS_NO'=> 'GOODS_NO', 'SELL_TYPE'=> 'SELL_TYPE', 'PRICE_PV'=> 'PRICE_PV', 'CATEGORY_TYPE' => 'CATEGORY_TYPE', 'AUTO_MAINTENANCE' => 'AUTO_MAINTENANCE', ]); $condition = $filter['condition']; $params = $filter['params']; $condition .= ' '; $listObj = new GoodsList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 商品属性 * @return mixed * @throws Exception * @throws HttpException */ public function actionGoodsNature() { $data = ShopGoodsNature::findAllAsArray('GOODS_ID=:GOODS_ID', [':GOODS_ID' => \Yii::$app->request->get('GOOD_ID')]); return static::notice($data); } /** * 商品列表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionGoodsListExport() { $filter = $this->filterCondition([ 'TYPE'=> 'TYPE', 'GIFT_TYPE'=> 'GIFT_TYPE', 'STATUS'=> 'STATUS', 'GOODS_NAME'=> 'GOODS_NAME', 'GOODS_NO'=> 'GOODS_NO', 'SELL_TYPE'=> 'SELL_TYPE', 'PRICE_PV'=> 'PRICE_PV', 'CATEGORY_TYPE' => 'CATEGORY_TYPE', 'AUTO_MAINTENANCE' => 'AUTO_MAINTENANCE', ]); $form = new ShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopExportListName')); // 商品列表 if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } /** * 添加商品 * @return mixed * @throws Exception * @throws HttpException */ public function actionGoodsAdd() { if (\Yii::$app->request->isPost) { $formModel = new ShopGoodsForm(); $formModel->scenario = 'add'; if ($formModel->load(\Yii::$app->request->post(), '') && $result = $formModel->add()) { return static::notice(\Yii::t('ctx', 'shopProductAddSucceededNotice')); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()),400); } } $countries = Cache::getCountries(); $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']); if (!$isSuper) { $adminId = Yii::$app->getUser()->getUserInfo()['id']; $adminCountry = AdminCountry::getCountry($adminId); $countries = array_filter($countries, fn($country) => in_array($country['ID'], $adminCountry)); $countries = array_values($countries); } return static::notice([ 'sellType' => ShopGoods::getSaleType(), 'goodsType' => ShopGoods::getGoodType(), 'giftType' => ShopGoods::getGiftType(), 'categoryType' => ShopGoods::getCategoryType(), 'countries' => $countries, ]); } /** * 编辑商品 * @return mixed * @throws Exception * @throws HttpException */ public function actionGoodsEdit() { $id = \Yii::$app->request->get('id'); if (\Yii::$app->request->isPost) { $formModel = new ShopGoodsForm(); $formModel->scenario = 'edit'; $formModel->id = $id; if ($formModel->load(\Yii::$app->request->post(), '') && $result = $formModel->edit()) { return static::notice(\Yii::t('ctx', 'shopProductEditSucceed')); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()),400); } } $data = ShopGoods::findOneAsArray('ID=:ID', [':ID' => $id]); $data['SELL_TYPE'] = explode(',',$data['SELL_TYPE']); $data['GIFT_TYPE'] = explode(',',$data['GIFT_TYPE']); if ($data['TYPE'] == 1 || $data['TYPE'] == 2) { $data['SELL_DISCOUNT'] = ShopGoods::getGoodType()[$data['TYPE']]['discount']/100; } // 国家 $countries = Cache::getCountries(); // 货币 $currencies = Cache::getCurrencies(); $currencies = array_column($currencies, NULL, 'ID'); // 货币汇率 $currenciesConversions = CurrencyConversions::getFromCache(); $currenciesConversions = array_column($currenciesConversions, NULL, 'TO_CURRENCY_ID'); $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']); if (!$isSuper) { $adminId = Yii::$app->getUser()->getUserInfo()['id']; $adminCountry = AdminCountry::getCountry($adminId); $countries = array_filter($countries, fn($country) => in_array($country['ID'], $adminCountry)); $countries = array_values($countries); } foreach ($countries as $key => $country) { // 货币 $countries[$key]['LOCAL_CURRENCY_NAME'] = $currencies[$country['LOCAL_CURRENCY_ID']]['NAME'] ?? ''; $countries[$key]['CURRENCY_PRODUCT_RATE'] = $currenciesConversions[$country['LOCAL_CURRENCY_ID']]['PRODUCT_RATE'] ?? 0; // 商品属性 $countries[$key]['SHOP_GOODS_NATURE'] = ShopGoodsNature::findAllAsArray('GOODS_ID=:GOODS_ID AND COUNTRY_ID=:COUNTRY_ID', [':GOODS_ID' => $id, ':COUNTRY_ID' => $country['ID']]); } $data['SHOP_GOODS_NATURE'] = array_values($countries); return static::notice( [ 'goodsInfo'=>$data, 'sellType' => ShopGoods::getSaleType(), 'goodsType' => ShopGoods::getGoodType(), 'giftType' => ShopGoods::getGiftType(),//ShopGoods::GIFT_TYPE, 'categoryType' => ShopGoods::getCategoryType(),//ShopGoods::CATEGORY_TYPE, ] ); } /** * 上传图片 * @return mixed * @throws \yii\base\Exception * @throws \yii\db\Exception * @throws HttpException */ public function actionUpload(){ if(\Yii::$app->request->isPost){ $formModel = new UploadForm(); $formModel->scenario = 'goodsImg'; $formModel->file = UploadedFile::getInstanceByName('file'); $formModel->token = \Yii::$app->request->request('uploadToken'); if($formModel->file && $uploader = $formModel->upload()){ return static::notice($uploader->URL); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } else { $token = Cache::setUploadToken(); return static::notice($token); } } /** * 商品上下架 * @return mixed * @throws Exception */ public function actionGoodsStatus() { $id = \Yii::$app->request->get('id'); if (\Yii::$app->request->isPost) { $formModel = new ShopGoodsForm(); $formModel->scenario = 'changeStatus'; if ($formModel->load(\Yii::$app->request->post(), '') && $result = $formModel->changeStatus()) { return static::notice(\Yii::t('ctx', 'shopStatusSetSucceedNotice')); // 状态设置成功 } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } } /** * 删除商品 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionGoodsDelete(){ $result = static::delete(ShopGoods::class); return $result; } /** * 套餐列表 * @return mixed * @throws Exception * @throws HttpException */ public function actionPackage() { $filter = $this->filterCondition([ 'LEVEL_NAME'=> 'DP.LEVEL_ID', 'PACKAGE_NAME'=> 'DP.PACKAGE_NAME', 'AMOUNT'=> 'DP.AMOUNT', 'PV'=> 'DP.PV', 'STATUS'=> 'DP.STATUS', 'STORE_NUMS'=>'DP.STORE_NUMS', ]); $condition = $filter['condition']; $params = $filter['params']; $condition .= ' AND DP.IS_DEL=0'; $listObj = new PackageList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 添加报单套餐 * @return mixed * @throws HttpException */ public function actionPackageAdd() { if (\Yii::$app->request->isPost) { return static::edit(DecPackageForm::class, '报单套餐添加成功', 'add', null, null, function () { // Log::adminHandle('添加报单套餐', 1); }); } return static::notice('非法请求', 405); } /** * 报单套餐获取 * @return mixed * @throws HttpException */ public function actionPackageGet() { $id = \Yii::$app->request->get('id'); if (\Yii::$app->request->isPost) { return static::edit(DecPackageForm::class, '套餐编辑成功', 'edit', null, null, function () { // Log::adminHandle('编辑报单套餐', 1); }); } $package = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $id]); return static::notice(['id' => $package['ID'],'packageName' => $package['PACKAGE_NAME'],'packageNo' => $package['PACKAGE_NO'], 'amount' => $package['AMOUNT'], 'amountPv' => $package['PV'], 'levelId' => $package['LEVEL_ID'], 'packageContent' => $package['PACKAGE_CONTENT'],'amountStandard' => $package['AMOUNT_STANDARD'],'storenums' => $package['STORE_NUMS']]); } /** * 套餐上下架 * @return mixed * @throws Exception */ public function actionPackageStatus() { $id = \Yii::$app->request->get('id'); if (\Yii::$app->request->isPost) { $formModel = new DecPackageForm(); $formModel->scenario = 'changeStatus'; if ($formModel->load(\Yii::$app->request->post(), '') && $result = $formModel->changeStatus()) { return static::notice('Status setting succeeded'); // 状态设置成功 } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } } /** * 删除套餐 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionPackageDelete(){ $result = static::delete(DeclarationPackage::class); return $result; } /** * 报单表 * @return mixed * @throws Exception * @throws HttpException */ public function actionDecOrderList() { $filter = $this->filterCondition([ 'DEC_SN'=> 'DO.DEC_SN', 'ORDER_SN'=> 'DO.ORDER_SN', 'USER_NAME'=> 'U.USER_NAME', 'TO_USER_NAME'=> 'TU.USER_NAME', 'REAL_NAME'=> 'TU.REAL_NAME', 'ID_CARD'=> 'TU.ID_CARD', 'MOBILE'=> 'TU.MOBILE', 'DEC_LV_NAME' => 'TU.DEC_LV', 'DEC_REAL_NAME'=> 'DU.REAL_NAME', 'DEC_AMOUNT'=> 'DO.DEC_AMOUNT', 'DEC_PV'=> 'DO.DEC_PV', 'PERIOD_NUM'=> 'DO.PERIOD_NUM', 'REC_USER_NAME'=> 'RU.USER_NAME', 'CREATED_AT'=> 'DO.CREATED_AT', 'UPDATED_AT'=> 'DO.UPDATED_AT', ]); $condition = $filter['condition']; $params = $filter['params']; $condition .= ' AND DO.IS_DEL=0'; $listObj = new DecOrderList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 报单表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionDecOrderListExport() { $filter = $this->filterCondition([ 'DEC_SN'=> 'DO.DEC_SN', 'ORDER_SN'=> 'DO.ORDER_SN', 'USER_NAME'=> 'U.USER_NAME', 'TO_USER_NAME'=> 'TU.USER_NAME', 'DEC_AMOUNT'=> 'DO.DEC_AMOUNT', 'DEC_PV'=> 'DO.DEC_PV', 'PERIOD_NUM'=> 'DO.PERIOD_NUM', 'CREATED_AT'=> 'DO.CREATED_AT', 'UPDATED_AT'=> 'DO.UPDATED_AT', ]); $filter['condition'] .= ' AND DO.IS_DEL=0'; $form = new ShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopDecOrderListExport')); if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } // 删除订单 public function actionDeleteOrder() { if (\Yii::$app->request->isPost) { $formModel = new OrderDeleteForm(); if ($formModel->load(\Yii::$app->request->post(), '') && $result = $formModel->returnOrder()) { return static::notice(\Yii::t('ctx', 'shopDelOrderSuccedNotice')); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } } /** * 订单表 * @return mixed * @throws Exception * @throws HttpException */ public function actionOrderList() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', 'ORDER_TYPE'=> 'O.ORDER_TYPE', 'STATUS' => 'O.STATUS', 'COUNTRY' => 'O.COUNTRY_ID', 'AUTO_MAINTENANCE' => 'O.AUTO_MAINTENANCE' ]); $condition = ' 1=1 ' . $filter['condition']; $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']); if (!$isSuper) { $adminId = Yii::$app->getUser()->getUserInfo()['id']; $adminCountry = AdminCountry::getCountry($adminId); $quotedAdminCountry = array_map(function($item) { return "'" . addslashes($item) . "'"; }, $adminCountry); $condition = ' 1=1 ' . $filter['condition'] . " AND O.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")"; } $params = $filter['params']; $condition .= $condition ? ' AND O.IS_DELETE=0' : ' O.IS_DELETE=0'; $listObj = new OrderList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 订单表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionOrderListExport() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', 'ORDER_TYPE'=> 'O.ORDER_TYPE', 'STATUS' => 'O.STATUS', 'AUTO_MAINTENANCE' => 'O.AUTO_MAINTENANCE' ]); $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']); if (!$isSuper) { $adminId = Yii::$app->getUser()->getUserInfo()['id']; $adminCountry = AdminCountry::getCountry($adminId); $quotedAdminCountry = array_map(function($item) { return "'" . addslashes($item) . "'"; }, $adminCountry); $filter['condition'] = ('O.IS_DELETE=0 ' . $filter['condition']) . " AND O.COUNTRY_ID IN (" . implode(',', $quotedAdminCountry) . ")"; } else { $filter['condition'] = ('O.IS_DELETE=0 ' . $filter['condition']); } $form = new ShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopOrderListExport')); // 订单列表 if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } /** * 外部商城订单列表 * @return mixed * @throws Exception * @throws HttpException */ public function actionOrderShopList() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', ]); $condition = $filter['condition']; $params = $filter['params']; $condition .= ' AND O.IS_DELETE=0'; $listObj = new OrderShopList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 外部商城报单列表 * @return mixed * @throws Exception * @throws HttpException */ public function actionOrderDecList() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', ]); $condition = $filter['condition']; $params = $filter['params']; $condition .= ' AND O.IS_DELETE=0'; $listObj = new OrderDecList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 分页导入excel文件到待导入数据的表中 * @return mixed */ public function actionImportOrderShopToExcelTable() { // 先上传到服务器文件 if (\Yii::$app->request->isPost) { $excelImportId = \Yii::$app->request->post('excelImportId'); $rowCount = \Yii::$app->request->post('rowCount'); //$periodNum = \Yii::$app->request->post('periodNum'); $orderDay = \Yii::$app->request->post('orderDay'); $orderType = \Yii::$app->request->post('orderType'); $startRow = \Yii::$app->request->post('startRow'); $limit = \Yii::$app->request->post('limit', 1000); $errorMsg = ''; try { if( $startRow == 1 ) { $excelOrderShop = new ExcelOrderShopForm(); $excelOrderShop->checkStatus($orderDay,$orderType); } $excel = new \common\helpers\Excel(); $result = $excel->pageImportCustomDataFromExcel('orderShop', $excelImportId, $rowCount, $startRow, $limit,$orderDay,$orderType); } catch (\Exception $e) { $result = false; $errorMsg = $e->getMessage(); } // 还有数据 if ($result === 1) { return static::notice(['finish' => false]); } elseif ($result === 0) { return static::notice(['finish' => true]); } else { return static::notice('Error:' . $errorMsg, 400); } } } /** * 导入完成标记 * @return mixed * @throws HttpException */ public function actionImportOrderShop() { //$periodNum = \Yii::$app->request->post('periodNum'); $orderDay = \Yii::$app->request->post('orderDay'); $orderType = \Yii::$app->request->post('orderType'); $excelOrderShop = new ExcelOrderShopForm(); $finishStatus = $excelOrderShop->finished($orderDay,$orderType); if ($finishStatus) { return static::notice(['finish' => true]); } else { return static::notice(\Yii::t('ctx', 'shopStatusUpdateErrorNotice'), 400); } } /** * 报单订单——分页导入excel文件到待导入数据的表中 * @return mixed */ public function actionImportOrderDecToExcelTable() { // 先上传到服务器文件 if (\Yii::$app->request->isPost) { $excelImportId = \Yii::$app->request->post('excelImportId'); $rowCount = \Yii::$app->request->post('rowCount'); //$periodNum = \Yii::$app->request->post('periodNum'); $orderDay = \Yii::$app->request->post('orderDay'); $startRow = \Yii::$app->request->post('startRow'); $limit = \Yii::$app->request->post('limit', 1000); $errorMsg = ''; try { if( $startRow == 1 ) { $excelOrderShop = new ExcelOrderDecForm(); $excelOrderShop->checkStatus($orderDay); } $excel = new \common\helpers\Excel(); $result = $excel->pageImportCustomDataFromExcel('orderDec', $excelImportId, $rowCount, $startRow, $limit,$orderDay); } catch (\Exception $e) { $result = false; $errorMsg = $e->getMessage(); } // 还有数据 if ($result === 1) { return static::notice(['finish' => false]); } elseif ($result === 0) { return static::notice(['finish' => true]); } else { return static::notice('Error:' . $errorMsg, 400); } } } /** * 报单订单导入完成标记 * @return mixed * @throws HttpException */ public function actionImportOrderDec() { //$periodNum = \Yii::$app->request->post('periodNum'); $orderDay = \Yii::$app->request->post('orderDay'); $excelOrderShop = new ExcelOrderDecForm(); $finishStatus = $excelOrderShop->finished($orderDay); if ($finishStatus) { return static::notice(['finish' => true]); } else { return static::notice(\Yii::t('ctx', 'shopStatusUpdateErrorNotice'), 400); } } /** * 见习达标订单列表 * @return mixed * @throws Exception * @throws HttpException */ public function actionOrderStandardList() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', ]); $condition = $filter['condition']; $params = $filter['params']; $condition .= ' AND O.IS_DELETE=0'; $listObj = new OrderStandardList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * 分页导入excel文件到待导入数据的表中 * @return mixed * @throws HttpException */ public function actionImportOrderStandardToExcelTable() { // 先上传到服务器文件 if (\Yii::$app->request->isPost) { $excelImportId = \Yii::$app->request->post('excelImportId'); $rowCount = \Yii::$app->request->post('rowCount'); //$periodNum = \Yii::$app->request->post('periodNum'); $orderMonth = \Yii::$app->request->post('orderMonth'); // $orderType = \Yii::$app->request->post('orderType'); $orderType = 'cash'; $startRow = \Yii::$app->request->post('startRow'); $limit = \Yii::$app->request->post('limit', 1000); $errorMsg = ''; try { if( $startRow == 1 ) { //清空已经导入的表数据 $excelOrderStandard = new ExcelOrderStandardForm(); $excelOrderStandard->checkStatus($orderMonth); } $excel = new \common\helpers\Excel(); $result = $excel->pageImportCustomDataFromExcel('orderShopStandard', $excelImportId, $rowCount, $startRow, $limit,$orderMonth,$orderType); } catch (Exception $e) { $result = false; $errorMsg = $e->getMessage(); } // 还有数据 if ($result === 1) { return static::notice(['finish' => false]); } elseif ($result === 0) { return static::notice(['finish' => true]); } else { return static::notice('Error:' . $errorMsg, 400); } } } /** * 达标订单导入完成标记 * @return mixed * @throws HttpException */ public function actionImportOrderStandard() { $orderMonth = \Yii::$app->request->post('orderMonth'); $excelOrderStandard = new ExcelOrderStandardForm(); $finishStatus = $excelOrderStandard->finished($orderMonth); if ($finishStatus) { return static::notice(['finish' => true]); } else { return static::notice(\Yii::t('ctx', 'shopStatusUpdateErrorNotice'), 400); } } /** * 管理员发货 * @return mixed * @throws HttpException */ public function actionOrderDelivery() { if(\Yii::$app->request->isPost) { return parent::edit(OrderForm::class, '发货成功', 'adminDelivery', ['adminDelivery']); } return static::notice(\Yii::t('ctx', 'illegalRequest'), 400); // 非法请求 } /** * 报单表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionOrderListExportPdf() { $orderSn = \Yii::$app->request->get('orderSn'); $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', ]); $filter['condition'] = ' O.IS_DELETE=0 AND O.SN=:SN'; $filter['params'] = [':SN' => $orderSn]; $form = new ShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopOrderListExportPdf')); if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } /** * 报单表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionDecOrderListExportPdf() { $orderSn = \Yii::$app->request->get('orderSn'); $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', ]); $filter['condition'] = ' 1=1 AND O.IS_DELETE=0 AND O.SN=:SN'; $filter['params'] = [':SN' => $orderSn]; $form = new ShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopOrderListExportPdf')); if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } /** * 管理员订单退款 * @return mixed * @throws HttpException */ public function actionOrderRefund() { if(\Yii::$app->request->isPost) { return parent::edit(OrderForm::class, \Yii::t('ctx', 'shopadminRefund'), 'adminRefund', ['adminRefund']); } return static::notice(\Yii::t('ctx', 'illegalRequest'), 400); // 非法请求 } /* * 剩余BV页 * */ public function actionRemainPv() { $filter = $this->filterCondition([ 'USER_NAME' => 'U.USER_NAME', ]); $condition = $filter['condition']; $params = $filter['params']; $listObj = new RemainPvList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /* * 剩余BV流水 * */ public function actionFlowRemainPv() { $filter = $this->filterCondition([ 'USER_NAME' => 'U.USER_NAME', ]); $condition = $filter['condition']; $params = $filter['params']; $listObj = new FlowRemainPvList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * BA订单表 * @return mixed * @throws Exception * @throws HttpException */ public function actionBaOrderList() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', 'ORDER_TYPE'=> 'O.ORDER_TYPE', 'STATUS' => 'O.STATUS', ]); $condition = ' 1=1 ' . $filter['condition']; $params = $filter['params']; $condition .= $condition ? ' AND O.IS_DELETE=0' : ' O.IS_DELETE=0'; $listObj = new BaOrderList(); $data = $listObj->getList(['condition'=>$condition, 'params'=>$params]); return static::notice($data); } /** * BA订单表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionBaOrderListExport() { $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', 'STATUS' => 'O.STATUS', ]); $filter['condition'] = !$filter['condition'] ? '1=1 AND O.IS_DELETE=0' : ('O.IS_DELETE=0 ' . $filter['condition']); $form = new BaShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopBaOrderListExport')); // 订单列表 if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } /** * 报单表导出 * @return mixed * @throws \yii\db\Exception * @throws HttpException */ public function actionBaOrderListExportPdf() { $orderSn = \Yii::$app->request->get('orderSn'); $filter = $this->filterCondition([ 'SN'=> 'O.SN', 'USER_NAME'=> 'U.USER_NAME', 'MOBILE'=> 'O.MOBILE', 'PERIOD_NUM'=> 'O.PERIOD_NUM', 'CREATED_AT'=> 'O.CREATED_AT', ]); $filter['condition'] = ' O.IS_DELETE=0 AND O.SN=:SN'; $filter['params'] = [':SN' => $orderSn]; $form = new BaShopExportForm(); $result = $form->run($filter, \Yii::t('ctx', 'shopBrandAmbassadorOrderExport')); if (!$result) { return static::notice(Form::formatErrorsForApi($form->getErrors()), 400); } return static::notice(\Yii::t('ctx', 'startExporting')); // 导出开始,请到文件管理-导出文件查看 } /** * 调整订单期数 * @return mixed * @throws Exception * @throws \yii\db\Exception * @throws \yii\web\HttpException */ public function actionOrderPeriodAdjust() { if (\Yii::$app->request->isPost) { $formModel = new OrderPeriodAdjustForm(); $formModel->scenario = 'orderPeriodAdjust'; if ($formModel->load(\Yii::$app->request->post(), '') && $formModel->periodAdjust()) { return static::notice(Yii::t('ctx', 'successfully')); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } else { $filter = $this->filterCondition([ 'ORDER_SN' => 'P.ORDER_SN', 'ORIGIN_PERIOD'=> 'P.ORIGIN_PERIOD', 'MODERN_PERIOD'=> 'P.MODERN_PERIOD', 'CREATED_AT'=> 'P.CREATED_AT', ]); $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']); if (!$isSuper) { $adminId = Yii::$app->getUser()->getUserInfo()['id']; $adminCountry = AdminCountry::getCountry($adminId); $quotedAdminCountry = array_map(function($item) { return "'" . addslashes($item) . "'"; }, $adminCountry); $filter['condition'] .= ' AND O.COUNTRY_ID IN (' . implode(',', $quotedAdminCountry) . ')'; } $listObj = new OrderPeriodAdjustList(); $data = $listObj->getList(['condition' => $filter['condition'], 'params' => $filter['params']]); return static::notice($data); } } /** * 订单详情 * @return mixed * @throws \yii\web\HttpException */ public function actionOrderDetail() { $orderSn = \Yii::$app->request->get('orderSn'); $isSuper = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']); if (!$isSuper) { $adminId = Yii::$app->getUser()->getUserInfo()['id']; $adminCountry = AdminCountry::getCountry($adminId); $quotedAdminCountry = array_map(function ($item) { return "'" . addslashes($item) . "'"; }, $adminCountry); $order = Order::findOneAsArray('SN=:SN AND COUNTRY_ID IN (' . implode(',', $quotedAdminCountry) . ')', [':SN' => $orderSn]); } else { $order = Order::findOneAsArray('SN=:SN', [':SN' => $orderSn]); } if (!$order) { return static::notice(Yii::t('ctx', 'orderNotExist'), 400); } $order['ORDER_TYPE'] = $order['ORDER_TYPE'] === 'ZC' ? Yii::t('ctx', 'shopOrderListOrderTypeZc') : Yii::t('ctx', 'shopOrderListOrderTypeFx'); $order['COUNTRY'] = Countries::getById($order['COUNTRY_ID'])['NAME'] ?? ''; // 已挂网,不可调整 $period = Period::getInfoByPeriodNum($order['PERIOD_NUM']); if (!$period) { return static::notice(Yii::t('ctx', 'invalidPcNo'), 400); } if ($period['IS_SENT'] > 0) { return static::notice(Yii::t('ctx', 'orderHasBeenConnected'), 400); } // 可调整期数 $availablePeriod = []; if ($order['PERIOD_NUM']) { $availablePeriod = Period::getPeriodList(+$order['PERIOD_NUM'] - 1); foreach ($availablePeriod as $k => $item) { $availablePeriod[$k]['disabled'] = (+$item['IS_SENT'] > 0) || ($order['PERIOD_NUM'] == $item['PERIOD_NUM']); } } return static::notice(['order' => $order, 'availablePeriod' => $availablePeriod]); } public function actionOrderPeriodAdjustBatch() { $db = \Yii::$app->db; $transaction = $db->beginTransaction(); $orderList = []; $orderErr = []; try { $modernPeriod = 150; // todo: 修改后期数 $oldPeriod = 151; // todo: 修改前期数 foreach ($orderList as $orderSn) { $orderObj = Order::findOneAsArray('SN=:SN', [':SN' => $orderSn]); if (!$orderObj) { $orderErr[] = $orderSn; continue; } // 调整订单期数 Order::updateAll(['PERIOD_NUM' => $modernPeriod], 'SN = :SN', [':SN' => $orderSn]); if ($orderObj['ORDER_TYPE'] === 'ZC') { // 调整报单期数 DecOrder::updateAll(['PERIOD_NUM' => $modernPeriod], 'ORDER_SN = :ORDER_SN', ['ORDER_SN' => $orderSn]); // 调整会员的期数 User::updateAll(['PERIOD_AT' => $modernPeriod], 'ID = :USER_ID', ['USER_ID' => $orderObj['USER_ID']]); UserInfo::updateAll(['HIGHEST_EMP_LV_PERIOD' => $modernPeriod], 'USER_ID = :USER_ID', ['USER_ID' => $orderObj['USER_ID']]); } // 调整流水的期数 switch ($orderObj['PAY_TYPE']){ case 'cash': FlowWallet::updateAll(['PERIOD_NUM' => $modernPeriod], 'ORDER_SN = :ORDER_SN', ['ORDER_SN' => $orderSn]); break; default: break; } // 写入调整记录 $orderModel = new OrderPeriodAdjust(); $orderModel->ORDER_SN = $orderSn; $orderModel->ORIGIN_PERIOD = $oldPeriod; $orderModel->MODERN_PERIOD = $modernPeriod; $orderModel->ADMIN_ID = 'admin'; $orderModel->CREATED_AT = Date::nowTime(); if (!$orderModel->save()) { return static::notice($orderModel->getErrors(), 400); } } $transaction->commit(); } catch(\Exception $e) { $transaction->rollBack(); return static::notice($e->getMessage(), 400); } return static::notice('成功. ' . json_encode($orderErr)); } }