From 7f402e0582ac8ce2d0500288f5f4e7de69ba0603 Mon Sep 17 00:00:00 2001 From: denghy Date: Thu, 14 Feb 2019 15:14:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E7=94=A8=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/AddressController.php | 2 +- .../Http/Controllers/BootstrapController.php | 4 +- app/Domains/Company/Routes/api.php | 4 +- .../Controllers/CompanyAccountController.php | 2 +- .../Http/Controllers/CompanyController.php | 2 +- .../Http/Controllers/FetchController.php | 10 +- .../Http/Controllers/ProductController.php | 2 +- .../Repositories/CompanyRepository.php | 4 + .../Repositories/PackageRepository.php | 4 + .../Repositories/ProductRepository.php | 4 + .../Virtual/Services/CompanyService.php | 2 +- .../Virtual/Services/PackageService.php | 2 +- .../Virtual/Services/ProductService.php | 10 ++ app/Models/Virtual/Company.php | 2 +- app/Models/Virtual/Package.php | 1 + frontend/src/views/virtual/companies/edit.vue | 18 ++- .../src/views/virtual/companies/js/edit.js | 7 +- .../src/views/virtual/companies/js/index.js | 13 ++ frontend/src/views/virtual/packages/edit.vue | 111 +++++++++++++++--- .../src/views/virtual/packages/js/edit.js | 3 +- .../src/views/virtual/packages/js/index.js | 13 ++ frontend/src/views/virtual/products/edit.vue | 43 ++++++- .../src/views/virtual/products/js/edit.js | 14 ++- .../src/views/virtual/products/js/index.js | 23 +++- public/js/app.35d8f3fc.js | 2 + public/js/app.35d8f3fc.js.map | 1 + public/js/chunk-7b1dff40.ab5dd6a1.js | 2 + public/js/chunk-7b1dff40.ab5dd6a1.js.map | 1 + resources/views/index.blade.php | 2 +- 29 files changed, 264 insertions(+), 44 deletions(-) create mode 100644 public/js/app.35d8f3fc.js create mode 100644 public/js/app.35d8f3fc.js.map create mode 100644 public/js/chunk-7b1dff40.ab5dd6a1.js create mode 100644 public/js/chunk-7b1dff40.ab5dd6a1.js.map diff --git a/app/Domains/Company/Http/Controllers/AddressController.php b/app/Domains/Company/Http/Controllers/AddressController.php index 7aec137d..f6044037 100644 --- a/app/Domains/Company/Http/Controllers/AddressController.php +++ b/app/Domains/Company/Http/Controllers/AddressController.php @@ -29,7 +29,7 @@ class AddressController extends Controller $res = $this->companyAddressService->getCompanyAddress($this->account->company_id); return res($res, '收货地址', 201); } - + /** * 添加收货地址 * diff --git a/app/Domains/Company/Http/Controllers/BootstrapController.php b/app/Domains/Company/Http/Controllers/BootstrapController.php index 13618cb8..3a8c80b9 100644 --- a/app/Domains/Company/Http/Controllers/BootstrapController.php +++ b/app/Domains/Company/Http/Controllers/BootstrapController.php @@ -51,7 +51,9 @@ class BootstrapController extends Controller ]; $res = $productService->index($conditions); - + + $res = $res->where('status', 0); + return res($res, '企业套餐列表', 201); } } diff --git a/app/Domains/Company/Routes/api.php b/app/Domains/Company/Routes/api.php index 4369119c..24225795 100644 --- a/app/Domains/Company/Routes/api.php +++ b/app/Domains/Company/Routes/api.php @@ -7,7 +7,7 @@ $router->group(['prefix' => 'companies', 'as' => 'companies'], function ($router $router->get('/', ['as' => 'index', 'uses' => 'AccountController@index']); $router->get('/account/reset', ['as' => 'account.resetStep1', 'uses' => 'AccountController@resetStep1', 'middleware' => ['captcha']]); $router->post('/account/reset', ['as' => 'account.resetStep2', 'uses' => 'AccountController@resetStep2']); - + /** * 需要认证的接口 */ @@ -24,7 +24,7 @@ $router->group(['prefix' => 'companies', 'as' => 'companies'], function ($router $router->get('/bootstrap', ['as' => 'bootstrap', 'uses' => 'BootstrapController@index']); $router->get('/products', ['as' => 'products', 'uses' => 'BootstrapController@products']); - + $router->get('/orders/paginate', ['as' => 'orders/paginate', 'uses' => 'OrderController@paginate']); $router->get('/orders/show/{id}', ['as' => 'orders/show', 'uses' => 'OrderController@show']); $router->post('/orders/store', ['as' => 'orders/store', 'uses' => 'OrderController@store']); diff --git a/app/Domains/Virtual/Http/Controllers/CompanyAccountController.php b/app/Domains/Virtual/Http/Controllers/CompanyAccountController.php index b33dc3e9..acba75ed 100644 --- a/app/Domains/Virtual/Http/Controllers/CompanyAccountController.php +++ b/app/Domains/Virtual/Http/Controllers/CompanyAccountController.php @@ -31,7 +31,7 @@ class CompanyAccountController extends Controller $conditions['limit'] = $this->request->get('limit', 20); $accounts = $this->companyAccountService->index($conditions); - + return res($accounts, '账号列表', 201); } diff --git a/app/Domains/Virtual/Http/Controllers/CompanyController.php b/app/Domains/Virtual/Http/Controllers/CompanyController.php index 414d53d4..f6f143f3 100644 --- a/app/Domains/Virtual/Http/Controllers/CompanyController.php +++ b/app/Domains/Virtual/Http/Controllers/CompanyController.php @@ -42,7 +42,7 @@ class CompanyController extends Controller 'wechat_account' => '', ]; }); - + return res($companies, '企业列表', 201); } diff --git a/app/Domains/Virtual/Http/Controllers/FetchController.php b/app/Domains/Virtual/Http/Controllers/FetchController.php index 3f5816d6..79c7369e 100644 --- a/app/Domains/Virtual/Http/Controllers/FetchController.php +++ b/app/Domains/Virtual/Http/Controllers/FetchController.php @@ -52,24 +52,24 @@ class FetchController extends Controller $search = $this->request->get('search'); $limit = $this->request->get('limit', 0); - $results = $repository->select([$primaryKey, $field])->get(); + $results = $repository->select([$primaryKey, $field, 'status'])->get(); if ($search) { $results = $results->filter(function ($item) use ($search, $field) { $result = true; - + if (strpos($item[$field], $search) === false) { $result = false; } - + if (strpos(pinyin_abbr($item[$field]), $search) === false) { $result = false; } - + if (strpos(implode('', pinyin($item[$field])), $search) === false) { $result = false; } - + return $result; }); } diff --git a/app/Domains/Virtual/Http/Controllers/ProductController.php b/app/Domains/Virtual/Http/Controllers/ProductController.php index 906a6a8b..fd3d621b 100644 --- a/app/Domains/Virtual/Http/Controllers/ProductController.php +++ b/app/Domains/Virtual/Http/Controllers/ProductController.php @@ -38,7 +38,7 @@ class ProductController extends Controller $products->map(function ($item) use ($carrierOperators) { $item->carrier_operator = $carrierOperators[$item['package']['carrier_operator']] ?? '未知'; }); - + return res($products, '定价列表', 201); } diff --git a/app/Domains/Virtual/Repositories/CompanyRepository.php b/app/Domains/Virtual/Repositories/CompanyRepository.php index 66d5d79e..b06c18fd 100644 --- a/app/Domains/Virtual/Repositories/CompanyRepository.php +++ b/app/Domains/Virtual/Repositories/CompanyRepository.php @@ -64,6 +64,10 @@ class CompanyRepository extends Repository $this->model = $this->model->where('name', $conditions['name']); } + if (isset($conditions['status'])) { + $this->model = $this->model->where('status', $conditions['status']); + } + return $this; } } diff --git a/app/Domains/Virtual/Repositories/PackageRepository.php b/app/Domains/Virtual/Repositories/PackageRepository.php index b3847b9c..950477ed 100644 --- a/app/Domains/Virtual/Repositories/PackageRepository.php +++ b/app/Domains/Virtual/Repositories/PackageRepository.php @@ -77,6 +77,10 @@ class PackageRepository extends Repository $this->model = $this->model->where('carrier_operator', $conditions['carrier_operator']); } + if (isset($conditions['status'])) { + $this->model = $this->model->where('status', $conditions['status']); + } + return $this; } } diff --git a/app/Domains/Virtual/Repositories/ProductRepository.php b/app/Domains/Virtual/Repositories/ProductRepository.php index ec3fac21..ea1ab40c 100644 --- a/app/Domains/Virtual/Repositories/ProductRepository.php +++ b/app/Domains/Virtual/Repositories/ProductRepository.php @@ -63,6 +63,10 @@ class ProductRepository extends Repository $query->where('company_id', $conditions['company_id']); } + if (isset($conditions['status'])) { + $query->where('status', $conditions['status']); + } + if (isset($conditions['name'])) { $query->where('name', 'like', "%{$conditions['name']}%"); } diff --git a/app/Domains/Virtual/Services/CompanyService.php b/app/Domains/Virtual/Services/CompanyService.php index c1d7b098..2dcbdd55 100644 --- a/app/Domains/Virtual/Services/CompanyService.php +++ b/app/Domains/Virtual/Services/CompanyService.php @@ -110,7 +110,7 @@ class CompanyService extends Service public function load($id) { if (!$this->companies) { - $this->companies = $this->companyRepository->select(['id', 'name'])->withTrashed()->get()->keyBy('id'); + $this->companies = $this->companyRepository->select(['id', 'name', 'status'])->withTrashed()->get()->keyBy('id'); } return $this->companies[$id]; diff --git a/app/Domains/Virtual/Services/PackageService.php b/app/Domains/Virtual/Services/PackageService.php index 74a794e2..8ef7a582 100644 --- a/app/Domains/Virtual/Services/PackageService.php +++ b/app/Domains/Virtual/Services/PackageService.php @@ -159,7 +159,7 @@ class PackageService extends Service public function load($id) { if (!$this->packages) { - $this->packages = $this->packageRepository->select(['id', 'name', 'carrier_operator', 'flows', 'service_months'])->withTrashed()->get()->keyBy('id'); + $this->packages = $this->packageRepository->select(['id', 'name', 'carrier_operator', 'flows', 'service_months', 'status'])->withTrashed()->get()->keyBy('id'); } return $this->packages[$id]; diff --git a/app/Domains/Virtual/Services/ProductService.php b/app/Domains/Virtual/Services/ProductService.php index 47c1e3cb..912c9981 100644 --- a/app/Domains/Virtual/Services/ProductService.php +++ b/app/Domains/Virtual/Services/ProductService.php @@ -47,6 +47,7 @@ class ProductService extends Service $item->package = app(PackageService::class)->load($item->package_id); $item->base_price = sprintf('%.02f', $item->base_price/100); $item->renewal_price = sprintf('%.02f', $item->renewal_price/100); + $item->status = $item['package']['status'] ? 1 : $item->status; }); return $list; @@ -101,6 +102,15 @@ class ProductService extends Service throw new NotExistException('定价不存在或已删除'); } + if ($attributes['status'] == 0) { + $node->load(['package:id,status']); + + if ($node['package']['status'] === 1) { + throw new NotAllowedException('套餐已被禁用,不能启用'); + } + } + + if ($this->productRepository->where('sn', $attributes['sn'])->where('id', '<>', $attributes['id'])->count()) { throw new NotAllowedException('已存在相同定价,请核对后重试'); } diff --git a/app/Models/Virtual/Company.php b/app/Models/Virtual/Company.php index 7b3fc689..7cda23b6 100644 --- a/app/Models/Virtual/Company.php +++ b/app/Models/Virtual/Company.php @@ -42,7 +42,7 @@ class Company extends CompanyBase { protected $table = 'virtual_companies'; - protected $fillable = ['id', 'sn', 'name' , 'contacts', 'mobile', 'address', 'remark', 'extends']; + protected $fillable = ['id', 'sn', 'name' , 'contacts', 'mobile', 'address', 'remark', 'extends', 'status']; protected $casts = [ 'extends' => 'array', diff --git a/app/Models/Virtual/Package.php b/app/Models/Virtual/Package.php index 34d4347a..a24342dc 100644 --- a/app/Models/Virtual/Package.php +++ b/app/Models/Virtual/Package.php @@ -86,5 +86,6 @@ class Package extends PackageBase 'effect_months', 'delay_months', 'description', + 'status', ]; } diff --git a/frontend/src/views/virtual/companies/edit.vue b/frontend/src/views/virtual/companies/edit.vue index 927769fd..4a74d83e 100644 --- a/frontend/src/views/virtual/companies/edit.vue +++ b/frontend/src/views/virtual/companies/edit.vue @@ -1,5 +1,11 @@