使用laravel/pint格式化代码

This commit is contained in:
Edward Yang 2023-01-10 14:38:26 +08:00
parent 0911ba6102
commit 434d94c01d
787 changed files with 11696 additions and 11700 deletions

View File

@ -2,10 +2,10 @@
namespace App\Exceptions; namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Foundation\Exceptions\RegisterErrorViewPaths;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Throwable; use Throwable;
use Illuminate\Foundation\Exceptions\RegisterErrorViewPaths;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler class Handler extends ExceptionHandler
{ {
@ -41,7 +41,6 @@ class Handler extends ExceptionHandler
}); });
} }
/** /**
* Convert the given exception to an array. * Convert the given exception to an array.
* *
@ -62,7 +61,6 @@ class Handler extends ExceptionHandler
]; ];
} }
/** /**
* 自定义错误信息页面, 前台与后台不同, 需要分开定义 * 自定义错误信息页面, 前台与后台不同, 需要分开定义
*/ */

View File

@ -3,10 +3,10 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Beike\Models\Customer; use Beike\Models\Customer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Auth\AuthenticationException; use Illuminate\Auth\AuthenticationException;
use Illuminate\Auth\Middleware\Authenticate as Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class CheckoutAuthenticate extends Middleware class CheckoutAuthenticate extends Middleware
{ {
@ -31,13 +31,13 @@ class CheckoutAuthenticate extends Middleware
$customer = current_customer(); $customer = current_customer();
if ($customer->status != 1) { if ($customer->status != 1) {
Auth::guard(Customer::AUTH_GUARD)->logout(); Auth::guard(Customer::AUTH_GUARD)->logout();
return redirect(shop_route('login.index')); return redirect(shop_route('login.index'));
} }
return $next($request); return $next($request);
} }
/** /**
* Get the path the user should be redirected to when they are not authenticated. * Get the path the user should be redirected to when they are not authenticated.
* *
@ -50,7 +50,6 @@ class CheckoutAuthenticate extends Middleware
} }
} }
/** /**
* Handle an unauthenticated user. * Handle an unauthenticated user.
* *
@ -65,6 +64,7 @@ class CheckoutAuthenticate extends Middleware
if (system_setting('base.guest_checkout', 1)) { if (system_setting('base.guest_checkout', 1)) {
return; return;
} }
throw new AuthenticationException( throw new AuthenticationException(
trans('common.unauthenticated'), $guards, $this->redirectTo($request) trans('common.unauthenticated'), $guards, $this->redirectTo($request)
); );

View File

@ -23,6 +23,7 @@ class SetLocaleAdmin
} else { } else {
App::setLocale('en'); App::setLocale('en');
} }
return $next($request); return $next($request);
} }
} }

View File

@ -25,6 +25,7 @@ class SetLocaleFromSession
App::setLocale($configLocale); App::setLocale($configLocale);
session(['locale' => $configLocale]); session(['locale' => $configLocale]);
} }
return $next($request); return $next($request);
} }
} }

View File

@ -2,10 +2,10 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Beike\Installer\Helpers\EnvironmentManager;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
use Beike\Installer\Helpers\EnvironmentManager;
class SetLocaleInstaller class SetLocaleInstaller
{ {
@ -20,7 +20,7 @@ class SetLocaleInstaller
{ {
$locale = $_COOKIE['locale'] ?? 'en'; $locale = $_COOKIE['locale'] ?? 'en';
$languageDir = base_path('beike/Installer/Lang'); $languageDir = base_path('beike/Installer/Lang');
$languages = array_values(array_diff(scandir($languageDir), array('..', '.'))); $languages = array_values(array_diff(scandir($languageDir), ['..', '.']));
(new EnvironmentManager)->getEnvContent(); (new EnvironmentManager)->getEnvContent();
@ -29,6 +29,7 @@ class SetLocaleInstaller
} else { } else {
App::setLocale('en'); App::setLocale('en');
} }
return $next($request); return $next($request);
} }
} }

View File

@ -11,19 +11,19 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Beike\Repositories\FooterRepo;
use Beike\Repositories\LanguageRepo;
use Beike\Repositories\MenuRepo;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Beike\Repositories\MenuRepo;
use Beike\Repositories\FooterRepo;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
use Beike\Repositories\CategoryRepo;
use Beike\Repositories\LanguageRepo;
class ShareViewData class ShareViewData
{ {
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
$this->loadShopShareViewData(); $this->loadShopShareViewData();
return $next($request); return $next($request);
} }
@ -49,7 +49,6 @@ class ShareViewData
} }
} }
/** /**
* 处理后台语言包列表 * 处理后台语言包列表
* *
@ -62,7 +61,7 @@ class ShareViewData
foreach ($languages as $language) { foreach ($languages as $language) {
$path = lang_path("{$language}/admin/base.php"); $path = lang_path("{$language}/admin/base.php");
if (file_exists($path)) { if (file_exists($path)) {
$baseData = require_once($path); $baseData = require_once $path;
} }
$name = $baseData['name'] ?? ''; $name = $baseData['name'] ?? '';
$items[] = [ $items[] = [
@ -70,6 +69,7 @@ class ShareViewData
'name' => $name, 'name' => $name,
]; ];
} }
return $items; return $items;
} }
} }

View File

@ -3,10 +3,10 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Beike\Models\Customer; use Beike\Models\Customer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Auth\AuthenticationException; use Illuminate\Auth\AuthenticationException;
use Illuminate\Auth\Middleware\Authenticate as Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class ShopAuthenticate extends Middleware class ShopAuthenticate extends Middleware
{ {
@ -27,13 +27,13 @@ class ShopAuthenticate extends Middleware
$customer = current_customer(); $customer = current_customer();
if ($customer->status != 1) { if ($customer->status != 1) {
Auth::guard(Customer::AUTH_GUARD)->logout(); Auth::guard(Customer::AUTH_GUARD)->logout();
return redirect(shop_route('login.index')); return redirect(shop_route('login.index'));
} }
return $next($request); return $next($request);
} }
/** /**
* Get the path the user should be redirected to when they are not authenticated. * Get the path the user should be redirected to when they are not authenticated.
* *
@ -46,7 +46,6 @@ class ShopAuthenticate extends Middleware
} }
} }
/** /**
* Handle an unauthenticated user. * Handle an unauthenticated user.
* *

View File

@ -24,7 +24,7 @@ class ContactRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'name'=>'required|string|max:100|min:10' 'name' => 'required|string|max:100|min:10',
]; ];
} }
} }

View File

@ -31,6 +31,7 @@ class AddressController extends Controller
public function store(Request $request, int $customerId) public function store(Request $request, int $customerId)
{ {
$address = AddressService::addForCustomer($customerId, $request->all()); $address = AddressService::addForCustomer($customerId, $request->all());
return json_success(trans('common.created_success'), $address); return json_success(trans('common.created_success'), $address);
} }

View File

@ -12,19 +12,20 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Requests\AdminRoleRequest; use Beike\Admin\Http\Requests\AdminRoleRequest;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Illuminate\Support\Facades\Cache;
use Beike\Admin\Repositories\AdminRoleRepo; use Beike\Admin\Repositories\AdminRoleRepo;
use Beike\Admin\Repositories\PermissionRepo; use Beike\Admin\Repositories\PermissionRepo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Spatie\Permission\Models\Role;
class AdminRoleController extends Controller class AdminRoleController extends Controller
{ {
public function index() public function index()
{ {
$data = [ $data = [
'roles' => Role::query()->get() 'roles' => Role::query()->get(),
]; ];
return view('admin::pages.admin_roles.index', $data); return view('admin::pages.admin_roles.index', $data);
} }
@ -34,6 +35,7 @@ class AdminRoleController extends Controller
$data = [ $data = [
'permissions' => $permissionRepo->getAllPermissions(), 'permissions' => $permissionRepo->getAllPermissions(),
]; ];
return view('admin::pages.admin_roles.edit', $data); return view('admin::pages.admin_roles.edit', $data);
} }
@ -46,10 +48,10 @@ class AdminRoleController extends Controller
'permissions' => $permissionRepo->getAllPermissions(), 'permissions' => $permissionRepo->getAllPermissions(),
'role' => $role, 'role' => $role,
]; ];
return view('admin::pages.admin_roles.edit', $data); return view('admin::pages.admin_roles.edit', $data);
} }
/** /**
* 保存后台用户角色 * 保存后台用户角色
* *
@ -60,18 +62,21 @@ class AdminRoleController extends Controller
public function store(AdminRoleRequest $request): array public function store(AdminRoleRequest $request): array
{ {
$adminUser = AdminRoleRepo::createAdminRole($request->toArray()); $adminUser = AdminRoleRepo::createAdminRole($request->toArray());
return json_success(trans('common.created_success'), $adminUser); return json_success(trans('common.created_success'), $adminUser);
} }
public function update(Request $request, int $adminUserId) public function update(Request $request, int $adminUserId)
{ {
$adminUser = AdminRoleRepo::updateAdminRole($request->toArray()); $adminUser = AdminRoleRepo::updateAdminRole($request->toArray());
return json_success(trans('common.updated_success'), $adminUser); return json_success(trans('common.updated_success'), $adminUser);
} }
public function destroy(Request $request, int $adminUserId) public function destroy(Request $request, int $adminUserId)
{ {
AdminRoleRepo::deleteAdminRole($adminUserId); AdminRoleRepo::deleteAdminRole($adminUserId);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -11,10 +11,10 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Requests\AdminUserRequest;
use Beike\Admin\Repositories\AdminUserRepo;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Role;
use Beike\Admin\Repositories\AdminUserRepo;
use Beike\Admin\Http\Requests\AdminUserRequest;
class AdminUserController extends Controller class AdminUserController extends Controller
{ {
@ -27,12 +27,12 @@ class AdminUserController extends Controller
{ {
$data = [ $data = [
'admin_users' => AdminUserRepo::getAdminUsers(), 'admin_users' => AdminUserRepo::getAdminUsers(),
'admin_roles' => Role::query()->get() 'admin_roles' => Role::query()->get(),
]; ];
return view('admin::pages.admin_users.index', $data); return view('admin::pages.admin_users.index', $data);
} }
/** /**
* 创建后台管理员 * 创建后台管理员
* *
@ -42,10 +42,10 @@ class AdminUserController extends Controller
public function store(AdminUserRequest $request) public function store(AdminUserRequest $request)
{ {
$adminUser = AdminUserRepo::createAdminUser($request->toArray()); $adminUser = AdminUserRepo::createAdminUser($request->toArray());
return json_success(trans('common.created_success'), $adminUser); return json_success(trans('common.created_success'), $adminUser);
} }
/** /**
* 更新后台管理员 * 更新后台管理员
* *
@ -56,13 +56,14 @@ class AdminUserController extends Controller
public function update(AdminUserRequest $request, int $adminUserId) public function update(AdminUserRequest $request, int $adminUserId)
{ {
$adminUser = AdminUserRepo::updateAdminUser($adminUserId, $request->toArray()); $adminUser = AdminUserRepo::updateAdminUser($adminUserId, $request->toArray());
return json_success(trans('common.updated_success'), $adminUser); return json_success(trans('common.updated_success'), $adminUser);
} }
public function destroy(Request $request, int $adminUserId) public function destroy(Request $request, int $adminUserId)
{ {
AdminUserRepo::deleteAdminUser($adminUserId); AdminUserRepo::deleteAdminUser($adminUserId);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -51,6 +51,7 @@ class AttributeController extends Controller
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$item = AttributeRepo::create($requestData); $item = AttributeRepo::create($requestData);
return json_success(trans('common.created_success'), $item); return json_success(trans('common.created_success'), $item);
} }
@ -58,14 +59,15 @@ class AttributeController extends Controller
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$item = AttributeRepo::update($id, $requestData); $item = AttributeRepo::update($id, $requestData);
return json_success(trans('common.updated_success'), $item); return json_success(trans('common.updated_success'), $item);
} }
public function storeValue(Request $request, int $id) public function storeValue(Request $request, int $id)
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$item = AttributeRepo::createValue(array_merge($requestData, ['attribute_id' => $id])); $item = AttributeRepo::createValue(array_merge($requestData, ['attribute_id' => $id]));
return json_success(trans('common.created_success'), new AttributeValueResource($item)); return json_success(trans('common.created_success'), new AttributeValueResource($item));
} }
@ -73,18 +75,21 @@ class AttributeController extends Controller
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$item = AttributeRepo::updateValue($value_id, $requestData); $item = AttributeRepo::updateValue($value_id, $requestData);
return json_success(trans('common.updated_success'), new AttributeValueResource($item)); return json_success(trans('common.updated_success'), new AttributeValueResource($item));
} }
public function destroyValue(Request $request, int $id, int $value_id) public function destroyValue(Request $request, int $id, int $value_id)
{ {
AttributeRepo::deleteValue($value_id); AttributeRepo::deleteValue($value_id);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
public function destroy(Request $request, int $id) public function destroy(Request $request, int $id)
{ {
AttributeRepo::delete($id); AttributeRepo::delete($id);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }

View File

@ -29,6 +29,7 @@ class AttributeGroupController extends Controller
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$item = AttributeGroupRepo::create($requestData); $item = AttributeGroupRepo::create($requestData);
return json_success(trans('common.created_success'), $item); return json_success(trans('common.created_success'), $item);
} }
@ -36,12 +37,14 @@ class AttributeGroupController extends Controller
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$item = AttributeGroupRepo::update($id, $requestData); $item = AttributeGroupRepo::update($id, $requestData);
return json_success(trans('common.updated_success'), $item); return json_success(trans('common.updated_success'), $item);
} }
public function destroy(Request $request, int $id) public function destroy(Request $request, int $id)
{ {
AttributeGroupRepo::delete($id); AttributeGroupRepo::delete($id);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -36,7 +36,6 @@ class BrandController extends Controller
return view('admin::pages.brands.index', $data); return view('admin::pages.brands.index', $data);
} }
/** /**
* 创建品牌 * 创建品牌
* *
@ -46,6 +45,7 @@ class BrandController extends Controller
public function store(Request $request): array public function store(Request $request): array
{ {
$brand = BrandRepo::create($request->all()); $brand = BrandRepo::create($request->all());
return json_success(trans('common.created_success'), $brand); return json_success(trans('common.created_success'), $brand);
} }
@ -73,7 +73,6 @@ class BrandController extends Controller
return json_success(trans('common.get_success'), $brands); return json_success(trans('common.get_success'), $brands);
} }
public function name(int $id): array public function name(int $id): array
{ {
$name = BrandRepo::getName($id); $name = BrandRepo::getName($id);
@ -81,7 +80,6 @@ class BrandController extends Controller
return json_success(trans('common.get_success'), $name); return json_success(trans('common.get_success'), $name);
} }
/** /**
* 根据商品ID批量获取商品名称 * 根据商品ID批量获取商品名称
* *

View File

@ -2,13 +2,13 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Models\Category;
use Illuminate\Http\Request;
use Beike\Repositories\LanguageRepo;
use Beike\Repositories\CategoryRepo;
use Beike\Admin\Services\CategoryService;
use Beike\Admin\Http\Requests\CategoryRequest; use Beike\Admin\Http\Requests\CategoryRequest;
use Beike\Admin\Http\Resources\CategoryResource; use Beike\Admin\Http\Resources\CategoryResource;
use Beike\Admin\Services\CategoryService;
use Beike\Models\Category;
use Beike\Repositories\CategoryRepo;
use Beike\Repositories\LanguageRepo;
use Illuminate\Http\Request;
class CategoryController extends Controller class CategoryController extends Controller
{ {
@ -44,7 +44,6 @@ class CategoryController extends Controller
return $this->save($request, $category); return $this->save($request, $category);
} }
/** /**
* 删除分类 * 删除分类
* @param Request $request * @param Request $request
@ -55,10 +54,10 @@ class CategoryController extends Controller
public function destroy(Request $request, Category $category): array public function destroy(Request $request, Category $category): array
{ {
CategoryRepo::delete($category); CategoryRepo::delete($category);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
public function name(int $id) public function name(int $id)
{ {
$name = CategoryRepo::getName($id); $name = CategoryRepo::getName($id);
@ -86,6 +85,7 @@ class CategoryController extends Controller
protected function save(Request $request, ?Category $category = null) protected function save(Request $request, ?Category $category = null)
{ {
(new CategoryService())->createOrUpdate($request->all(), $category); (new CategoryService())->createOrUpdate($request->all(), $category);
return redirect($this->getRedirect())->with('success', 'Category created successfully'); return redirect($this->getRedirect())->with('success', 'Category created successfully');
} }

View File

@ -2,8 +2,8 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Controller as BaseController; use App\Http\Controllers\Controller as BaseController;
use Illuminate\Support\Facades\Route;
use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\BinaryFileResponse;
abstract class Controller extends BaseController abstract class Controller extends BaseController
@ -19,10 +19,10 @@ abstract class Controller extends BaseController
if (empty($this->defaultRoute)) { if (empty($this->defaultRoute)) {
$this->defaultRoute = $this->getDefaultRoute(); $this->defaultRoute = $this->getDefaultRoute();
} }
return request('_redirect') ?? request()->header('referer', admin_route($this->defaultRoute)); return request('_redirect') ?? request()->header('referer', admin_route($this->defaultRoute));
} }
/** /**
* 获取当前管理界面列表页路由 * 获取当前管理界面列表页路由
* @return string * @return string
@ -32,10 +32,10 @@ abstract class Controller extends BaseController
$currentRouteName = Route::getCurrentRoute()->getName(); $currentRouteName = Route::getCurrentRoute()->getName();
$names = explode('.', $currentRouteName); $names = explode('.', $currentRouteName);
$name = $names[1] ?? ''; $name = $names[1] ?? '';
return "{$name}.index"; return "{$name}.index";
} }
/** /**
* 导出CSV * 导出CSV
* *
@ -63,16 +63,16 @@ abstract class Controller extends BaseController
'Content-Disposition' => "attachment; filename={$fileName}", 'Content-Disposition' => "attachment; filename={$fileName}",
'Content-Transfer-Encoding' => 'binary', 'Content-Transfer-Encoding' => 'binary',
'Expires' => '0', 'Expires' => '0',
'Pragma' => 'public' 'Pragma' => 'public',
]; ];
$columns = array_keys($items[0]); $columns = array_keys($items[0]);
foreach ($columns as $index => $column) { foreach ($columns as $index => $column) {
$columns[$index] = iconv("UTF-8", "{$charset}//IGNORE", trans("$module.{$column}")); $columns[$index] = iconv('UTF-8', "{$charset}//IGNORE", trans("$module.{$column}"));
} }
foreach ($items as $index => $item) { foreach ($items as $index => $item) {
foreach ($item as $field => $value) { foreach ($item as $field => $value) {
$items[$index][$field] = iconv("UTF-8", "{$charset}//IGNORE", $value); $items[$index][$field] = iconv('UTF-8', "{$charset}//IGNORE", $value);
} }
} }

View File

@ -51,5 +51,4 @@ class CountryController extends Controller
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -11,11 +11,11 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Illuminate\Http\Request;
use Beike\Repositories\LanguageRepo;
use Beike\Repositories\CustomerGroupRepo;
use Beike\Admin\Services\CustomerGroupService;
use Beike\Admin\Http\Requests\CustomerGroupRequest; use Beike\Admin\Http\Requests\CustomerGroupRequest;
use Beike\Admin\Services\CustomerGroupService;
use Beike\Repositories\CustomerGroupRepo;
use Beike\Repositories\LanguageRepo;
use Illuminate\Http\Request;
class CustomerGroupController extends Controller class CustomerGroupController extends Controller
{ {
@ -52,6 +52,7 @@ class CustomerGroupController extends Controller
public function destroy(Request $request, int $id) public function destroy(Request $request, int $id)
{ {
CustomerGroupRepo::delete($id); CustomerGroupRepo::delete($id);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -2,10 +2,10 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Illuminate\View\View;
use Illuminate\Http\Request;
use Beike\Services\DesignService;
use Beike\Repositories\SettingRepo; use Beike\Repositories\SettingRepo;
use Beike\Services\DesignService;
use Illuminate\Http\Request;
use Illuminate\View\View;
class DesignController extends Controller class DesignController extends Controller
{ {
@ -21,10 +21,10 @@ class DesignController extends Controller
'editors' => ['editor-slide_show', 'editor-image401', 'editor-tab_product', 'editor-image100', 'editor-brand'], 'editors' => ['editor-slide_show', 'editor-image401', 'editor-tab_product', 'editor-image100', 'editor-brand'],
'design_settings' => system_setting('base.design_setting'), 'design_settings' => system_setting('base.design_setting'),
]; ];
return view('admin::pages.design.builder.index', $data); return view('admin::pages.design.builder.index', $data);
} }
/** /**
* 预览模块显示结果 * 预览模块显示结果
* *
@ -45,13 +45,12 @@ class DesignController extends Controller
'module_id' => $moduleId, 'module_id' => $moduleId,
'view_path' => $viewPath, 'view_path' => $viewPath,
'content' => DesignService::handleModuleContent($moduleCode, $content), 'content' => DesignService::handleModuleContent($moduleCode, $content),
'design' => (bool)$request->get('design') 'design' => (bool) $request->get('design'),
]; ];
return view($viewPath, $viewData); return view($viewPath, $viewData);
} }
/** /**
* 更新所有数据 * 更新所有数据
* *
@ -64,6 +63,7 @@ class DesignController extends Controller
$content = json_decode($request->getContent(), true); $content = json_decode($request->getContent(), true);
$moduleData = DesignService::handleRequestModules($content); $moduleData = DesignService::handleRequestModules($content);
SettingRepo::storeValue('design_setting', $moduleData); SettingRepo::storeValue('design_setting', $moduleData);
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
} }

View File

@ -2,10 +2,10 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Illuminate\View\View;
use Illuminate\Http\Request;
use Beike\Repositories\FooterRepo; use Beike\Repositories\FooterRepo;
use Beike\Repositories\SettingRepo; use Beike\Repositories\SettingRepo;
use Illuminate\Http\Request;
use Illuminate\View\View;
class DesignFooterController extends Controller class DesignFooterController extends Controller
{ {
@ -20,6 +20,7 @@ class DesignFooterController extends Controller
$data = [ $data = [
'design_settings' => system_setting('base.footer_setting'), 'design_settings' => system_setting('base.footer_setting'),
]; ];
return view('admin::pages.design.builder.footer', $data); return view('admin::pages.design.builder.footer', $data);
} }
@ -33,17 +34,16 @@ class DesignFooterController extends Controller
public function preview(Request $request): View public function preview(Request $request): View
{ {
$content = json_decode($request->getContent(), true); $content = json_decode($request->getContent(), true);
$viewPath = "layout.footer"; $viewPath = 'layout.footer';
$viewData = [ $viewData = [
'footer_content' => FooterRepo::handleFooterData($content), 'footer_content' => FooterRepo::handleFooterData($content),
'design' => (bool)$request->get('design') 'design' => (bool) $request->get('design'),
]; ];
return view($viewPath, $viewData); return view($viewPath, $viewData);
} }
/** /**
* 更新所有数据 * 更新所有数据
* *
@ -55,7 +55,8 @@ class DesignFooterController extends Controller
{ {
$content = json_decode($request->getContent(), true); $content = json_decode($request->getContent(), true);
SettingRepo::storeValue("footer_setting", $content); SettingRepo::storeValue('footer_setting', $content);
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
} }

View File

@ -2,10 +2,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Illuminate\View\View;
use Illuminate\Http\Request;
use Beike\Repositories\FooterRepo;
use Beike\Repositories\SettingRepo; use Beike\Repositories\SettingRepo;
use Illuminate\Http\Request;
use Illuminate\View\View;
class DesignMenuController extends Controller class DesignMenuController extends Controller
{ {
@ -20,6 +19,7 @@ class DesignMenuController extends Controller
$data = [ $data = [
'design_settings' => system_setting('base.menu_setting', []), 'design_settings' => system_setting('base.menu_setting', []),
]; ];
return view('admin::pages.design.builder.menu', $data); return view('admin::pages.design.builder.menu', $data);
} }
@ -34,7 +34,8 @@ class DesignMenuController extends Controller
{ {
$content = json_decode($request->getContent(), true); $content = json_decode($request->getContent(), true);
SettingRepo::storeValue("menu_setting", $content); SettingRepo::storeValue('menu_setting', $content);
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
} }

View File

@ -16,10 +16,10 @@ class FileManagerController extends Controller
public function index() public function index()
{ {
$data = (new FileManagerService)->getDirectories(); $data = (new FileManagerService)->getDirectories();
return view('admin::pages.file_manager.index', ['directories' => $data]); return view('admin::pages.file_manager.index', ['directories' => $data]);
} }
/** /**
* 获取某个文件夹下面的文件列表 * 获取某个文件夹下面的文件列表
* *
@ -32,10 +32,10 @@ class FileManagerController extends Controller
$baseFolder = $request->get('base_folder'); $baseFolder = $request->get('base_folder');
$page = (int) $request->get('page'); $page = (int) $request->get('page');
$perPage = (int) $request->get('per_page'); $perPage = (int) $request->get('per_page');
return (new FileManagerService)->getFiles($baseFolder, $page, $perPage); return (new FileManagerService)->getFiles($baseFolder, $page, $perPage);
} }
/** /**
* 获取文件夹列表 * 获取文件夹列表
* @param Request $request * @param Request $request
@ -45,10 +45,10 @@ class FileManagerController extends Controller
public function getDirectories(Request $request) public function getDirectories(Request $request)
{ {
$baseFolder = $request->get('base_folder'); $baseFolder = $request->get('base_folder');
return (new FileManagerService)->getDirectories($baseFolder); return (new FileManagerService)->getDirectories($baseFolder);
} }
/** /**
* 创建文件夹 * 创建文件夹
* POST /admin/file_manager * POST /admin/file_manager
@ -58,10 +58,10 @@ class FileManagerController extends Controller
{ {
$folderName = $request->get('name'); $folderName = $request->get('name');
(new FileManagerService)->createDirectory($folderName); (new FileManagerService)->createDirectory($folderName);
return json_success(trans('common.created_success')); return json_success(trans('common.created_success'));
} }
/** /**
* 文件或文件夹改名 * 文件或文件夹改名
* PUT /admin/file_manager/rename * PUT /admin/file_manager/rename
@ -72,10 +72,10 @@ class FileManagerController extends Controller
$originPath = $request->get('origin_name'); $originPath = $request->get('origin_name');
$newPath = $request->get('new_name'); $newPath = $request->get('new_name');
(new FileManagerService)->updateName($originPath, $newPath); (new FileManagerService)->updateName($originPath, $newPath);
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
/** /**
* 删除文件或文件夹 * 删除文件或文件夹
* DELETE /admin/file_manager/files {"path":"/xx/yy", "files":["1.jpg", "2.png"]} * DELETE /admin/file_manager/files {"path":"/xx/yy", "files":["1.jpg", "2.png"]}
@ -87,10 +87,10 @@ class FileManagerController extends Controller
$basePath = $requestData['path'] ?? ''; $basePath = $requestData['path'] ?? '';
$files = $requestData['files'] ?? []; $files = $requestData['files'] ?? [];
(new FileManagerService)->deleteFiles($basePath, $files); (new FileManagerService)->deleteFiles($basePath, $files);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
/** /**
* 删除文件夹 * 删除文件夹
* *
@ -102,10 +102,10 @@ class FileManagerController extends Controller
{ {
$folderName = $request->get('name'); $folderName = $request->get('name');
(new FileManagerService)->deleteDirectoryOrFile($folderName); (new FileManagerService)->deleteDirectoryOrFile($folderName);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
/** /**
* 上传文件 * 上传文件
* POST /admin/file_manager/upload * POST /admin/file_manager/upload

View File

@ -35,6 +35,7 @@ class ForgottenController
public function sendVerifyCode(VerifyCodeRequest $request) public function sendVerifyCode(VerifyCodeRequest $request)
{ {
UserService::sendVerifyCodeForForgotten($request->get('email')); UserService::sendVerifyCodeForForgotten($request->get('email'));
return json_success(trans('admin/forgotten.verify_code_sent')); return json_success(trans('admin/forgotten.verify_code_sent'));
} }

View File

@ -19,7 +19,7 @@ class HomeController extends Controller
'latest_month' => OrderReportRepo::getLatestMonth(), 'latest_month' => OrderReportRepo::getLatestMonth(),
'latest_week' => OrderReportRepo::getLatestWeek(), 'latest_week' => OrderReportRepo::getLatestWeek(),
'latest_year' => OrderReportRepo::getLatestYear(), 'latest_year' => OrderReportRepo::getLatestYear(),
] ],
]; ];
return view('admin::pages.home', $data); return view('admin::pages.home', $data);

View File

@ -12,9 +12,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Services\LanguageService; use Beike\Admin\Services\LanguageService;
use Beike\Repositories\LanguageRepo;
use Exception; use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Beike\Repositories\LanguageRepo;
class LanguageController extends Controller class LanguageController extends Controller
{ {
@ -45,7 +45,6 @@ class LanguageController extends Controller
return json_success(trans('common.created_success'), $language); return json_success(trans('common.created_success'), $language);
} }
/** /**
* @param Request $request * @param Request $request
* @param int $id * @param int $id
@ -59,7 +58,6 @@ class LanguageController extends Controller
return json_success(trans('common.updated_success'), $language); return json_success(trans('common.updated_success'), $language);
} }
/** /**
* 删除语言 * 删除语言
* *

View File

@ -11,9 +11,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Models\AdminUser;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Beike\Admin\Http\Requests\LoginRequest; use Beike\Admin\Http\Requests\LoginRequest;
use Beike\Models\AdminUser;
class LoginController extends Controller class LoginController extends Controller
{ {
@ -22,15 +22,16 @@ class LoginController extends Controller
if (auth(AdminUser::AUTH_GUARD)->check()) { if (auth(AdminUser::AUTH_GUARD)->check()) {
return redirect()->back(); return redirect()->back();
} }
return view('admin::pages.login.login', \request()->only('admin_email', 'admin_password')); return view('admin::pages.login.login', \request()->only('admin_email', 'admin_password'));
} }
public function store(LoginRequest $loginRequest) public function store(LoginRequest $loginRequest)
{ {
if (auth(AdminUser::AUTH_GUARD)->attempt($loginRequest->validated())) { if (auth(AdminUser::AUTH_GUARD)->attempt($loginRequest->validated())) {
return redirect(admin_route('home.index')); return redirect(admin_route('home.index'));
} }
return redirect()->back()->with(['error' => trans('auth.failed')])->withInput(); return redirect()->back()->with(['error' => trans('auth.failed')])->withInput();
} }
} }

View File

@ -12,6 +12,7 @@ class LogoutController extends Controller
public function index(Request $request) public function index(Request $request)
{ {
Auth::guard(AdminUser::AUTH_GUARD)->logout(); Auth::guard(AdminUser::AUTH_GUARD)->logout();
return redirect(admin_route('login.show')); return redirect(admin_route('login.show'));
} }
} }

View File

@ -11,11 +11,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Repositories\PluginRepo;
use ZanySoft\Zip\Zip;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Beike\Admin\Services\MarketingService; use Beike\Admin\Services\MarketingService;
use Beike\Repositories\PluginRepo;
use Illuminate\Http\Request;
class MarketingController class MarketingController
{ {
@ -43,7 +41,6 @@ class MarketingController
return view('admin::pages.marketing.index', $data); return view('admin::pages.marketing.index', $data);
} }
/** /**
* 获取单个插件详情 * 获取单个插件详情
*/ */
@ -59,13 +56,13 @@ class MarketingController
if ($request->expectsJson()) { if ($request->expectsJson()) {
return $data; return $data;
} }
return view('admin::pages.marketing.show', $data); return view('admin::pages.marketing.show', $data);
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect(admin_route('marketing.index'))->withErrors(['error' => $e->getMessage()]); return redirect(admin_route('marketing.index'))->withErrors(['error' => $e->getMessage()]);
} }
} }
/** /**
* 下单购买插件 * 下单购买插件
*/ */
@ -75,13 +72,13 @@ class MarketingController
$postData = $request->getContent(); $postData = $request->getContent();
$pluginCode = $request->code; $pluginCode = $request->code;
$result = MarketingService::getInstance()->buy($pluginCode, $postData); $result = MarketingService::getInstance()->buy($pluginCode, $postData);
return json_success('获取成功', $result); return json_success('获取成功', $result);
} catch (\Exception $e) { } catch (\Exception $e) {
return json_fail($e->getMessage()); return json_fail($e->getMessage());
} }
} }
/** /**
* 下载插件安装包到本地 * 下载插件安装包到本地
*/ */
@ -90,6 +87,7 @@ class MarketingController
try { try {
$pluginCode = $request->code; $pluginCode = $request->code;
MarketingService::getInstance()->download($pluginCode); MarketingService::getInstance()->download($pluginCode);
return json_success('下载解压成功, 请去插件列表安装'); return json_success('下载解压成功, 请去插件列表安装');
} catch (\Exception $e) { } catch (\Exception $e) {
return json_fail($e->getMessage()); return json_fail($e->getMessage());

View File

@ -11,13 +11,13 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Models\Order;
use Beike\Services\ShipmentService;
use Illuminate\Http\Request;
use Beike\Repositories\OrderRepo;
use Beike\Services\StateMachineService;
use Beike\Admin\Http\Resources\OrderSimple; use Beike\Admin\Http\Resources\OrderSimple;
use Beike\Models\Order;
use Beike\Repositories\OrderRepo;
use Beike\Services\ShipmentService;
use Beike\Services\StateMachineService;
use Beike\Shop\Http\Resources\Account\OrderList; use Beike\Shop\Http\Resources\Account\OrderList;
use Illuminate\Http\Request;
class OrderController extends Controller class OrderController extends Controller
{ {
@ -35,10 +35,10 @@ class OrderController extends Controller
'orders' => OrderList::collection($orders), 'orders' => OrderList::collection($orders),
'statuses' => StateMachineService::getAllStatuses(), 'statuses' => StateMachineService::getAllStatuses(),
]; ];
return view('admin::pages.orders.index', $data); return view('admin::pages.orders.index', $data);
} }
/** /**
* 导出订单列表 * 导出订单列表
* *
@ -51,13 +51,13 @@ class OrderController extends Controller
try { try {
$orders = OrderRepo::filterAll($request->all()); $orders = OrderRepo::filterAll($request->all());
$items = OrderSimple::collection($orders)->jsonSerialize(); $items = OrderSimple::collection($orders)->jsonSerialize();
return $this->downloadCsv('orders', $items, 'order'); return $this->downloadCsv('orders', $items, 'order');
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect(admin_route('orders.index'))->withErrors(['error' => $e->getMessage()]); return redirect(admin_route('orders.index'))->withErrors(['error' => $e->getMessage()]);
} }
} }
/** /**
* 查看单个订单 * 查看单个订单
* *
@ -71,10 +71,10 @@ class OrderController extends Controller
$order->load(['orderTotals', 'orderHistories', 'orderShipments']); $order->load(['orderTotals', 'orderHistories', 'orderShipments']);
$data = hook_filter('admin_order_detail', ['order' => $order, 'html_items' => []]); $data = hook_filter('admin_order_detail', ['order' => $order, 'html_items' => []]);
$data['statuses'] = StateMachineService::getInstance($order)->nextBackendStatuses(); $data['statuses'] = StateMachineService::getInstance($order)->nextBackendStatuses();
return view('admin::pages.orders.form', $data); return view('admin::pages.orders.form', $data);
} }
/** /**
* 更新订单状态,添加订单更新日志 * 更新订单状态,添加订单更新日志
* *
@ -93,6 +93,7 @@ class OrderController extends Controller
$stateMachine = new StateMachineService($order); $stateMachine = new StateMachineService($order);
$stateMachine->setShipment($shipment)->changeStatus($status, $comment, $notify); $stateMachine->setShipment($shipment)->changeStatus($status, $comment, $notify);
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
} }

View File

@ -12,11 +12,11 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Requests\PageRequest; use Beike\Admin\Http\Requests\PageRequest;
use Beike\Models\Page;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Beike\Admin\Repositories\PageRepo; use Beike\Admin\Repositories\PageRepo;
use Beike\Models\Page;
use Beike\Shop\Http\Resources\PageDetail; use Beike\Shop\Http\Resources\PageDetail;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class PagesController class PagesController
{ {
@ -30,12 +30,12 @@ class PagesController
$pageList = PageRepo::getList(); $pageList = PageRepo::getList();
$data = [ $data = [
'pages' => $pageList, 'pages' => $pageList,
'pages_format' => PageDetail::collection($pageList)->jsonSerialize() 'pages_format' => PageDetail::collection($pageList)->jsonSerialize(),
]; ];
return view('admin::pages.pages.index', $data); return view('admin::pages.pages.index', $data);
} }
/** /**
* 创建页面 * 创建页面
* *
@ -46,7 +46,6 @@ class PagesController
return view('admin::pages.pages.form', ['page' => new Page()]); return view('admin::pages.pages.form', ['page' => new Page()]);
} }
/** /**
* 保存新建 * 保存新建
* *
@ -58,13 +57,13 @@ class PagesController
try { try {
$requestData = $request->all(); $requestData = $request->all();
PageRepo::createOrUpdate($requestData); PageRepo::createOrUpdate($requestData);
return redirect(admin_route('pages.index')); return redirect(admin_route('pages.index'));
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect(admin_route('pages.index'))->withErrors(['error' => $e->getMessage()]); return redirect(admin_route('pages.index'))->withErrors(['error' => $e->getMessage()]);
} }
} }
/** /**
* @param Request $request * @param Request $request
* @param int $pageId * @param int $pageId
@ -76,10 +75,10 @@ class PagesController
'page' => PageRepo::findByPageId($pageId), 'page' => PageRepo::findByPageId($pageId),
'descriptions' => PageRepo::getDescriptionsByLocale($pageId), 'descriptions' => PageRepo::getDescriptionsByLocale($pageId),
]; ];
return view('admin::pages.pages.form', $data); return view('admin::pages.pages.form', $data);
} }
/** /**
* 保存更新 * 保存更新
* *
@ -93,13 +92,13 @@ class PagesController
$requestData = $request->all(); $requestData = $request->all();
$requestData['id'] = $pageId; $requestData['id'] = $pageId;
PageRepo::createOrUpdate($requestData); PageRepo::createOrUpdate($requestData);
return redirect()->to(admin_route('pages.index')); return redirect()->to(admin_route('pages.index'));
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect(admin_route('pages.index'))->withErrors(['error' => $e->getMessage()]); return redirect(admin_route('pages.index'))->withErrors(['error' => $e->getMessage()]);
} }
} }
/** /**
* 删除单页 * 删除单页
* *
@ -110,10 +109,10 @@ class PagesController
public function destroy(Request $request, int $pageId): array public function destroy(Request $request, int $pageId): array
{ {
PageRepo::deleteById($pageId); PageRepo::deleteById($pageId);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
/** /**
* 搜索页面标题自动完成 * 搜索页面标题自动完成
* @param Request $request * @param Request $request
@ -122,10 +121,10 @@ class PagesController
public function autocomplete(Request $request): array public function autocomplete(Request $request): array
{ {
$products = PageRepo::autocomplete($request->get('name') ?? ''); $products = PageRepo::autocomplete($request->get('name') ?? '');
return json_success(trans('common.get_success'), $products); return json_success(trans('common.get_success'), $products);
} }
/** /**
* 获取单页名称 * 获取单页名称
* @param Page $page * @param Page $page
@ -134,6 +133,7 @@ class PagesController
public function name(Page $page): array public function name(Page $page): array
{ {
$name = $page->description->title ?? ''; $name = $page->description->title ?? '';
return json_success(trans('common.get_success'), $name); return json_success(trans('common.get_success'), $name);
} }
} }

View File

@ -11,12 +11,12 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Exception; use Beike\Admin\Http\Resources\PluginResource;
use Illuminate\Http\Request;
use Beike\Repositories\PluginRepo; use Beike\Repositories\PluginRepo;
use Beike\Repositories\SettingRepo; use Beike\Repositories\SettingRepo;
use Exception;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Beike\Admin\Http\Resources\PluginResource; use Illuminate\Http\Request;
class PluginController extends Controller class PluginController extends Controller
{ {
@ -27,10 +27,10 @@ class PluginController extends Controller
{ {
$plugins = app('plugin')->getPlugins(); $plugins = app('plugin')->getPlugins();
$data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize()); $data['plugins'] = array_values(PluginResource::collection($plugins)->jsonSerialize());
return view('admin::pages.plugins.index', $data); return view('admin::pages.plugins.index', $data);
} }
/** /**
* 上传插件 * 上传插件
*/ */
@ -38,10 +38,10 @@ class PluginController extends Controller
{ {
$zipFile = $request->file('file'); $zipFile = $request->file('file');
app('plugin')->import($zipFile); app('plugin')->import($zipFile);
return json_success(trans('common.success')); return json_success(trans('common.success'));
} }
/** /**
* @param Request $request * @param Request $request
* @param $code * @param $code
@ -52,10 +52,10 @@ class PluginController extends Controller
{ {
$plugin = app('plugin')->getPluginOrFail($code); $plugin = app('plugin')->getPluginOrFail($code);
PluginRepo::installPlugin($plugin); PluginRepo::installPlugin($plugin);
return json_success(trans('common.success')); return json_success(trans('common.success'));
} }
/** /**
* @param Request $request * @param Request $request
* @param $code * @param $code
@ -66,10 +66,10 @@ class PluginController extends Controller
{ {
$plugin = app('plugin')->getPluginOrFail($code); $plugin = app('plugin')->getPluginOrFail($code);
PluginRepo::uninstallPlugin($plugin); PluginRepo::uninstallPlugin($plugin);
return json_success(trans('common.success')); return json_success(trans('common.success'));
} }
/** /**
* @param Request $request * @param Request $request
* @param $code * @param $code
@ -81,10 +81,10 @@ class PluginController extends Controller
$plugin = app('plugin')->getPluginOrFail($code); $plugin = app('plugin')->getPluginOrFail($code);
$columnView = $plugin->getColumnView(); $columnView = $plugin->getColumnView();
$view = $columnView ?: 'admin::pages.plugins.form'; $view = $columnView ?: 'admin::pages.plugins.form';
return view($view, ['plugin' => $plugin]); return view($view, ['plugin' => $plugin]);
} }
/** /**
* @param Request $request * @param Request $request
* @param $code * @param $code
@ -104,10 +104,10 @@ class PluginController extends Controller
SettingRepo::update('plugin', $code, $fields); SettingRepo::update('plugin', $code, $fields);
hook_action('after_edit_plugin', ['plugin_code' => $code, 'fields' => $fields]); hook_action('after_edit_plugin', ['plugin_code' => $code, 'fields' => $fields]);
return redirect($this->getRedirect())->with('success', trans('common.updated_success')); return redirect($this->getRedirect())->with('success', trans('common.updated_success'));
} }
/** /**
* @param Request $request * @param Request $request
* @param $code * @param $code
@ -119,6 +119,7 @@ class PluginController extends Controller
app('plugin')->getPluginOrFail($code); app('plugin')->getPluginOrFail($code);
$status = $request->get('status'); $status = $request->get('status');
SettingRepo::update('plugin', $code, ['status' => $status]); SettingRepo::update('plugin', $code, ['status' => $status]);
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
} }

View File

@ -2,17 +2,16 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Requests\ProductRequest;
use Beike\Admin\Http\Resources\ProductAttributeResource; use Beike\Admin\Http\Resources\ProductAttributeResource;
use Beike\Admin\Http\Resources\ProductResource;
use Beike\Admin\Repositories\TaxClassRepo;
use Beike\Admin\Services\ProductService;
use Beike\Models\Product; use Beike\Models\Product;
use Beike\Models\ProductAttribute;
use Illuminate\Http\Request;
use Beike\Repositories\ProductRepo;
use Beike\Repositories\CategoryRepo; use Beike\Repositories\CategoryRepo;
use Beike\Repositories\LanguageRepo; use Beike\Repositories\LanguageRepo;
use Beike\Admin\Services\ProductService; use Beike\Repositories\ProductRepo;
use Beike\Admin\Repositories\TaxClassRepo; use Illuminate\Http\Request;
use Beike\Admin\Http\Requests\ProductRequest;
use Beike\Admin\Http\Resources\ProductResource;
class ProductController extends Controller class ProductController extends Controller
{ {
@ -66,6 +65,7 @@ class ProductController extends Controller
{ {
try { try {
(new ProductService)->create($request->all()); (new ProductService)->create($request->all());
return redirect()->to(admin_route('products.index')) return redirect()->to(admin_route('products.index'))
->with('success', trans('common.created_success')); ->with('success', trans('common.created_success'));
} catch (\Exception $e) { } catch (\Exception $e) {
@ -84,6 +84,7 @@ class ProductController extends Controller
{ {
try { try {
(new ProductService)->update($product, $request->all()); (new ProductService)->update($product, $request->all());
return redirect()->to($this->getRedirect())->with('success', trans('common.updated_success')); return redirect()->to($this->getRedirect())->with('success', trans('common.updated_success'));
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect(admin_route('products.edit', $product))->withErrors(['error' => $e->getMessage()]); return redirect(admin_route('products.edit', $product))->withErrors(['error' => $e->getMessage()]);
@ -93,6 +94,7 @@ class ProductController extends Controller
public function destroy(Request $request, Product $product) public function destroy(Request $request, Product $product)
{ {
$product->delete(); $product->delete();
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
@ -136,7 +138,6 @@ class ProductController extends Controller
return json_success(trans('common.get_success'), $name); return json_success(trans('common.get_success'), $name);
} }
/** /**
* 根据商品ID批量获取商品名称 * 根据商品ID批量获取商品名称
* *
@ -151,7 +152,6 @@ class ProductController extends Controller
return json_success(trans('common.get_success'), $name); return json_success(trans('common.get_success'), $name);
} }
public function autocomplete(Request $request) public function autocomplete(Request $request)
{ {
$products = ProductRepo::autocomplete($request->get('name') ?? ''); $products = ProductRepo::autocomplete($request->get('name') ?? '');
@ -166,7 +166,6 @@ class ProductController extends Controller
return json_success(trans('common.updated_success'), []); return json_success(trans('common.updated_success'), []);
} }
public function destroyByIds(Request $request) public function destroyByIds(Request $request)
{ {
ProductRepo::DeleteByIds($request->get('ids')); ProductRepo::DeleteByIds($request->get('ids'));

View File

@ -11,10 +11,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Models\Region;
use Illuminate\Http\Request;
use Beike\Repositories\CountryRepo;
use Beike\Admin\Repositories\RegionRepo; use Beike\Admin\Repositories\RegionRepo;
use Beike\Repositories\CountryRepo;
use Illuminate\Http\Request;
class RegionController class RegionController
{ {
@ -22,7 +21,7 @@ class RegionController
{ {
$data = [ $data = [
'regions' => RegionRepo::getList(), 'regions' => RegionRepo::getList(),
'countries' => CountryRepo::all() 'countries' => CountryRepo::all(),
]; ];
return view('admin::pages.regions.index', $data); return view('admin::pages.regions.index', $data);
@ -32,6 +31,7 @@ class RegionController
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$region = RegionRepo::createOrUpdate($requestData); $region = RegionRepo::createOrUpdate($requestData);
return json_success(trans('common.created_success'), $region); return json_success(trans('common.created_success'), $region);
} }
@ -40,12 +40,14 @@ class RegionController
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$requestData['id'] = $regionId; $requestData['id'] = $regionId;
$region = RegionRepo::createOrUpdate($requestData); $region = RegionRepo::createOrUpdate($requestData);
return json_success(trans('common.updated_success'), $region); return json_success(trans('common.updated_success'), $region);
} }
public function destroy(Request $request, int $regionId) public function destroy(Request $request, int $regionId)
{ {
RegionRepo::deleteById($regionId); RegionRepo::deleteById($regionId);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -13,10 +13,7 @@ namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Resources\RmaDetail; use Beike\Admin\Http\Resources\RmaDetail;
use Beike\Admin\Http\Resources\RmaHistoryDetail; use Beike\Admin\Http\Resources\RmaHistoryDetail;
use Beike\Models\Rma;
use Beike\Repositories\RmaReasonRepo;
use Beike\Repositories\RmaRepo; use Beike\Repositories\RmaRepo;
use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class RmaController extends Controller class RmaController extends Controller
@ -45,6 +42,7 @@ class RmaController extends Controller
'statuses' => RmaRepo::getStatuses(), 'statuses' => RmaRepo::getStatuses(),
'types' => RmaRepo::getTypes(), 'types' => RmaRepo::getTypes(),
]; ];
return view('admin::pages.rmas.info', $data); return view('admin::pages.rmas.info', $data);
} }
@ -56,6 +54,7 @@ class RmaController extends Controller
'rma' => (new RmaDetail(RmaRepo::find($id)))->jsonSerialize(), 'rma' => (new RmaDetail(RmaRepo::find($id)))->jsonSerialize(),
'statuses' => RmaRepo::getStatuses(), 'statuses' => RmaRepo::getStatuses(),
]; ];
return json_success(trans('common.updated_success'), $data); return json_success(trans('common.updated_success'), $data);
} }

View File

@ -12,8 +12,8 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Resources\RmaReasonDetail; use Beike\Admin\Http\Resources\RmaReasonDetail;
use Beike\Repositories\RmaReasonRepo;
use Beike\Repositories\LanguageRepo; use Beike\Repositories\LanguageRepo;
use Beike\Repositories\RmaReasonRepo;
use Exception; use Exception;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -38,6 +38,7 @@ class RmaReasonController extends Controller
public function store(Request $request): array public function store(Request $request): array
{ {
$rmaReason = RmaReasonRepo::create($request->only('name')); $rmaReason = RmaReasonRepo::create($request->only('name'));
return json_success(trans('common.created_success'), $rmaReason); return json_success(trans('common.created_success'), $rmaReason);
} }

View File

@ -11,12 +11,12 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Illuminate\Http\Request; use Beike\Admin\Http\Resources\CustomerGroupDetail;
use Beike\Repositories\SettingRepo;
use Beike\Repositories\CountryRepo; use Beike\Repositories\CountryRepo;
use Beike\Repositories\CurrencyRepo; use Beike\Repositories\CurrencyRepo;
use Beike\Repositories\CustomerGroupRepo; use Beike\Repositories\CustomerGroupRepo;
use Beike\Admin\Http\Resources\CustomerGroupDetail; use Beike\Repositories\SettingRepo;
use Illuminate\Http\Request;
class SettingController extends Controller class SettingController extends Controller
{ {
@ -29,12 +29,12 @@ class SettingController extends Controller
{ {
$themes = [ $themes = [
['value' => 'default', 'label' => trans('admin/setting.theme_default')], ['value' => 'default', 'label' => trans('admin/setting.theme_default')],
['value' => 'black', 'label' => trans('admin/setting.theme_black')] ['value' => 'black', 'label' => trans('admin/setting.theme_black')],
]; ];
$tax_address = [ $tax_address = [
['value' => 'shipping', 'label' => trans('admin/setting.shipping_address')], ['value' => 'shipping', 'label' => trans('admin/setting.shipping_address')],
['value' => 'payment', 'label' => trans('admin/setting.payment_address')] ['value' => 'payment', 'label' => trans('admin/setting.payment_address')],
]; ];
$data = [ $data = [
@ -42,13 +42,12 @@ class SettingController extends Controller
'currencies' => CurrencyRepo::listEnabled(), 'currencies' => CurrencyRepo::listEnabled(),
'tax_address' => $tax_address, 'tax_address' => $tax_address,
'customer_groups' => CustomerGroupDetail::collection(CustomerGroupRepo::list())->jsonSerialize(), 'customer_groups' => CustomerGroupDetail::collection(CustomerGroupRepo::list())->jsonSerialize(),
'themes' => $themes 'themes' => $themes,
]; ];
return view('admin::pages.setting', $data); return view('admin::pages.setting', $data);
} }
/** /**
* 更新系统设置 * 更新系统设置
* *
@ -64,12 +63,14 @@ class SettingController extends Controller
$oldAdminName = admin_name(); $oldAdminName = admin_name();
$newAdminName = $settings['admin_name'] ?: 'admin'; $newAdminName = $settings['admin_name'] ?: 'admin';
$settingUrl = str_replace($oldAdminName, $newAdminName, admin_route('settings.index')); $settingUrl = str_replace($oldAdminName, $newAdminName, admin_route('settings.index'));
return redirect($settingUrl)->with('success', trans('common.updated_success')); return redirect($settingUrl)->with('success', trans('common.updated_success'));
} }
public function storeDeveloperToken(Request $request) public function storeDeveloperToken(Request $request)
{ {
SettingRepo::storeValue('developer_token', $request->get('developer_token')); SettingRepo::storeValue('developer_token', $request->get('developer_token'));
return json_success(trans('common.updated_success')); return json_success(trans('common.updated_success'));
} }
} }

View File

@ -11,9 +11,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Repositories\TaxClassRepo;
use Beike\Models\TaxRate; use Beike\Models\TaxRate;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Beike\Admin\Repositories\TaxClassRepo;
class TaxClassController extends Controller class TaxClassController extends Controller
{ {
@ -32,6 +32,7 @@ class TaxClassController extends Controller
{ {
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$taxClass = TaxClassRepo::createOrUpdate($requestData); $taxClass = TaxClassRepo::createOrUpdate($requestData);
return json_success(trans('common.created_success'), $taxClass); return json_success(trans('common.created_success'), $taxClass);
} }
@ -40,12 +41,14 @@ class TaxClassController extends Controller
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$requestData['id'] = $taxClassId; $requestData['id'] = $taxClassId;
$taxClass = TaxClassRepo::createOrUpdate($requestData); $taxClass = TaxClassRepo::createOrUpdate($requestData);
return json_success(trans('common.updated_success'), $taxClass); return json_success(trans('common.updated_success'), $taxClass);
} }
public function destroy(Request $request, int $taxClassId) public function destroy(Request $request, int $taxClassId)
{ {
TaxClassRepo::deleteById($taxClassId); TaxClassRepo::deleteById($taxClassId);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -12,9 +12,9 @@
namespace Beike\Admin\Http\Controllers; namespace Beike\Admin\Http\Controllers;
use Beike\Admin\Http\Requests\TaxRateRequest; use Beike\Admin\Http\Requests\TaxRateRequest;
use Beike\Admin\Repositories\TaxRateRepo;
use Beike\Models\Region; use Beike\Models\Region;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Beike\Admin\Repositories\TaxRateRepo;
class TaxRateController class TaxRateController
{ {
@ -22,7 +22,7 @@ class TaxRateController
{ {
$data = [ $data = [
'tax_rates' => TaxRateRepo::getList(), 'tax_rates' => TaxRateRepo::getList(),
'regions' => Region::all() 'regions' => Region::all(),
]; ];
return view('admin::pages.tax_rates.index', $data); return view('admin::pages.tax_rates.index', $data);
@ -33,6 +33,7 @@ class TaxRateController
$requestData = json_decode($request->getContent(), true); $requestData = json_decode($request->getContent(), true);
$taxRate = TaxRateRepo::createOrUpdate($requestData); $taxRate = TaxRateRepo::createOrUpdate($requestData);
$taxRate->load('region'); $taxRate->load('region');
return json_success(trans('common.created_success'), $taxRate); return json_success(trans('common.created_success'), $taxRate);
} }
@ -42,12 +43,14 @@ class TaxRateController
$requestData['id'] = $taxRateId; $requestData['id'] = $taxRateId;
$taxRate = TaxRateRepo::createOrUpdate($requestData); $taxRate = TaxRateRepo::createOrUpdate($requestData);
$taxRate->load('region'); $taxRate->load('region');
return json_success(trans('common.updated_success'), $taxRate); return json_success(trans('common.updated_success'), $taxRate);
} }
public function destroy(Request $request, int $taxRateId) public function destroy(Request $request, int $taxRateId)
{ {
TaxRateRepo::deleteById($taxRateId); TaxRateRepo::deleteById($taxRateId);
return json_success(trans('common.deleted_success')); return json_success(trans('common.deleted_success'));
} }
} }

View File

@ -23,7 +23,7 @@ class ZoneController extends Controller
$data = [ $data = [
'zones' => $zones, 'zones' => $zones,
'countries' => CountryRepo::all() 'countries' => CountryRepo::all(),
]; ];
if ($request->expectsJson()) { if ($request->expectsJson()) {

View File

@ -42,6 +42,7 @@ class CustomerRequest extends FormRequest
} else { } else {
$rules['email'] = 'required|email:rfc|unique:customers,email,' . $this->id; $rules['email'] = 'required|email:rfc|unique:customers,email,' . $this->id;
} }
return $rules; return $rules;
} }

View File

@ -31,7 +31,7 @@ class ForgottenRequest extends FormRequest
public function attributes() public function attributes()
{ {
return [ return [
'password' => trans('customer.password') 'password' => trans('customer.password'),
]; ];
} }
} }

View File

@ -28,6 +28,4 @@ class LoginRequest extends FormRequest
'password' => 'required', 'password' => 'required',
]; ];
} }
} }

View File

@ -41,6 +41,7 @@ class RmaRequest extends FormRequest
'rma_reason_id' => 'required|exists:rma_reasons,id', 'rma_reason_id' => 'required|exists:rma_reasons,id',
'type' => 'required', 'type' => 'required',
]; ];
return $rules; return $rules;
} }

View File

@ -42,10 +42,10 @@ class TaxRateRequest extends FormRequest
if ($this->type == 'percent') { if ($this->type == 'percent') {
$rule['rate'] = 'required|numeric|gt:0|lt:100'; $rule['rate'] = 'required|numeric|gt:0|lt:100';
} }
return $rule; return $rule;
} }
public function attributes() public function attributes()
{ {
return [ return [

View File

@ -22,7 +22,7 @@ class AttributeDetailResource extends JsonResource
'attribute_group_name' => $this->attributeGroup->description->name ?? '', 'attribute_group_name' => $this->attributeGroup->description->name ?? '',
'created_at' => time_format($this->created_at), 'created_at' => time_format($this->created_at),
'values' => AttributeValueResource::collection($this->values), 'values' => AttributeValueResource::collection($this->values),
'descriptions' => $this->descriptions 'descriptions' => $this->descriptions,
]; ];
return $data; return $data;

View File

@ -21,7 +21,7 @@ class CategoryResource extends JsonResource
'position' => $this->position, 'position' => $this->position,
'active' => $this->active, 'active' => $this->active,
'url_edit' => admin_route('categories.edit', $this), 'url_edit' => admin_route('categories.edit', $this),
'children' => CategoryResource::collection($this->children), 'children' => self::collection($this->children),
]; ];
return $data; return $data;

View File

@ -11,7 +11,6 @@
namespace Beike\Admin\Http\Resources; namespace Beike\Admin\Http\Resources;
use Beike\Repositories\RmaRepo;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
class RmaReasonDetail extends JsonResource class RmaReasonDetail extends JsonResource
@ -21,7 +20,7 @@ class RmaReasonDetail extends JsonResource
return [ return [
'id' => $this->id, 'id' => $this->id,
'name' => json_decode($this->name, true)[locale()] ?? '', 'name' => json_decode($this->name, true)[locale()] ?? '',
'names' => json_decode($this->name, true) 'names' => json_decode($this->name, true),
]; ];
} }
} }

View File

@ -11,25 +11,25 @@
namespace Beike\Admin\Providers; namespace Beike\Admin\Providers;
use Beike\Models\AdminUser;
use Illuminate\Support\Str;
use Beike\Console\Commands\Sitemap;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\ServiceProvider;
use Beike\Admin\View\Components\Filter;
use Beike\Admin\View\Components\Header;
use Beike\Admin\View\Components\Sidebar;
use Beike\Admin\View\Components\Alert; use Beike\Admin\View\Components\Alert;
use Beike\Admin\View\Components\NoData; use Beike\Admin\View\Components\Filter;
use Beike\Admin\View\Components\Form\Image; use Beike\Admin\View\Components\Form\Image;
use Beike\Admin\View\Components\Form\Input; use Beike\Admin\View\Components\Form\Input;
use Beike\Admin\View\Components\Form\Select;
use Beike\Console\Commands\MakeRootAdminUser;
use Beike\Admin\View\Components\Form\Textarea;
use Beike\Console\Commands\GenerateDatabaseDict;
use Beike\Admin\View\Components\Form\InputLocale; use Beike\Admin\View\Components\Form\InputLocale;
use Beike\Admin\View\Components\Form\Select;
use Beike\Admin\View\Components\Form\SwitchRadio; use Beike\Admin\View\Components\Form\SwitchRadio;
use Beike\Admin\View\Components\Form\Textarea;
use Beike\Admin\View\Components\Header;
use Beike\Admin\View\Components\NoData;
use Beike\Admin\View\Components\Sidebar;
use Beike\Console\Commands\GenerateDatabaseDict;
use Beike\Console\Commands\MakeRootAdminUser;
use Beike\Console\Commands\Sitemap;
use Beike\Models\AdminUser;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
use Illuminate\View\FileViewFinder; use Illuminate\View\FileViewFinder;
class AdminServiceProvider extends ServiceProvider class AdminServiceProvider extends ServiceProvider
@ -75,7 +75,6 @@ class AdminServiceProvider extends ServiceProvider
$this->loadDesignComponents(); $this->loadDesignComponents();
} }
/** /**
* 加载后台命令行脚本 * 加载后台命令行脚本
*/ */
@ -90,7 +89,6 @@ class AdminServiceProvider extends ServiceProvider
} }
} }
/** /**
* 注册后台用户 guard * 注册后台用户 guard
*/ */
@ -107,7 +105,6 @@ class AdminServiceProvider extends ServiceProvider
]); ]);
} }
/** /**
* 加载主题模板, 用于装修预览 * 加载主题模板, 用于装修预览
*/ */
@ -119,11 +116,11 @@ class AdminServiceProvider extends ServiceProvider
$customTheme[] = base_path("themes/{$theme}"); $customTheme[] = base_path("themes/{$theme}");
$paths = array_merge($customTheme, $paths); $paths = array_merge($customTheme, $paths);
} }
return new FileViewFinder($app['files'], $paths); return new FileViewFinder($app['files'], $paths);
}); });
} }
/** /**
* 后台UI组件 * 后台UI组件
*/ */
@ -144,7 +141,6 @@ class AdminServiceProvider extends ServiceProvider
]); ]);
} }
/** /**
* seeder 数据 * seeder 数据
*/ */
@ -155,7 +151,6 @@ class AdminServiceProvider extends ServiceProvider
], 'beike-seeders'); ], 'beike-seeders');
} }
/** /**
* 加载首页 page builder 相关组件 * 加载首页 page builder 相关组件
* *
@ -177,12 +172,11 @@ class AdminServiceProvider extends ServiceProvider
throw new \Exception("请先定义自定义模板类 {$classBaseName}"); throw new \Exception("请先定义自定义模板类 {$classBaseName}");
} }
$this->loadViewComponentsAs('editor', [ $this->loadViewComponentsAs('editor', [
$aliasName => $classBaseName $aliasName => $classBaseName,
]); ]);
} }
} }
/** /**
* 后台公共数据 * 后台公共数据
*/ */

View File

@ -28,10 +28,10 @@ class AdminRoleRepo
$adminRole = Role::findOrCreate($data['name'], 'web_admin'); $adminRole = Role::findOrCreate($data['name'], 'web_admin');
$permissions = $data['permissions']; $permissions = $data['permissions'];
self::syncPermissions($adminRole, $permissions); self::syncPermissions($adminRole, $permissions);
return $adminRole; return $adminRole;
} }
/** /**
* 编辑新角色 * 编辑新角色
* *
@ -49,10 +49,10 @@ class AdminRoleRepo
$permissions = $data['permissions']; $permissions = $data['permissions'];
self::syncPermissions($adminRole, $permissions); self::syncPermissions($adminRole, $permissions);
return $adminRole; return $adminRole;
} }
/** /**
* 同步所有权限 * 同步所有权限
* *
@ -78,7 +78,6 @@ class AdminRoleRepo
$adminRole->syncPermissions($items); $adminRole->syncPermissions($items);
} }
/** /**
* 删除角色 * 删除角色
* *

View File

@ -11,8 +11,8 @@
namespace Beike\Admin\Repositories; namespace Beike\Admin\Repositories;
use Beike\Models\AdminUser;
use Beike\Admin\Http\Resources\AdminUserDetail; use Beike\Admin\Http\Resources\AdminUserDetail;
use Beike\Models\AdminUser;
use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException; use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException;
class AdminUserRepo class AdminUserRepo
@ -24,10 +24,10 @@ class AdminUserRepo
{ {
$builder = AdminUser::query()->with(['roles']); $builder = AdminUser::query()->with(['roles']);
$adminUsers = $builder->get(); $adminUsers = $builder->get();
return AdminUserDetail::collection($adminUsers)->jsonSerialize(); return AdminUserDetail::collection($adminUsers)->jsonSerialize();
} }
/** /**
* 创建后台管理员用户 * 创建后台管理员用户
* *
@ -48,10 +48,10 @@ class AdminUserRepo
if (isset($data['roles'])) { if (isset($data['roles'])) {
$adminUser->assignRole($data['roles']); $adminUser->assignRole($data['roles']);
} }
return $adminUser; return $adminUser;
} }
/** /**
* 更新后台管理员用户 * 更新后台管理员用户
* *
@ -74,10 +74,10 @@ class AdminUserRepo
} }
$adminUser->update($userData); $adminUser->update($userData);
$adminUser->syncRoles($data['roles']); $adminUser->syncRoles($data['roles']);
return $adminUser; return $adminUser;
} }
/** /**
* 删除后台用户 * 删除后台用户
* *

View File

@ -11,10 +11,8 @@
namespace Beike\Admin\Repositories; namespace Beike\Admin\Repositories;
use Beike\Admin\Http\Resources\TaxClassDetail;
use Beike\Models\Attribute; use Beike\Models\Attribute;
use Beike\Models\AttributeValue; use Beike\Models\AttributeValue;
use Beike\Models\TaxClass;
class AttributeRepo class AttributeRepo
{ {
@ -114,7 +112,6 @@ class AttributeRepo
$attribute->delete(); $attribute->delete();
} }
public static function autocomplete($name) public static function autocomplete($name)
{ {
$builder = Attribute::query()->with('description') $builder = Attribute::query()->with('description')

View File

@ -12,8 +12,8 @@
namespace Beike\Admin\Repositories; namespace Beike\Admin\Repositories;
use Beike\Models\Product; use Beike\Models\Product;
use Beike\Repositories\OrderRepo;
use Beike\Repositories\CustomerRepo; use Beike\Repositories\CustomerRepo;
use Beike\Repositories\OrderRepo;
class DashboardRepo class DashboardRepo
{ {
@ -30,12 +30,10 @@ class DashboardRepo
]; ];
} }
/** /**
* 获取客户访问统计今日昨日比较 * 获取客户访问统计今日昨日比较
* @return array * @return array
* @todo * @todo
*
*/ */
public static function getCustomerViewData(): array public static function getCustomerViewData(): array
{ {
@ -54,7 +52,6 @@ class DashboardRepo
]; ];
} }
/** /**
* 获取订单基础统计, 总数和今日昨日比较 * 获取订单基础统计, 总数和今日昨日比较
* *
@ -77,7 +74,6 @@ class DashboardRepo
]; ];
} }
/** /**
* 获取客户注册今日昨日比较 * 获取客户注册今日昨日比较
* *
@ -100,7 +96,6 @@ class DashboardRepo
]; ];
} }
/** /**
* 获取订单总额基础统计, 总数和今日昨日比较 * 获取订单总额基础统计, 总数和今日昨日比较
* *

View File

@ -12,8 +12,8 @@
namespace Beike\Admin\Repositories; namespace Beike\Admin\Repositories;
use Beike\Models\Page; use Beike\Models\Page;
use Illuminate\Support\Facades\DB;
use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Contracts\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
class PageRepo class PageRepo
{ {
@ -25,37 +25,38 @@ class PageRepo
public static function getList(): LengthAwarePaginator public static function getList(): LengthAwarePaginator
{ {
$builder = Page::query()->with([ $builder = Page::query()->with([
'description' 'description',
])->orderByDesc('updated_at'); ])->orderByDesc('updated_at');
return $builder->paginate(perPage()); return $builder->paginate(perPage());
} }
public static function findByPageId($pageId) public static function findByPageId($pageId)
{ {
$page = Page::query()->findOrFail($pageId); $page = Page::query()->findOrFail($pageId);
$page->load(['descriptions']); $page->load(['descriptions']);
return $page; return $page;
} }
public static function getDescriptionsByLocale($pageId) public static function getDescriptionsByLocale($pageId)
{ {
$page = self::findByPageId($pageId); $page = self::findByPageId($pageId);
return $page->descriptions->keyBy('locale')->toArray(); return $page->descriptions->keyBy('locale')->toArray();
} }
public static function createOrUpdate($data) public static function createOrUpdate($data)
{ {
try { try {
DB::beginTransaction(); DB::beginTransaction();
$region = self::pushPage($data); $region = self::pushPage($data);
DB::commit(); DB::commit();
return $region; return $region;
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollBack(); DB::rollBack();
throw $e; throw $e;
} }
} }
@ -77,6 +78,7 @@ class PageRepo
$page->descriptions()->delete(); $page->descriptions()->delete();
$page->descriptions()->createMany($data['descriptions']); $page->descriptions()->createMany($data['descriptions']);
$page->load(['descriptions']); $page->load(['descriptions']);
return $page; return $page;
} }
@ -87,7 +89,6 @@ class PageRepo
$page->delete(); $page->delete();
} }
/** /**
* 页面内容自动完成 * 页面内容自动完成
* *
@ -105,9 +106,10 @@ class PageRepo
$results[] = [ $results[] = [
'id' => $page->id, 'id' => $page->id,
'name' => $page->description->title, 'name' => $page->description->title,
'status' => $page->active 'status' => $page->active,
]; ];
} }
return $results; return $results;
} }
} }

View File

@ -12,23 +12,26 @@
namespace Beike\Admin\Repositories; namespace Beike\Admin\Repositories;
use Beike\Models\AdminUser; use Beike\Models\AdminUser;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Exceptions\PermissionDoesNotExist; use Spatie\Permission\Exceptions\PermissionDoesNotExist;
use Spatie\Permission\Models\Role;
class PermissionRepo class PermissionRepo
{ {
private ?AdminUser $adminUser = null; private ?AdminUser $adminUser = null;
private ?Role $adminRole = null; private ?Role $adminRole = null;
public function setUser(AdminUser $user): PermissionRepo public function setUser(AdminUser $user): self
{ {
$this->adminUser = $user; $this->adminUser = $user;
return $this; return $this;
} }
public function setRole(Role $role): PermissionRepo public function setRole(Role $role): self
{ {
$this->adminRole = $role; $this->adminRole = $role;
return $this; return $this;
} }
@ -63,10 +66,10 @@ class PermissionRepo
['title' => trans('admin/common.zone'), 'permissions' => $this->getZonePermissions()], ['title' => trans('admin/common.zone'), 'permissions' => $this->getZonePermissions()],
['title' => trans('admin/common.country'), 'permissions' => $this->getCountryPermissions()], ['title' => trans('admin/common.country'), 'permissions' => $this->getCountryPermissions()],
]; ];
return hook_filter('role.all_permissions', $permissions); return hook_filter('role.all_permissions', $permissions);
} }
/** /**
* 订单权限列表 * 订单权限列表
* *
@ -76,10 +79,10 @@ class PermissionRepo
{ {
$routes = ['orders_index', 'orders_export', 'orders_show', 'orders_update_status']; $routes = ['orders_index', 'orders_export', 'orders_show', 'orders_update_status'];
$items = $this->getPermissionList('order', $routes); $items = $this->getPermissionList('order', $routes);
return hook_filter('role.order_permissions', $items); return hook_filter('role.order_permissions', $items);
} }
/** /**
* 售后(退换货)权限列表 * 售后(退换货)权限列表
* *
@ -89,10 +92,10 @@ class PermissionRepo
{ {
$routes = ['rmas_index', 'rmas_show', 'rmas_update', 'rmas_delete']; $routes = ['rmas_index', 'rmas_show', 'rmas_update', 'rmas_delete'];
$items = $this->getPermissionList('rma', $routes); $items = $this->getPermissionList('rma', $routes);
return hook_filter('role.rma_permissions', $items); return hook_filter('role.rma_permissions', $items);
} }
/** /**
* 售后(退换货)原因权限列表 * 售后(退换货)原因权限列表
* *
@ -102,10 +105,10 @@ class PermissionRepo
{ {
$routes = ['rma_reasons_index', 'rma_reasons_create', 'rma_reasons_update', 'rma_reasons_delete']; $routes = ['rma_reasons_index', 'rma_reasons_create', 'rma_reasons_update', 'rma_reasons_delete'];
$items = $this->getPermissionList('rma_reason', $routes); $items = $this->getPermissionList('rma_reason', $routes);
return hook_filter('role.rma_reason_permissions', $items); return hook_filter('role.rma_reason_permissions', $items);
} }
/** /**
* 商品权限列表 * 商品权限列表
* *
@ -115,10 +118,10 @@ class PermissionRepo
{ {
$routes = ['products_index', 'products_create', 'products_show', 'products_update', 'products_delete', 'products_trashed', 'products_restore']; $routes = ['products_index', 'products_create', 'products_show', 'products_update', 'products_delete', 'products_trashed', 'products_restore'];
$items = $this->getPermissionList('product', $routes); $items = $this->getPermissionList('product', $routes);
return hook_filter('role.product_permissions', $items); return hook_filter('role.product_permissions', $items);
} }
/** /**
* 分类权限列表 * 分类权限列表
* *
@ -128,10 +131,10 @@ class PermissionRepo
{ {
$routes = ['categories_index', 'categories_create', 'categories_show', 'categories_update', 'categories_delete']; $routes = ['categories_index', 'categories_create', 'categories_show', 'categories_update', 'categories_delete'];
$items = $this->getPermissionList('category', $routes); $items = $this->getPermissionList('category', $routes);
return hook_filter('role.category_permissions', $items); return hook_filter('role.category_permissions', $items);
} }
/** /**
* 品牌权限列表 * 品牌权限列表
* *
@ -141,10 +144,10 @@ class PermissionRepo
{ {
$routes = ['brands_index', 'brands_create', 'brands_show', 'brands_update', 'brands_delete']; $routes = ['brands_index', 'brands_create', 'brands_show', 'brands_update', 'brands_delete'];
$items = $this->getPermissionList('brand', $routes); $items = $this->getPermissionList('brand', $routes);
return hook_filter('role.brand_permissions', $items); return hook_filter('role.brand_permissions', $items);
} }
/** /**
* 客户权限列表 * 客户权限列表
* *
@ -154,10 +157,10 @@ class PermissionRepo
{ {
$routes = ['customers_index', 'customers_create', 'customers_show', 'customers_update', 'customers_delete']; $routes = ['customers_index', 'customers_create', 'customers_show', 'customers_update', 'customers_delete'];
$items = $this->getPermissionList('customer', $routes); $items = $this->getPermissionList('customer', $routes);
return hook_filter('role.customer_permissions', $items); return hook_filter('role.customer_permissions', $items);
} }
/** /**
* 客户组权限列表 * 客户组权限列表
* *
@ -167,10 +170,10 @@ class PermissionRepo
{ {
$routes = ['customer_groups_index', 'customer_groups_create', 'customer_groups_show', 'customer_groups_update', 'customer_groups_delete']; $routes = ['customer_groups_index', 'customer_groups_create', 'customer_groups_show', 'customer_groups_update', 'customer_groups_delete'];
$items = $this->getPermissionList('customer_group', $routes); $items = $this->getPermissionList('customer_group', $routes);
return hook_filter('role.customer_group_permissions', $items); return hook_filter('role.customer_group_permissions', $items);
} }
/** /**
* 设置权限列表 * 设置权限列表
* *
@ -180,10 +183,10 @@ class PermissionRepo
{ {
$routes = ['settings_index', 'settings_update', 'design_index', 'design_footer_index', 'design_menu_index']; $routes = ['settings_index', 'settings_update', 'design_index', 'design_footer_index', 'design_menu_index'];
$items = $this->getPermissionList('setting', $routes); $items = $this->getPermissionList('setting', $routes);
return hook_filter('role.setting_permissions', $items); return hook_filter('role.setting_permissions', $items);
} }
/** /**
* 内容管理列表 * 内容管理列表
* @return mixed * @return mixed
@ -192,10 +195,10 @@ class PermissionRepo
{ {
$routes = ['pages_index', 'pages_create', 'pages_show', 'pages_update', 'pages_delete']; $routes = ['pages_index', 'pages_create', 'pages_show', 'pages_update', 'pages_delete'];
$items = $this->getPermissionList('page', $routes); $items = $this->getPermissionList('page', $routes);
return hook_filter('role.page_permissions', $items); return hook_filter('role.page_permissions', $items);
} }
/** /**
* 插件权限列表 * 插件权限列表
* *
@ -205,10 +208,10 @@ class PermissionRepo
{ {
$routes = ['plugins_index', 'plugins_import', 'plugins_update', 'plugins_show', 'plugins_install', 'plugins_update_status', 'plugins_uninstall']; $routes = ['plugins_index', 'plugins_import', 'plugins_update', 'plugins_show', 'plugins_install', 'plugins_update_status', 'plugins_uninstall'];
$items = $this->getPermissionList('plugin', $routes); $items = $this->getPermissionList('plugin', $routes);
return hook_filter('role.plugin_permissions', $items); return hook_filter('role.plugin_permissions', $items);
} }
/** /**
* 后台管理员权限列表 * 后台管理员权限列表
* *
@ -218,10 +221,10 @@ class PermissionRepo
{ {
$routes = ['admin_users_index', 'admin_users_create', 'admin_users_show', 'admin_users_update', 'admin_users_delete']; $routes = ['admin_users_index', 'admin_users_create', 'admin_users_show', 'admin_users_update', 'admin_users_delete'];
$items = $this->getPermissionList('user', $routes); $items = $this->getPermissionList('user', $routes);
return hook_filter('role.user_permissions', $items); return hook_filter('role.user_permissions', $items);
} }
/** /**
* 后台管理员权限列表 * 后台管理员权限列表
* *
@ -231,10 +234,10 @@ class PermissionRepo
{ {
$routes = ['admin_roles_index', 'admin_roles_create', 'admin_roles_show', 'admin_roles_update', 'admin_roles_delete']; $routes = ['admin_roles_index', 'admin_roles_create', 'admin_roles_show', 'admin_roles_update', 'admin_roles_delete'];
$items = $this->getPermissionList('role', $routes); $items = $this->getPermissionList('role', $routes);
return hook_filter('role.role_permissions', $items); return hook_filter('role.role_permissions', $items);
} }
/** /**
* 区域分组权限列表 * 区域分组权限列表
* *
@ -244,10 +247,10 @@ class PermissionRepo
{ {
$routes = ['regions_index', 'regions_create', 'regions_show', 'regions_update', 'regions_delete']; $routes = ['regions_index', 'regions_create', 'regions_show', 'regions_update', 'regions_delete'];
$items = $this->getPermissionList('region', $routes); $items = $this->getPermissionList('region', $routes);
return hook_filter('role.region_permissions', $items); return hook_filter('role.region_permissions', $items);
} }
/** /**
* 获取税率权限列表 * 获取税率权限列表
* *
@ -257,10 +260,10 @@ class PermissionRepo
{ {
$routes = ['tax_rates_index', 'tax_rates_create', 'tax_rates_show', 'tax_rates_update', 'tax_rates_delete']; $routes = ['tax_rates_index', 'tax_rates_create', 'tax_rates_show', 'tax_rates_update', 'tax_rates_delete'];
$items = $this->getPermissionList('tax_rate', $routes); $items = $this->getPermissionList('tax_rate', $routes);
return hook_filter('role.tax_rate_permissions', $items); return hook_filter('role.tax_rate_permissions', $items);
} }
/** /**
* 获取税类权限列表 * 获取税类权限列表
* *
@ -270,10 +273,10 @@ class PermissionRepo
{ {
$routes = ['tax_classes_index', 'tax_classes_create', 'tax_classes_show', 'tax_classes_update', 'tax_classes_delete']; $routes = ['tax_classes_index', 'tax_classes_create', 'tax_classes_show', 'tax_classes_update', 'tax_classes_delete'];
$items = $this->getPermissionList('tax_class', $routes); $items = $this->getPermissionList('tax_class', $routes);
return hook_filter('role.tax_class_permissions', $items); return hook_filter('role.tax_class_permissions', $items);
} }
/** /**
* 获取汇率权限列表 * 获取汇率权限列表
* *
@ -283,10 +286,10 @@ class PermissionRepo
{ {
$routes = ['currencies_index', 'currencies_create', 'currencies_show', 'currencies_update', 'currencies_delete']; $routes = ['currencies_index', 'currencies_create', 'currencies_show', 'currencies_update', 'currencies_delete'];
$items = $this->getPermissionList('currency', $routes); $items = $this->getPermissionList('currency', $routes);
return hook_filter('role.currency_permissions', $items); return hook_filter('role.currency_permissions', $items);
} }
/** /**
* 获取语言权限列表 * 获取语言权限列表
* *
@ -296,10 +299,10 @@ class PermissionRepo
{ {
$routes = ['languages_index', 'languages_create', 'languages_update', 'languages_delete']; $routes = ['languages_index', 'languages_create', 'languages_update', 'languages_delete'];
$items = $this->getPermissionList('language', $routes); $items = $this->getPermissionList('language', $routes);
return hook_filter('role.language_permissions', $items); return hook_filter('role.language_permissions', $items);
} }
/** /**
* 获取文件管理器权限列表 * 获取文件管理器权限列表
* *
@ -309,10 +312,10 @@ class PermissionRepo
{ {
$routes = ['file_manager_create', 'file_manager_show', 'file_manager_update', 'file_manager_delete']; $routes = ['file_manager_create', 'file_manager_show', 'file_manager_update', 'file_manager_delete'];
$items = $this->getPermissionList('file_manager', $routes); $items = $this->getPermissionList('file_manager', $routes);
return hook_filter('role.file_manager_permissions', $items); return hook_filter('role.file_manager_permissions', $items);
} }
/** /**
* 获取省份权限列表 * 获取省份权限列表
* *
@ -322,10 +325,10 @@ class PermissionRepo
{ {
$routes = ['zones_create', 'zones_index', 'zones_update', 'zones_delete']; $routes = ['zones_create', 'zones_index', 'zones_update', 'zones_delete'];
$items = $this->getPermissionList('zone', $routes); $items = $this->getPermissionList('zone', $routes);
return hook_filter('role.zone_permissions', $items); return hook_filter('role.zone_permissions', $items);
} }
/** /**
* 获取国家权限列表 * 获取国家权限列表
* *
@ -335,10 +338,10 @@ class PermissionRepo
{ {
$routes = ['countries_create', 'countries_index', 'countries_update', 'countries_delete']; $routes = ['countries_create', 'countries_index', 'countries_update', 'countries_delete'];
$items = $this->getPermissionList('country', $routes); $items = $this->getPermissionList('country', $routes);
return hook_filter('role.country_permissions', $items); return hook_filter('role.country_permissions', $items);
} }
/** /**
* 根据模块和路由返回权限列表 * 根据模块和路由返回权限列表
* *
@ -352,6 +355,7 @@ class PermissionRepo
foreach ($routes as $route) { foreach ($routes as $route) {
$items[] = ['code' => $route, 'name' => trans("admin/{$module}.{$route}"), 'selected' => $this->hasPermission($route)]; $items[] = ['code' => $route, 'name' => trans("admin/{$module}.{$route}"), 'selected' => $this->hasPermission($route)];
} }
return $items; return $items;
} }
@ -372,6 +376,7 @@ class PermissionRepo
} catch (PermissionDoesNotExist $exception) { } catch (PermissionDoesNotExist $exception) {
return false; return false;
} }
return false; return false;
} }
} }

View File

@ -27,9 +27,11 @@ class RegionRepo
DB::beginTransaction(); DB::beginTransaction();
$region = self::pushRegion($data); $region = self::pushRegion($data);
DB::commit(); DB::commit();
return $region; return $region;
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollBack(); DB::rollBack();
throw $e; throw $e;
} }
} }
@ -62,6 +64,7 @@ class RegionRepo
$region->regionZones()->createMany($newRegionZones); $region->regionZones()->createMany($newRegionZones);
} }
$region->load(['regionZones']); $region->load(['regionZones']);
return $region; return $region;
} }

View File

@ -11,8 +11,6 @@
namespace Beike\Admin\Repositories\Report; namespace Beike\Admin\Repositories\Report;
use Beike\Models\Order;
use Beike\Repositories\OrderRepo; use Beike\Repositories\OrderRepo;
use Carbon\Carbon; use Carbon\Carbon;
use Carbon\CarbonPeriod; use Carbon\CarbonPeriod;
@ -55,10 +53,10 @@ class OrderReportRepo
'totals' => $totals, 'totals' => $totals,
'amounts' => $amounts, 'amounts' => $amounts,
]; ];
return hook_filter('dashboard.order_report_month', $data); return hook_filter('dashboard.order_report_month', $data);
} }
/** /**
* 获取最近一周每日销售订单数 * 获取最近一周每日销售订单数
*/ */
@ -93,10 +91,10 @@ class OrderReportRepo
'totals' => $totals, 'totals' => $totals,
'amounts' => $amounts, 'amounts' => $amounts,
]; ];
return hook_filter('dashboard.order_report_week', $data); return hook_filter('dashboard.order_report_week', $data);
} }
/** /**
* 获取最近一年每月销售订单数 * 获取最近一年每月销售订单数
*/ */
@ -139,6 +137,7 @@ class OrderReportRepo
'totals' => $totals, 'totals' => $totals,
'amounts' => $amounts, 'amounts' => $amounts,
]; ];
return hook_filter('dashboard.order_report_year', $data); return hook_filter('dashboard.order_report_year', $data);
} }
} }

View File

@ -16,13 +16,13 @@ use Beike\Models\TaxClass;
class TaxClassRepo class TaxClassRepo
{ {
const BASE_TYPES = ['store', 'payment', 'shipping']; public const BASE_TYPES = ['store', 'payment', 'shipping'];
public static function getList() public static function getList()
{ {
$taxClass = TaxClass::query()->with([ $taxClass = TaxClass::query()->with([
'taxRates.region', 'taxRates.region',
'taxRules' 'taxRules',
])->get(); ])->get();
return TaxClassDetail::collection($taxClass)->jsonSerialize(); return TaxClassDetail::collection($taxClass)->jsonSerialize();
@ -53,6 +53,7 @@ class TaxClassRepo
$taxClass->taxRules()->delete(); $taxClass->taxRules()->delete();
$taxClass->taxRules()->createMany($rules); $taxClass->taxRules()->createMany($rules);
$taxClass->load(['taxRules']); $taxClass->load(['taxRules']);
return $taxClass; return $taxClass;
} }

View File

@ -18,7 +18,7 @@ class TaxRateRepo
public static function getList() public static function getList()
{ {
return TaxRate::query()->with([ return TaxRate::query()->with([
'region' 'region',
])->get(); ])->get();
} }
@ -37,6 +37,7 @@ class TaxRateRepo
'type' => $data['type'], 'type' => $data['type'],
]); ]);
$taxRate->saveOrFail(); $taxRate->saveOrFail();
return $taxRate; return $taxRate;
} }
@ -49,6 +50,7 @@ class TaxRateRepo
public static function getNameByRateId($taxRateId) public static function getNameByRateId($taxRateId)
{ {
$taxRate = TaxRate::query()->findOrFail($taxRateId); $taxRate = TaxRate::query()->findOrFail($taxRateId);
return $taxRate->name; return $taxRate->name;
} }
} }

View File

@ -47,7 +47,6 @@ Route::prefix($adminName)
Route::middleware('can:brands_update')->put('brands/{id}', [Controllers\BrandController::class, 'update'])->name('brands.update'); Route::middleware('can:brands_update')->put('brands/{id}', [Controllers\BrandController::class, 'update'])->name('brands.update');
Route::middleware('can:brands_delete')->delete('brands/{id}', [Controllers\BrandController::class, 'destroy'])->name('brands.destroy'); Route::middleware('can:brands_delete')->delete('brands/{id}', [Controllers\BrandController::class, 'destroy'])->name('brands.destroy');
// 商品分类 // 商品分类
Route::middleware('can:categories_index')->get('categories/autocomplete', [Controllers\CategoryController::class, 'autocomplete'])->name('categories.autocomplete'); Route::middleware('can:categories_index')->get('categories/autocomplete', [Controllers\CategoryController::class, 'autocomplete'])->name('categories.autocomplete');
Route::middleware('can:categories_show')->get('categories/{category}/name', [Controllers\CategoryController::class, 'name'])->name('categories.name'); Route::middleware('can:categories_show')->get('categories/{category}/name', [Controllers\CategoryController::class, 'name'])->name('categories.name');
@ -58,21 +57,18 @@ Route::prefix($adminName)
Route::middleware('can:categories_update')->put('categories/{category}', [Controllers\CategoryController::class, 'update'])->name('categories.update'); Route::middleware('can:categories_update')->put('categories/{category}', [Controllers\CategoryController::class, 'update'])->name('categories.update');
Route::middleware('can:categories_delete')->delete('categories/{category}', [Controllers\CategoryController::class, 'destroy'])->name('categories.destroy'); Route::middleware('can:categories_delete')->delete('categories/{category}', [Controllers\CategoryController::class, 'destroy'])->name('categories.destroy');
// 国家 // 国家
Route::middleware('can:countries_index')->get('countries', [Controllers\CountryController::class, 'index'])->name('countries.index'); Route::middleware('can:countries_index')->get('countries', [Controllers\CountryController::class, 'index'])->name('countries.index');
Route::middleware('can:countries_create')->post('countries', [Controllers\CountryController::class, 'store'])->name('countries.store'); Route::middleware('can:countries_create')->post('countries', [Controllers\CountryController::class, 'store'])->name('countries.store');
Route::middleware('can:countries_update')->put('countries/{id}', [Controllers\CountryController::class, 'update'])->name('countries.update'); Route::middleware('can:countries_update')->put('countries/{id}', [Controllers\CountryController::class, 'update'])->name('countries.update');
Route::middleware('can:countries_delete')->delete('countries/{id}', [Controllers\CountryController::class, 'destroy'])->name('countries.destroy'); Route::middleware('can:countries_delete')->delete('countries/{id}', [Controllers\CountryController::class, 'destroy'])->name('countries.destroy');
// 省份 // 省份
Route::middleware('can:zones_index')->get('zones', [Controllers\ZoneController::class, 'index'])->name('zones.index'); Route::middleware('can:zones_index')->get('zones', [Controllers\ZoneController::class, 'index'])->name('zones.index');
Route::middleware('can:zones_create')->post('zones', [Controllers\ZoneController::class, 'store'])->name('zones.store'); Route::middleware('can:zones_create')->post('zones', [Controllers\ZoneController::class, 'store'])->name('zones.store');
Route::middleware('can:zones_update')->put('zones/{id}', [Controllers\ZoneController::class, 'update'])->name('zones.update'); Route::middleware('can:zones_update')->put('zones/{id}', [Controllers\ZoneController::class, 'update'])->name('zones.update');
Route::middleware('can:zones_delete')->delete('zones/{id}', [Controllers\ZoneController::class, 'destroy'])->name('zones.destroy'); Route::middleware('can:zones_delete')->delete('zones/{id}', [Controllers\ZoneController::class, 'destroy'])->name('zones.destroy');
// 客户 // 客户
Route::middleware('can:customers_index')->get('customers/trashed', [Controllers\CustomerController::class, 'trashed'])->name('customers.trashed'); Route::middleware('can:customers_index')->get('customers/trashed', [Controllers\CustomerController::class, 'trashed'])->name('customers.trashed');
Route::middleware('can:customers_index')->get('customers', [Controllers\CustomerController::class, 'index'])->name('customers.index'); Route::middleware('can:customers_index')->get('customers', [Controllers\CustomerController::class, 'index'])->name('customers.index');
@ -84,7 +80,6 @@ Route::prefix($adminName)
Route::middleware('can:customers_delete')->delete('customers/{id}/force', [Controllers\CustomerController::class, 'forceDelete'])->name('customers.force_delete'); Route::middleware('can:customers_delete')->delete('customers/{id}/force', [Controllers\CustomerController::class, 'forceDelete'])->name('customers.force_delete');
Route::middleware('can:customers_delete')->post('customers/force_delete_all', [Controllers\CustomerController::class, 'forceDeleteAll'])->name('customers.force_delete_all'); Route::middleware('can:customers_delete')->post('customers/force_delete_all', [Controllers\CustomerController::class, 'forceDeleteAll'])->name('customers.force_delete_all');
// 客户地址 // 客户地址
Route::middleware('can:customers_show')->get('customers/{customer_id}/addresses', [Controllers\AddressController::class, 'index'])->name('customers.addresses.index'); Route::middleware('can:customers_show')->get('customers/{customer_id}/addresses', [Controllers\AddressController::class, 'index'])->name('customers.addresses.index');
Route::middleware('can:customers_update')->post('customers/{customer_id}/addresses', [Controllers\AddressController::class, 'store'])->name('customers.addresses.store'); Route::middleware('can:customers_update')->post('customers/{customer_id}/addresses', [Controllers\AddressController::class, 'store'])->name('customers.addresses.store');
@ -93,21 +88,18 @@ Route::prefix($adminName)
Route::get('countries/{country_id}/zones', [Controllers\ZoneController::class, 'listByCountry'])->name('countries.zones.index'); Route::get('countries/{country_id}/zones', [Controllers\ZoneController::class, 'listByCountry'])->name('countries.zones.index');
// 客户组 // 客户组
Route::middleware('can:customer_groups_index')->get('customer_groups', [Controllers\CustomerGroupController::class, 'index'])->name('customer_groups.index'); Route::middleware('can:customer_groups_index')->get('customer_groups', [Controllers\CustomerGroupController::class, 'index'])->name('customer_groups.index');
Route::middleware('can:customer_groups_create')->post('customer_groups', [Controllers\CustomerGroupController::class, 'store'])->name('customer_groups.store'); Route::middleware('can:customer_groups_create')->post('customer_groups', [Controllers\CustomerGroupController::class, 'store'])->name('customer_groups.store');
Route::middleware('can:customer_groups_update')->put('customer_groups/{id}', [Controllers\CustomerGroupController::class, 'update'])->name('customer_groups.update'); Route::middleware('can:customer_groups_update')->put('customer_groups/{id}', [Controllers\CustomerGroupController::class, 'update'])->name('customer_groups.update');
Route::middleware('can:customer_groups_delete')->delete('customer_groups/{id}', [Controllers\CustomerGroupController::class, 'destroy'])->name('customer_groups.destroy'); Route::middleware('can:customer_groups_delete')->delete('customer_groups/{id}', [Controllers\CustomerGroupController::class, 'destroy'])->name('customer_groups.destroy');
// 货币 // 货币
Route::middleware('can:currencies_index')->get('currencies', [Controllers\CurrencyController::class, 'index'])->name('currencies.index'); Route::middleware('can:currencies_index')->get('currencies', [Controllers\CurrencyController::class, 'index'])->name('currencies.index');
Route::middleware('can:currencies_create')->post('currencies', [Controllers\CurrencyController::class, 'store'])->name('currencies.store'); Route::middleware('can:currencies_create')->post('currencies', [Controllers\CurrencyController::class, 'store'])->name('currencies.store');
Route::middleware('can:currencies_update')->put('currencies/{id}', [Controllers\CurrencyController::class, 'update'])->name('currencies.update'); Route::middleware('can:currencies_update')->put('currencies/{id}', [Controllers\CurrencyController::class, 'update'])->name('currencies.update');
Route::middleware('can:currencies_delete')->delete('currencies/{id}', [Controllers\CurrencyController::class, 'destroy'])->name('currencies.destroy'); Route::middleware('can:currencies_delete')->delete('currencies/{id}', [Controllers\CurrencyController::class, 'destroy'])->name('currencies.destroy');
// 页面装修 // 页面装修
Route::middleware('can:design_index')->get('design/builder', [Controllers\DesignController::class, 'index'])->name('design.index'); Route::middleware('can:design_index')->get('design/builder', [Controllers\DesignController::class, 'index'])->name('design.index');
Route::middleware('can:design_index')->put('design/builder', [Controllers\DesignController::class, 'update'])->name('design.update'); Route::middleware('can:design_index')->put('design/builder', [Controllers\DesignController::class, 'update'])->name('design.update');
@ -120,11 +112,9 @@ Route::prefix($adminName)
Route::middleware('can:design_menu_index')->get('design_menu/builder', [Controllers\DesignMenuController::class, 'index'])->name('design_menu.index'); Route::middleware('can:design_menu_index')->get('design_menu/builder', [Controllers\DesignMenuController::class, 'index'])->name('design_menu.index');
Route::middleware('can:design_menu_index')->put('design_menu/builder', [Controllers\DesignMenuController::class, 'update'])->name('design_menu.update'); Route::middleware('can:design_menu_index')->put('design_menu/builder', [Controllers\DesignMenuController::class, 'update'])->name('design_menu.update');
Route::put('edit', [Controllers\EditController::class, 'update'])->name('edit'); Route::put('edit', [Controllers\EditController::class, 'update'])->name('edit');
Route::get('edit/locale', [Controllers\EditController::class, 'locale'])->name('edit.locale'); Route::get('edit/locale', [Controllers\EditController::class, 'locale'])->name('edit.locale');
// 图片库 // 图片库
Route::middleware('can:file_manager_show')->get('file_manager', [Controllers\FileManagerController::class, 'index'])->name('file_manager.index'); Route::middleware('can:file_manager_show')->get('file_manager', [Controllers\FileManagerController::class, 'index'])->name('file_manager.index');
Route::middleware('can:file_manager_show')->get('file_manager/files', [Controllers\FileManagerController::class, 'getFiles'])->name('file_manager.get_files'); Route::middleware('can:file_manager_show')->get('file_manager/files', [Controllers\FileManagerController::class, 'getFiles'])->name('file_manager.get_files');
@ -137,21 +127,18 @@ Route::prefix($adminName)
Route::get('logout', [Controllers\LogoutController::class, 'index'])->name('logout.index'); Route::get('logout', [Controllers\LogoutController::class, 'index'])->name('logout.index');
// 语言管理 // 语言管理
Route::middleware('can:languages_index')->get('languages', [Controllers\LanguageController::class, 'index'])->name('languages.index'); Route::middleware('can:languages_index')->get('languages', [Controllers\LanguageController::class, 'index'])->name('languages.index');
Route::middleware('can:languages_create')->post('languages', [Controllers\LanguageController::class, 'store'])->name('languages.store'); Route::middleware('can:languages_create')->post('languages', [Controllers\LanguageController::class, 'store'])->name('languages.store');
Route::middleware('can:languages_update')->put('languages/{id}', [Controllers\LanguageController::class, 'update'])->name('languages.update'); Route::middleware('can:languages_update')->put('languages/{id}', [Controllers\LanguageController::class, 'update'])->name('languages.update');
Route::middleware('can:languages_delete')->delete('languages/{id}', [Controllers\LanguageController::class, 'destroy'])->name('languages.destroy'); Route::middleware('can:languages_delete')->delete('languages/{id}', [Controllers\LanguageController::class, 'destroy'])->name('languages.destroy');
// 订单 // 订单
Route::middleware('can:orders_index')->get('orders', [Controllers\OrderController::class, 'index'])->name('orders.index'); Route::middleware('can:orders_index')->get('orders', [Controllers\OrderController::class, 'index'])->name('orders.index');
Route::middleware('can:orders_export')->get('orders/export', [Controllers\OrderController::class, 'export'])->name('orders.export'); Route::middleware('can:orders_export')->get('orders/export', [Controllers\OrderController::class, 'export'])->name('orders.export');
Route::middleware('can:orders_show')->get('orders/{order}', [Controllers\OrderController::class, 'show'])->name('orders.show'); Route::middleware('can:orders_show')->get('orders/{order}', [Controllers\OrderController::class, 'show'])->name('orders.show');
Route::middleware('can:orders_update_status')->put('orders/{order}/status', [Controllers\OrderController::class, 'updateStatus'])->name('orders.update_status'); Route::middleware('can:orders_update_status')->put('orders/{order}/status', [Controllers\OrderController::class, 'updateStatus'])->name('orders.update_status');
// 插件 // 插件
Route::middleware('can:plugins_index')->get('plugins', [Controllers\PluginController::class, 'index'])->name('plugins.index'); Route::middleware('can:plugins_index')->get('plugins', [Controllers\PluginController::class, 'index'])->name('plugins.index');
Route::middleware('can:plugins_import')->post('plugins/import', [Controllers\PluginController::class, 'import'])->name('plugins.import'); Route::middleware('can:plugins_import')->post('plugins/import', [Controllers\PluginController::class, 'import'])->name('plugins.import');
@ -161,14 +148,12 @@ Route::prefix($adminName)
Route::middleware('can:plugins_install')->post('plugins/{code}/install', [Controllers\PluginController::class, 'install'])->name('plugins.install'); Route::middleware('can:plugins_install')->post('plugins/{code}/install', [Controllers\PluginController::class, 'install'])->name('plugins.install');
Route::middleware('can:plugins_uninstall')->post('plugins/{code}/uninstall', [Controllers\PluginController::class, 'uninstall'])->name('plugins.uninstall'); Route::middleware('can:plugins_uninstall')->post('plugins/{code}/uninstall', [Controllers\PluginController::class, 'uninstall'])->name('plugins.uninstall');
// 插件市场 // 插件市场
Route::middleware('can:marketing_index')->get('marketing', [Controllers\MarketingController::class, 'index'])->name('marketing.index'); Route::middleware('can:marketing_index')->get('marketing', [Controllers\MarketingController::class, 'index'])->name('marketing.index');
Route::middleware('can:marketing_show')->get('marketing/{code}', [Controllers\MarketingController::class, 'show'])->name('marketing.show'); Route::middleware('can:marketing_show')->get('marketing/{code}', [Controllers\MarketingController::class, 'show'])->name('marketing.show');
Route::middleware('can:marketing_buy')->post('marketing/{code}/buy', [Controllers\MarketingController::class, 'buy'])->name('marketing.buy'); Route::middleware('can:marketing_buy')->post('marketing/{code}/buy', [Controllers\MarketingController::class, 'buy'])->name('marketing.buy');
Route::middleware('can:marketing_download')->post('marketing/{code}/download', [Controllers\MarketingController::class, 'download'])->name('marketing.download'); Route::middleware('can:marketing_download')->post('marketing/{code}/download', [Controllers\MarketingController::class, 'download'])->name('marketing.download');
// 单页 // 单页
Route::middleware('can:pages_index')->get('pages', [Controllers\PagesController::class, 'index'])->name('pages.index'); Route::middleware('can:pages_index')->get('pages', [Controllers\PagesController::class, 'index'])->name('pages.index');
Route::middleware('can:pages_index')->get('pages/autocomplete', [Controllers\PagesController::class, 'autocomplete'])->name('pages.autocomplete'); Route::middleware('can:pages_index')->get('pages/autocomplete', [Controllers\PagesController::class, 'autocomplete'])->name('pages.autocomplete');
@ -179,7 +164,6 @@ Route::prefix($adminName)
Route::middleware('can:pages_update')->put('pages/{page}', [Controllers\PagesController::class, 'update'])->name('pages.update'); Route::middleware('can:pages_update')->put('pages/{page}', [Controllers\PagesController::class, 'update'])->name('pages.update');
Route::middleware('can:pages_delete')->delete('pages/{page}', [Controllers\PagesController::class, 'destroy'])->name('pages.destroy'); Route::middleware('can:pages_delete')->delete('pages/{page}', [Controllers\PagesController::class, 'destroy'])->name('pages.destroy');
// 商品 // 商品
Route::middleware('can:products_restore')->put('products/restore', [Controllers\ProductController::class, 'restore']); Route::middleware('can:products_restore')->put('products/restore', [Controllers\ProductController::class, 'restore']);
Route::middleware('can:products_trashed')->get('products/trashed', [Controllers\ProductController::class, 'trashed'])->name('products.trashed'); Route::middleware('can:products_trashed')->get('products/trashed', [Controllers\ProductController::class, 'trashed'])->name('products.trashed');
@ -197,14 +181,12 @@ Route::prefix($adminName)
Route::middleware('can:products_update')->put('products/{product}', [Controllers\ProductController::class, 'update'])->name('products.update'); Route::middleware('can:products_update')->put('products/{product}', [Controllers\ProductController::class, 'update'])->name('products.update');
Route::middleware('can:products_delete')->delete('products/{product}', [Controllers\ProductController::class, 'destroy'])->name('products.destroy'); Route::middleware('can:products_delete')->delete('products/{product}', [Controllers\ProductController::class, 'destroy'])->name('products.destroy');
// 区域组 // 区域组
Route::middleware('can:regions_index')->get('regions', [Controllers\RegionController::class, 'index'])->name('regions.index'); Route::middleware('can:regions_index')->get('regions', [Controllers\RegionController::class, 'index'])->name('regions.index');
Route::middleware('can:regions_create')->post('regions', [Controllers\RegionController::class, 'store'])->name('regions.store'); Route::middleware('can:regions_create')->post('regions', [Controllers\RegionController::class, 'store'])->name('regions.store');
Route::middleware('can:regions_update')->put('regions/{id}', [Controllers\RegionController::class, 'update'])->name('regions.update'); Route::middleware('can:regions_update')->put('regions/{id}', [Controllers\RegionController::class, 'update'])->name('regions.update');
Route::middleware('can:regions_delete')->delete('regions/{id}', [Controllers\RegionController::class, 'destroy'])->name('regions.destroy'); Route::middleware('can:regions_delete')->delete('regions/{id}', [Controllers\RegionController::class, 'destroy'])->name('regions.destroy');
// RMA // RMA
Route::middleware('can:rmas_update')->post('rmas/history/{id}', [Controllers\RmaController::class, 'addHistory'])->name('rmas.add_history'); Route::middleware('can:rmas_update')->post('rmas/history/{id}', [Controllers\RmaController::class, 'addHistory'])->name('rmas.add_history');
Route::middleware('can:rmas_index')->get('rmas', [Controllers\RmaController::class, 'index'])->name('rmas.index'); Route::middleware('can:rmas_index')->get('rmas', [Controllers\RmaController::class, 'index'])->name('rmas.index');
@ -220,28 +202,24 @@ Route::prefix($adminName)
Route::middleware('can:settings_update')->post('settings', [Controllers\SettingController::class, 'store'])->name('settings.store'); Route::middleware('can:settings_update')->post('settings', [Controllers\SettingController::class, 'store'])->name('settings.store');
Route::middleware('can:settings_update')->post('settings/store_token', [Controllers\SettingController::class, 'storeDeveloperToken'])->name('settings.store_token'); Route::middleware('can:settings_update')->post('settings/store_token', [Controllers\SettingController::class, 'storeDeveloperToken'])->name('settings.store_token');
// 税类 // 税类
Route::middleware('can:tax_classes_index')->get('tax_classes', [Controllers\TaxClassController::class, 'index'])->name('tax_classes.index'); Route::middleware('can:tax_classes_index')->get('tax_classes', [Controllers\TaxClassController::class, 'index'])->name('tax_classes.index');
Route::middleware('can:tax_classes_create')->post('tax_classes', [Controllers\TaxClassController::class, 'store'])->name('tax_classes.store'); Route::middleware('can:tax_classes_create')->post('tax_classes', [Controllers\TaxClassController::class, 'store'])->name('tax_classes.store');
Route::middleware('can:tax_classes_update')->put('tax_classes/{tax_class}', [Controllers\TaxClassController::class, 'update'])->name('tax_classes.update'); Route::middleware('can:tax_classes_update')->put('tax_classes/{tax_class}', [Controllers\TaxClassController::class, 'update'])->name('tax_classes.update');
Route::middleware('can:tax_classes_delete')->delete('tax_classes/{tax_class}', [Controllers\TaxClassController::class, 'destroy'])->name('tax_classes.destroy'); Route::middleware('can:tax_classes_delete')->delete('tax_classes/{tax_class}', [Controllers\TaxClassController::class, 'destroy'])->name('tax_classes.destroy');
// 税费 // 税费
Route::middleware('can:tax_rates_index')->get('tax_rates', [Controllers\TaxRateController::class, 'index'])->name('tax_rates.index'); Route::middleware('can:tax_rates_index')->get('tax_rates', [Controllers\TaxRateController::class, 'index'])->name('tax_rates.index');
Route::middleware('can:tax_rates_create')->post('tax_rates', [Controllers\TaxRateController::class, 'store'])->name('tax_rates.store'); Route::middleware('can:tax_rates_create')->post('tax_rates', [Controllers\TaxRateController::class, 'store'])->name('tax_rates.store');
Route::middleware('can:tax_rates_update')->put('tax_rates/{tax_rate}', [Controllers\TaxRateController::class, 'update'])->name('tax_rates.update'); Route::middleware('can:tax_rates_update')->put('tax_rates/{tax_rate}', [Controllers\TaxRateController::class, 'update'])->name('tax_rates.update');
Route::middleware('can:tax_rates_delete')->delete('tax_rates/{tax_rate}', [Controllers\TaxRateController::class, 'destroy'])->name('tax_rates.destroy'); Route::middleware('can:tax_rates_delete')->delete('tax_rates/{tax_rate}', [Controllers\TaxRateController::class, 'destroy'])->name('tax_rates.destroy');
// 后台用户 // 后台用户
Route::middleware('can:admin_users_index')->get('admin_users', [Controllers\AdminUserController::class, 'index'])->name('admin_users.index'); Route::middleware('can:admin_users_index')->get('admin_users', [Controllers\AdminUserController::class, 'index'])->name('admin_users.index');
Route::middleware('can:admin_users_create')->post('admin_users', [Controllers\AdminUserController::class, 'store'])->name('admin_users.store'); Route::middleware('can:admin_users_create')->post('admin_users', [Controllers\AdminUserController::class, 'store'])->name('admin_users.store');
Route::middleware('can:admin_users_update')->put('admin_users/{user_id}', [Controllers\AdminUserController::class, 'update'])->name('admin_users.update'); Route::middleware('can:admin_users_update')->put('admin_users/{user_id}', [Controllers\AdminUserController::class, 'update'])->name('admin_users.update');
Route::middleware('can:admin_users_delete')->delete('admin_users/{user_id}', [Controllers\AdminUserController::class, 'destroy'])->name('admin_users.destroy'); Route::middleware('can:admin_users_delete')->delete('admin_users/{user_id}', [Controllers\AdminUserController::class, 'destroy'])->name('admin_users.destroy');
// 后台用户组 // 后台用户组
Route::middleware('can:admin_roles_index')->get('admin_roles', [Controllers\AdminRoleController::class, 'index'])->name('admin_roles.index'); Route::middleware('can:admin_roles_index')->get('admin_roles', [Controllers\AdminRoleController::class, 'index'])->name('admin_roles.index');
Route::middleware('can:admin_roles_create')->get('admin_roles/create', [Controllers\AdminRoleController::class, 'create'])->name('admin_roles.create'); Route::middleware('can:admin_roles_create')->get('admin_roles/create', [Controllers\AdminRoleController::class, 'create'])->name('admin_roles.create');

View File

@ -11,12 +11,8 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use Beike\Models\Category;
use Beike\Models\CategoryPath;
use Beike\Repositories\AddressRepo; use Beike\Repositories\AddressRepo;
use Beike\Repositories\CustomerRepo;
use Beike\Repositories\ZoneRepo; use Beike\Repositories\ZoneRepo;
use Illuminate\Support\Facades\DB;
class AddressService class AddressService
{ {
@ -25,6 +21,7 @@ class AddressService
$data = self::getParams($data); $data = self::getParams($data);
$data['customer_id'] = $customerId; $data['customer_id'] = $customerId;
$address = AddressRepo::create($data); $address = AddressRepo::create($data);
return $address; return $address;
} }
@ -32,6 +29,7 @@ class AddressService
{ {
$data = self::getParams($data); $data = self::getParams($data);
$address = AddressRepo::update($addressId, $data); $address = AddressRepo::update($addressId, $data);
return $address; return $address;
} }
@ -53,6 +51,7 @@ class AddressService
'address_1' => $data['address_1'] ?? '', 'address_1' => $data['address_1'] ?? '',
'address_2' => $data['address_2'] ?? '', 'address_2' => $data['address_2'] ?? '',
]; ];
return $data; return $data;
} }
} }

View File

@ -55,6 +55,7 @@ class CategoryService
DB::commit(); DB::commit();
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollBack(); DB::rollBack();
throw $e; throw $e;
} }
@ -134,7 +135,6 @@ class CategoryService
// $this->repairCategories(0); // $this->repairCategories(0);
} }
/** /**
* 重建category path * 重建category path
* *
@ -168,7 +168,7 @@ class CategoryService
$pathData = [ $pathData = [
'category_id' => $category->id, 'category_id' => $category->id,
'path_id' => $category->id, 'path_id' => $category->id,
'level' => $level 'level' => $level,
]; ];
if ($path) { if ($path) {
$path->update($pathData); $path->update($pathData);

View File

@ -11,7 +11,6 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use Beike\Repositories\CustomerGroupRepo; use Beike\Repositories\CustomerGroupRepo;
class CustomerGroupService class CustomerGroupService
@ -59,7 +58,7 @@ class CustomerGroupService
foreach ($data['name'] as $locale => $value) { foreach ($data['name'] as $locale => $value) {
$descriptions[$locale] = [ $descriptions[$locale] = [
'name' => $value, 'name' => $value,
'description' => $data['description'][$locale] ?? '' 'description' => $data['description'][$locale] ?? '',
]; ];
} }

View File

@ -11,10 +11,7 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use Beike\Models\Category;
use Beike\Models\CategoryPath;
use Beike\Repositories\CustomerRepo; use Beike\Repositories\CustomerRepo;
use Illuminate\Support\Facades\DB;
class CustomerService class CustomerService
{ {
@ -23,7 +20,7 @@ class CustomerService
$data['locale'] = system_setting('base.locale'); $data['locale'] = system_setting('base.locale');
$data['from'] = 'admin'; $data['from'] = 'admin';
$customer = CustomerRepo::create($data); $customer = CustomerRepo::create($data);
return $customer; return $customer;
} }
} }

View File

@ -11,19 +11,15 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use Illuminate\Support\Facades\File;
class FileManagerService class FileManagerService
{ {
private $fileBasePath = ''; private $fileBasePath = '';
public function __construct() public function __construct()
{ {
$this->fileBasePath = public_path('catalog'); $this->fileBasePath = public_path('catalog');
} }
/** /**
* 获取某个目录下所有文件夹 * 获取某个目录下所有文件夹
*/ */
@ -45,10 +41,10 @@ class FileManagerService
$result[] = $item; $result[] = $item;
} }
} }
return $result; return $result;
} }
/** /**
* 获取某个目录下的文件和文件夹 * 获取某个目录下的文件和文件夹
* *
@ -88,7 +84,6 @@ class FileManagerService
]; ];
} }
/** /**
* 创建目录 * 创建目录
* @param $folderName * @param $folderName
@ -104,7 +99,6 @@ class FileManagerService
create_directories($catalogFolderPath); create_directories($catalogFolderPath);
} }
/** /**
* 删除文件或文件夹 * 删除文件或文件夹
* *
@ -125,7 +119,6 @@ class FileManagerService
} }
} }
/** /**
* 批量删除文件 * 批量删除文件
* *
@ -145,7 +138,6 @@ class FileManagerService
} }
} }
/** /**
* 修改文件夹或者文件名称 * 修改文件夹或者文件名称
* *
@ -167,7 +159,6 @@ class FileManagerService
@rename($originPath, $newPath); @rename($originPath, $newPath);
} }
/** /**
* 处理文件夹 * 处理文件夹
* *
@ -179,11 +170,10 @@ class FileManagerService
{ {
return [ return [
'path' => $folderPath, 'path' => $folderPath,
'name' => $baseName 'name' => $baseName,
]; ];
} }
/** /**
* 检测是否含有子文件夹 * 检测是否含有子文件夹
* *
@ -199,10 +189,10 @@ class FileManagerService
return true; return true;
} }
} }
return false; return false;
} }
/** /**
* 处理文件 * 处理文件
* *

View File

@ -20,7 +20,7 @@ class LanguageService
if (! is_file($langFile)) { if (! is_file($langFile)) {
throw new \Exception("File ($langFile) not exist!"); throw new \Exception("File ($langFile) not exist!");
} }
$baseData = require($langFile); $baseData = require $langFile;
$name = $baseData['name'] ?? $languageCode; $name = $baseData['name'] ?? $languageCode;
$result[] = [ $result[] = [
'code' => $languageCode, 'code' => $languageCode,
@ -59,6 +59,7 @@ class LanguageService
} }
$className::query()->insert($items); $className::query()->insert($items);
} }
return $language; return $language;
} }

View File

@ -11,11 +11,11 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use ZanySoft\Zip\Zip; use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Client\PendingRequest;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use ZanySoft\Zip\Zip;
class MarketingService class MarketingService
{ {
@ -35,7 +35,6 @@ class MarketingService
return new self; return new self;
} }
/** /**
* 获取可插件市场插件列表 * 获取可插件市场插件列表
* *
@ -48,10 +47,10 @@ class MarketingService
if (! empty($filters)) { if (! empty($filters)) {
$url .= '?' . http_build_query($filters); $url .= '?' . http_build_query($filters);
} }
return $this->httpClient->get($url)->json(); return $this->httpClient->get($url)->json();
} }
/** /**
* 获取插件市场单个插件信息 * 获取插件市场单个插件信息
* *
@ -65,10 +64,10 @@ class MarketingService
if (empty($plugin)) { if (empty($plugin)) {
throw new NotFoundHttpException('该插件不存在或已下架'); throw new NotFoundHttpException('该插件不存在或已下架');
} }
return $plugin; return $plugin;
} }
/** /**
* 购买插件市场单个插件 * 购买插件市场单个插件
* *
@ -85,11 +84,10 @@ class MarketingService
$status = $content['status'] ?? ''; $status = $content['status'] ?? '';
if ($status == 'success') { if ($status == 'success') {
return $content['data']; return $content['data'];
} else {
throw new \Exception($content['message'] ?? '');
}
} }
throw new \Exception($content['message'] ?? '');
}
/** /**
* 下载插件到网站 * 下载插件到网站

View File

@ -3,7 +3,6 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use Beike\Models\Product; use Beike\Models\Product;
use Beike\Models\ProductDescription;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
class ProductService class ProductService
@ -11,6 +10,7 @@ class ProductService
public function create(array $data): Product public function create(array $data): Product
{ {
$product = new Product; $product = new Product;
return $this->createOrUpdate($product, $data); return $this->createOrUpdate($product, $data);
} }
@ -66,6 +66,7 @@ class ProductService
return $product; return $product;
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollBack(); DB::rollBack();
throw $e; throw $e;
} }
} }

View File

@ -11,8 +11,6 @@
namespace Beike\Admin\Services; namespace Beike\Admin\Services;
use Beike\Libraries\Notification;
use Beike\Repositories\UserRepo; use Beike\Repositories\UserRepo;
use Beike\Repositories\VerifyCodeRepo; use Beike\Repositories\VerifyCodeRepo;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
@ -25,7 +23,8 @@ class UserService
* @param $email * @param $email
* @return void * @return void
*/ */
public static function sendVerifyCodeForForgotten($email) { public static function sendVerifyCodeForForgotten($email)
{
$code = str_pad(mt_rand(10, 999999), 6, '0', STR_PAD_LEFT); $code = str_pad(mt_rand(10, 999999), 6, '0', STR_PAD_LEFT);
VerifyCodeRepo::deleteByAccount($email); VerifyCodeRepo::deleteByAccount($email);
@ -51,6 +50,7 @@ class UserService
$verifyCode = VerifyCodeRepo::findByAccount($account); $verifyCode = VerifyCodeRepo::findByAccount($account);
if ($verifyCode->created_at->addMinutes(10) < Carbon::now()) { if ($verifyCode->created_at->addMinutes(10) < Carbon::now()) {
$verifyCode->delete(); $verifyCode->delete();
throw new \Exception(trans('admin/user.verify_code_expired')); throw new \Exception(trans('admin/user.verify_code_expired'));
} }

View File

@ -7,9 +7,10 @@ use Illuminate\View\Component;
class Alert extends Component class Alert extends Component
{ {
public string $type; public string $type;
public string $msg; public string $msg;
public function __construct(?string $type = 'success', string $msg) public function __construct(?string $type, string $msg)
{ {
$this->type = $type ?? 'success'; $this->type = $type ?? 'success';
$this->msg = $msg; $this->msg = $msg;

View File

@ -7,6 +7,7 @@ use Illuminate\View\Component;
class Filter extends Component class Filter extends Component
{ {
public string $url; public string $url;
public array $queries; public array $queries;
/** /**

View File

@ -7,7 +7,9 @@ use Illuminate\View\Component;
class Image extends Component class Image extends Component
{ {
public string $name; public string $name;
public string $title; public string $title;
public string $value; public string $value;
public function __construct(string $name, ?string $title, ?string $value) public function __construct(string $name, ?string $title, ?string $value)

View File

@ -7,12 +7,19 @@ use Illuminate\View\Component;
class Input extends Component class Input extends Component
{ {
public string $name; public string $name;
public string $title; public string $title;
public string $value; public string $value;
public string $error; public string $error;
public string $width; public string $width;
public string $type; public string $type;
public string $step; public string $step;
public bool $required; public bool $required;
public function __construct(string $name, string $title, ?string $value, bool $required = false, ?string $error = '', ?string $width = '400', ?string $type = 'text', ?string $step = '') public function __construct(string $name, string $title, ?string $value, bool $required = false, ?string $error = '', ?string $width = '400', ?string $type = 'text', ?string $step = '')

View File

@ -8,9 +8,13 @@ use Illuminate\View\Component;
class InputLocale extends Component class InputLocale extends Component
{ {
public string $name; public string $name;
public string $title; public string $title;
public string $width; public string $width;
public $value; public $value;
public bool $required; public bool $required;
public function __construct(string $name, string $title, $value, ?string $width = '400', ?bool $required = false) public function __construct(string $name, string $title, $value, ?string $width = '400', ?bool $required = false)
@ -41,6 +45,7 @@ class InputLocale extends Component
$key .= '[' . $segment . ']'; $key .= '[' . $segment . ']';
} }
} }
return $key; return $key;
} }

View File

@ -7,10 +7,15 @@ use Illuminate\View\Component;
class Select extends Component class Select extends Component
{ {
public string $name; public string $name;
public string $value; public string $value;
public string $title; public string $title;
public array $options; public array $options;
public string $key; public string $key;
public string $label; public string $label;
public function __construct(string $name, string $value, string $title, array $options, ?string $key = 'value', ?string $label = 'label') public function __construct(string $name, string $value, string $title, array $options, ?string $key = 'value', ?string $label = 'label')

View File

@ -7,7 +7,9 @@ use Illuminate\View\Component;
class SwitchRadio extends Component class SwitchRadio extends Component
{ {
public string $name; public string $name;
public string $value; public string $value;
public string $title; public string $title;
public function __construct(string $name, string $value, string $title) public function __construct(string $name, string $value, string $title)

View File

@ -7,9 +7,13 @@ use Illuminate\View\Component;
class Textarea extends Component class Textarea extends Component
{ {
public string $name; public string $name;
public string $title; public string $title;
public string $value; public string $value;
public bool $required; public bool $required;
public bool $html; public bool $html;
public function __construct(string $name, string $title, ?string $value, bool $required = false, bool $html = false) public function __construct(string $name, string $title, ?string $value, bool $required = false, bool $html = false)

View File

@ -8,6 +8,7 @@ use Illuminate\View\Component;
class Header extends Component class Header extends Component
{ {
public array $links = []; public array $links = [];
private ?AdminUser $adminUser; private ?AdminUser $adminUser;
/** /**
@ -20,7 +21,6 @@ class Header extends Component
$this->adminUser = current_user(); $this->adminUser = current_user();
} }
/** /**
* Get the view / contents that represent the component. * Get the view / contents that represent the component.
* *
@ -38,22 +38,22 @@ class Header extends Component
foreach ($sideMenuRoutes as $route) { foreach ($sideMenuRoutes as $route) {
$route_first = explode('.', $route['route'])[0] ?? ''; $route_first = explode('.', $route['route'])[0] ?? '';
$routes[] = "admin." . $route['route']; $routes[] = 'admin.' . $route['route'];
$routes[] = 'admin.' . $route_first . '.edit'; $routes[] = 'admin.' . $route_first . '.edit';
$routes[] = 'admin.' . $route_first . '.show'; $routes[] = 'admin.' . $route_first . '.show';
} }
$is_route = equal_route($routes); $is_route = equal_route($routes);
} else { } else {
$is_route = equal_route("admin." . $menu['route']); $is_route = equal_route('admin.' . $menu['route']);
} }
$this->addLink($menu['name'], $menu['route'], $is_route); $this->addLink($menu['name'], $menu['route'], $is_route);
} }
return view('admin::components.header'); return view('admin::components.header');
} }
/** /**
* 默认菜单 * 默认菜单
*/ */
@ -68,10 +68,10 @@ class Header extends Component
['name' => trans('admin/common.setting'), 'route' => 'settings.index', 'code' => 'Setting'], ['name' => trans('admin/common.setting'), 'route' => 'settings.index', 'code' => 'Setting'],
// ['name' => trans('admin/common.marketing'), 'route' => 'marketing.index', 'code' => ''], // ['name' => trans('admin/common.marketing'), 'route' => 'marketing.index', 'code' => ''],
]; ];
return hook_filter('admin.header_menus', $menus); return hook_filter('admin.header_menus', $menus);
} }
/** /**
* 添加后台顶部菜单链接 * 添加后台顶部菜单链接
* *
@ -90,7 +90,7 @@ class Header extends Component
$this->links[] = [ $this->links[] = [
'title' => $title, 'title' => $title,
'url' => $url, 'url' => $url,
'active' => $active 'active' => $active,
]; ];
} }
} }

View File

@ -9,8 +9,11 @@ use Illuminate\View\Component;
class Sidebar extends Component class Sidebar extends Component
{ {
public array $links = []; public array $links = [];
private string $adminName; private string $adminName;
private ?string $routeNameWithPrefix; private ?string $routeNameWithPrefix;
private ?AdminUser $adminUser; private ?AdminUser $adminUser;
/** /**
@ -71,7 +74,6 @@ class Sidebar extends Component
return view('admin::components.sidebar'); return view('admin::components.sidebar');
} }
/** /**
* 添加左侧菜单链接 * 添加左侧菜单链接
* *
@ -95,11 +97,10 @@ class Sidebar extends Component
'icon' => $icon, 'icon' => $icon,
'active' => $active, 'active' => $active,
'hide_mobile' => $hide_mobile, 'hide_mobile' => $hide_mobile,
'new_window' => $newWindow 'new_window' => $newWindow,
]; ];
} }
/** /**
* 获取首页子页面路由 * 获取首页子页面路由
*/ */
@ -113,10 +114,10 @@ class Sidebar extends Component
['route' => 'currencies.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], ['route' => 'currencies.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
['route' => 'plugins.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], ['route' => 'plugins.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
]; ];
return hook_filter('sidebar.home_routes', $routes); return hook_filter('sidebar.home_routes', $routes);
} }
/** /**
* 获取商品子页面路由 * 获取商品子页面路由
*/ */
@ -130,10 +131,10 @@ class Sidebar extends Component
['route' => 'attributes.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'attributes.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'products.trashed', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'products.trashed', 'icon' => 'fa fa-tachometer-alt'],
]; ];
return hook_filter('sidebar.product_routes', $routes); return hook_filter('sidebar.product_routes', $routes);
} }
/** /**
* 获取商品子页面路由 * 获取商品子页面路由
*/ */
@ -144,10 +145,10 @@ class Sidebar extends Component
['route' => 'customer_groups.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'customer_groups.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'customers.trashed', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'customers.trashed', 'icon' => 'fa fa-tachometer-alt'],
]; ];
return hook_filter('sidebar.customer_routes', $routes); return hook_filter('sidebar.customer_routes', $routes);
} }
/** /**
* 获取订单子页面路由 * 获取订单子页面路由
*/ */
@ -158,6 +159,7 @@ class Sidebar extends Component
['route' => 'rmas.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'rmas.index', 'icon' => 'fa fa-tachometer-alt'],
['route' => 'rma_reasons.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'rma_reasons.index', 'icon' => 'fa fa-tachometer-alt'],
]; ];
return hook_filter('sidebar.order_routes', $routes); return hook_filter('sidebar.order_routes', $routes);
} }
@ -170,6 +172,7 @@ class Sidebar extends Component
$routes = [ $routes = [
['route' => 'pages.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'pages.index', 'icon' => 'fa fa-tachometer-alt'],
]; ];
return hook_filter('sidebar.pages_routes', $routes); return hook_filter('sidebar.pages_routes', $routes);
} }
@ -195,10 +198,10 @@ class Sidebar extends Component
['route' => 'design_footer.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => true, 'hide_mobile' => 1], ['route' => 'design_footer.index', 'icon' => 'fa fa-tachometer-alt', 'blank' => true, 'hide_mobile' => 1],
['route' => 'design_menu.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], ['route' => 'design_menu.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1],
]; ];
return hook_filter('sidebar.setting_routes', $routes); return hook_filter('sidebar.setting_routes', $routes);
} }
/** /**
* 是否为当前访问路由 * 是否为当前访问路由
* *
@ -208,6 +211,7 @@ class Sidebar extends Component
private function equalRoute($routeName): bool private function equalRoute($routeName): bool
{ {
$currentRouteName = str_replace($this->adminName . '.', '', $this->routeNameWithPrefix); $currentRouteName = str_replace($this->adminName . '.', '', $this->routeNameWithPrefix);
return $routeName == $currentRouteName; return $routeName == $currentRouteName;
} }
} }

View File

@ -11,8 +11,8 @@
namespace Beike\Admin\View\DesignBuilders; namespace Beike\Admin\View\DesignBuilders;
use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class Brand extends Component class Brand extends Component
{ {

View File

@ -11,8 +11,8 @@
namespace Beike\Admin\View\DesignBuilders; namespace Beike\Admin\View\DesignBuilders;
use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class Image100 extends Component class Image100 extends Component
{ {

View File

@ -11,8 +11,8 @@
namespace Beike\Admin\View\DesignBuilders; namespace Beike\Admin\View\DesignBuilders;
use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class Image401 extends Component class Image401 extends Component
{ {

View File

@ -11,8 +11,8 @@
namespace Beike\Admin\View\DesignBuilders; namespace Beike\Admin\View\DesignBuilders;
use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class SlideShow extends Component class SlideShow extends Component
{ {

View File

@ -11,8 +11,8 @@
namespace Beike\Admin\View\DesignBuilders; namespace Beike\Admin\View\DesignBuilders;
use Illuminate\View\Component;
use Illuminate\Contracts\View\View; use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class TabProduct extends Component class TabProduct extends Component
{ {

View File

@ -11,14 +11,15 @@
namespace Beike\Console\Commands; namespace Beike\Console\Commands;
use UniSharp\DocUs\Parser;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use UniSharp\DocUs\Parser;
class GenerateDatabaseDict extends Command class GenerateDatabaseDict extends Command
{ {
protected $signature = 'make:dict'; protected $signature = 'make:dict';
protected $description = '生成数据字典 Markdown 文档'; protected $description = '生成数据字典 Markdown 文档';
public function handle() public function handle()
@ -31,7 +32,6 @@ class GenerateDatabaseDict extends Command
dump('done'); dump('done');
} }
/** /**
* 获取所有数据表信息 * 获取所有数据表信息
* @return Collection * @return Collection
@ -39,10 +39,12 @@ class GenerateDatabaseDict extends Command
private function getTables(): Collection private function getTables(): Collection
{ {
$schema = Parser::getSchema(); $schema = Parser::getSchema();
return $schema->map(function ($item) { return $schema->map(function ($item) {
$tableName = $item['name']; $tableName = $item['name'];
$result = collect(DB::select("SHOW TABLE STATUS WHERE Name='{$tableName}'"))->first(); $result = collect(DB::select("SHOW TABLE STATUS WHERE Name='{$tableName}'"))->first();
$item['comment'] = $result->Comment; $item['comment'] = $result->Comment;
return $item; return $item;
}); });
} }

View File

@ -8,6 +8,7 @@ use Illuminate\Console\Command;
class MakeRootAdminUser extends Command class MakeRootAdminUser extends Command
{ {
protected $signature = 'make:admin'; protected $signature = 'make:admin';
protected $description = '生成第 1 个 root admin 账号'; protected $description = '生成第 1 个 root admin 账号';
public function handle() public function handle()
@ -17,6 +18,7 @@ class MakeRootAdminUser extends Command
if (! $email || ! $password) { if (! $email || ! $password) {
$this->info('邮箱地址/手机号码不能为空,退出'); $this->info('邮箱地址/手机号码不能为空,退出');
return; return;
} }

View File

@ -23,7 +23,6 @@ class Sitemap extends Command
/** /**
* Execute the console command. * Execute the console command.
*
*/ */
public function handle() public function handle()
{ {

View File

@ -1,21 +1,21 @@
<?php <?php
use Beike\Models\AdminUser;
use Beike\Models\Customer; use Beike\Models\Customer;
use Beike\Models\Language; use Beike\Models\Language;
use Beike\Models\AdminUser;
use Illuminate\Support\Str;
use Beike\Repositories\PageRepo;
use Beike\Repositories\BrandRepo; use Beike\Repositories\BrandRepo;
use Illuminate\Support\Collection;
use Beike\Repositories\ProductRepo;
use Beike\Services\CurrencyService;
use Beike\Repositories\CategoryRepo; use Beike\Repositories\CategoryRepo;
use Beike\Repositories\CurrencyRepo; use Beike\Repositories\CurrencyRepo;
use Beike\Repositories\LanguageRepo; use Beike\Repositories\LanguageRepo;
use TorMorten\Eventy\Facades\Eventy; use Beike\Repositories\PageRepo;
use Beike\Repositories\ProductRepo;
use Beike\Services\CurrencyService;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Session;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Str;
use TorMorten\Eventy\Facades\Eventy;
/** /**
* 获取后台设置到 settings 表的值 * 获取后台设置到 settings 表的值
@ -63,6 +63,7 @@ function admin_name(): string
} elseif ($settingAdminName = system_setting('base.admin_name')) { } elseif ($settingAdminName = system_setting('base.admin_name')) {
return Str::snake($settingAdminName); return Str::snake($settingAdminName);
} }
return 'admin'; return 'admin';
} }
@ -88,6 +89,7 @@ function load_settings()
function admin_route($route, $params = []): string function admin_route($route, $params = []): string
{ {
$adminName = admin_name(); $adminName = admin_name();
return route("{$adminName}.{$route}", $params); return route("{$adminName}.{$route}", $params);
} }
@ -150,6 +152,7 @@ function type_route($type, $value): string
} elseif ($type == 'custom') { } elseif ($type == 'custom') {
return $value; return $value;
} }
return ''; return '';
} }
@ -187,6 +190,7 @@ function type_label($type, $value, array $texts = []): string
} elseif ($type == 'custom') { } elseif ($type == 'custom') {
return $text; return $text;
} }
return ''; return '';
} }
@ -220,10 +224,10 @@ function is_admin(): bool
if (Str::startsWith($uri, "/{$adminName}")) { if (Str::startsWith($uri, "/{$adminName}")) {
return true; return true;
} }
return false; return false;
} }
/** /**
* 是否访问安装页面 * 是否访问安装页面
* @return bool * @return bool
@ -231,9 +235,9 @@ function is_admin(): bool
function is_installer(): bool function is_installer(): bool
{ {
$uri = request()->getRequestUri(); $uri = request()->getRequestUri();
return Str::startsWith($uri, "/installer");
}
return Str::startsWith($uri, '/installer');
}
/** /**
* 是否为当前访问路由 * 是否为当前访问路由
@ -278,10 +282,11 @@ function current_customer(): ?Customer
function locales(): array function locales(): array
{ {
$locales = LanguageRepo::enabled()->toArray(); $locales = LanguageRepo::enabled()->toArray();
return array_map(function ($item) { return array_map(function ($item) {
return [ return [
'name' => $item['name'], 'name' => $item['name'],
'code' => $item['code'] 'code' => $item['code'],
]; ];
}, $locales); }, $locales);
} }
@ -296,8 +301,10 @@ function locale(): string
if (is_admin()) { if (is_admin()) {
$locales = collect(locales())->pluck('code'); $locales = collect(locales())->pluck('code');
$userLocale = current_user()->locale; $userLocale = current_user()->locale;
return ($locales->contains($userLocale)) ? $userLocale : 'en'; return ($locales->contains($userLocale)) ? $userLocale : 'en';
} }
return Session::get('locale') ?? system_setting('base.locale'); return Session::get('locale') ?? system_setting('base.locale');
} }
@ -311,6 +318,7 @@ function admin_locale(): string
if (is_admin()) { if (is_admin()) {
return current_user()->locale; return current_user()->locale;
} }
return locale(); return locale();
} }
@ -328,6 +336,7 @@ function currency_format($price, string $currency = '', string $value = '', bool
if (! $currency) { if (! $currency) {
$currency = is_admin() ? system_setting('base.currency') : current_currency_code(); $currency = is_admin() ? system_setting('base.currency') : current_currency_code();
} }
return CurrencyService::getInstance()->format($price, $currency, $value, $format); return CurrencyService::getInstance()->format($price, $currency, $value, $format);
} }
@ -345,10 +354,10 @@ function time_format($datetime = null)
} elseif (is_int($datetime)) { } elseif (is_int($datetime)) {
return date($format, $datetime); return date($format, $datetime);
} }
return date($format); return date($format);
} }
/** /**
* 获取插件根目录 * 获取插件根目录
* *
@ -360,7 +369,6 @@ function plugin_path(string $path = ''): string
return base_path('plugins') . ($path ? DIRECTORY_SEPARATOR . ltrim($path, DIRECTORY_SEPARATOR) : $path); return base_path('plugins') . ($path ? DIRECTORY_SEPARATOR . ltrim($path, DIRECTORY_SEPARATOR) : $path);
} }
/** /**
* 插件图片缩放 * 插件图片缩放
* *
@ -378,6 +386,7 @@ function plugin_resize($pluginCode, $image, int $width = 100, int $height = 100)
return $image; return $image;
} }
$pluginDirName = $plugin->getDirname(); $pluginDirName = $plugin->getDirname();
return (new \Beike\Services\ImageService($image))->setPluginDirName($pluginDirName)->resize($width, $height); return (new \Beike\Services\ImageService($image))->setPluginDirName($pluginDirName)->resize($width, $height);
} }
@ -395,6 +404,7 @@ function image_resize($image, int $width = 100, int $height = 100)
if (Str::startsWith($image, 'http')) { if (Str::startsWith($image, 'http')) {
return $image; return $image;
} }
return (new \Beike\Services\ImageService($image))->resize($width, $height); return (new \Beike\Services\ImageService($image))->resize($width, $height);
} }
@ -407,6 +417,7 @@ function image_origin($image)
if (Str::startsWith($image, 'http')) { if (Str::startsWith($image, 'http')) {
return $image; return $image;
} }
return (new \Beike\Services\ImageService($image))->originUrl(); return (new \Beike\Services\ImageService($image))->originUrl();
} }
@ -428,6 +439,7 @@ function languages(): Collection
function current_language() function current_language()
{ {
$code = locale(); $code = locale();
return Language::query()->where('code', $code)->first(); return Language::query()->where('code', $code)->first();
} }
@ -442,6 +454,7 @@ function admin_languages(): array
$adminLanguages = collect($packages)->filter(function ($package) { $adminLanguages = collect($packages)->filter(function ($package) {
return file_exists(resource_path("lang/{$package}/admin")); return file_exists(resource_path("lang/{$package}/admin"));
})->toArray(); })->toArray();
return array_values($adminLanguages); return array_values($adminLanguages);
} }
@ -452,7 +465,8 @@ function admin_languages(): array
function language_packages(): array function language_packages(): array
{ {
$languageDir = resource_path('lang'); $languageDir = resource_path('lang');
return array_values(array_diff(scandir($languageDir), array('..', '.')));
return array_values(array_diff(scandir($languageDir), ['..', '.']));
} }
/** /**
@ -482,6 +496,7 @@ function current_currency_id(): string
{ {
$currencyCode = current_currency_code(); $currencyCode = current_currency_code();
$currency = \Beike\Models\Currency::query()->where('code', $currencyCode)->first(); $currency = \Beike\Models\Currency::query()->where('code', $currencyCode)->first();
return $currency->id ?? 0; return $currency->id ?? 0;
} }
@ -501,9 +516,10 @@ function quantity_format($quantity)
return round($quantity / 1000000, 1) . 'M'; return round($quantity / 1000000, 1) . 'M';
} elseif ($quantity > 1000) { } elseif ($quantity > 1000) {
return round($quantity / 1000, 1) . 'K'; return round($quantity / 1000, 1) . 'K';
} else {
return $quantity;
} }
return $quantity;
} }
/** /**
@ -562,6 +578,7 @@ function to_sql($builder): array|string|null
$value = is_numeric($binding) ? $binding : "'" . $binding . "'"; $value = is_numeric($binding) ? $binding : "'" . $binding . "'";
$sql = preg_replace('/\?/', $value, $sql, 1); $sql = preg_replace('/\?/', $value, $sql, 1);
} }
return $sql; return $sql;
} }
@ -651,7 +668,6 @@ function is_mobile(): bool
return (new \Jenssegers\Agent\Agent())->isMobile(); return (new \Jenssegers\Agent\Agent())->isMobile();
} }
/** /**
* 当前访问协议是否为 https * 当前访问协议是否为 https
* *
@ -670,10 +686,10 @@ function is_secure(): bool
} elseif (isset($_SERVER['REQUEST_SCHEME']) && strtolower($_SERVER['REQUEST_SCHEME']) === 'https') { } elseif (isset($_SERVER['REQUEST_SCHEME']) && strtolower($_SERVER['REQUEST_SCHEME']) === 'https') {
return true; return true;
} }
return false; return false;
} }
/** /**
* 每页商品显示数量 * 每页商品显示数量
* *

View File

@ -2,12 +2,12 @@
namespace Beike\Installer\Controllers; namespace Beike\Installer\Controllers;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Schema;
use Beike\Admin\Repositories\AdminUserRepo; use Beike\Admin\Repositories\AdminUserRepo;
use Beike\Installer\Helpers\DatabaseManager; use Beike\Installer\Helpers\DatabaseManager;
use Illuminate\Http\RedirectResponse;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class DatabaseController extends Controller class DatabaseController extends Controller
{ {
@ -31,15 +31,16 @@ class DatabaseController extends Controller
*/ */
public function index() public function index()
{ {
DB::statement("SET FOREIGN_KEY_CHECKS = 0"); DB::statement('SET FOREIGN_KEY_CHECKS = 0');
$rows = DB::select('SHOW TABLES'); $rows = DB::select('SHOW TABLES');
$tables = array_column($rows, 'Tables_in_' . env('DB_DATABASE')); $tables = array_column($rows, 'Tables_in_' . env('DB_DATABASE'));
foreach ($tables as $table) { foreach ($tables as $table) {
Schema::drop($table); Schema::drop($table);
} }
DB::statement("SET FOREIGN_KEY_CHECKS = 1"); DB::statement('SET FOREIGN_KEY_CHECKS = 1');
$params = request()->all(); $params = request()->all();
try { try {
$response = $this->databaseManager->migrateAndSeed(); $response = $this->databaseManager->migrateAndSeed();
$status = $response['status'] ?? ''; $status = $response['status'] ?? '';

View File

@ -2,13 +2,13 @@
namespace Beike\Installer\Controllers; namespace Beike\Installer\Controllers;
use Beike\Installer\Helpers\EnvironmentManager;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;
use Illuminate\Routing\Redirector; use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Beike\Installer\Helpers\EnvironmentManager;
class EnvironmentController extends Controller class EnvironmentController extends Controller
{ {
@ -70,7 +70,6 @@ class EnvironmentController extends Controller
return redirect(route('installer.database', $params)); return redirect(route('installer.database', $params));
} }
/** /**
* 数据库信息检测 * 数据库信息检测
* *
@ -84,8 +83,8 @@ class EnvironmentController extends Controller
'environment_custom.required_if' => trans('installer::installer_messages.environment.name_required'), 'environment_custom.required_if' => trans('installer::installer_messages.environment.name_required'),
]; ];
unset($rules['admin_email']); unset($rules['admin_email'], $rules['admin_password']);
unset($rules['admin_password']);
$validator = Validator::make($request->all(), $rules, $messages); $validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) { if ($validator->fails()) {
@ -100,7 +99,6 @@ class EnvironmentController extends Controller
return json_success(''); return json_success('');
} }
/** /**
* TODO: We can remove this code if PR will be merged: https://github.com/RachidLaasri/LaravelInstaller/pull/162 * TODO: We can remove this code if PR will be merged: https://github.com/RachidLaasri/LaravelInstaller/pull/162
* Validate database connection with user credentials (Form Wizard). * Validate database connection with user credentials (Form Wizard).
@ -136,34 +134,42 @@ class EnvironmentController extends Controller
DB::purge(); DB::purge();
$result = []; $result = [];
try { try {
$pdo = DB::connection()->getPdo(); $pdo = DB::connection()->getPdo();
$serverVersion = $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION); $serverVersion = $pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);
if (version_compare($serverVersion, '5.7', '<')) { if (version_compare($serverVersion, '5.7', '<')) {
$result['database_version'] = trans('installer::installer_messages.environment.db_connection_failed_invalid_version'); $result['database_version'] = trans('installer::installer_messages.environment.db_connection_failed_invalid_version');
return $result; return $result;
} }
return true; return true;
} catch (\PDOException $e) { } catch (\PDOException $e) {
switch ($e->getCode()) { switch ($e->getCode()) {
case 1115: case 1115:
$result['database_version'] = trans('installer::installer_messages.environment.db_connection_failed_invalid_version'); $result['database_version'] = trans('installer::installer_messages.environment.db_connection_failed_invalid_version');
break; break;
case 2002: case 2002:
$result['database_hostname'] = trans('installer::installer_messages.environment.db_connection_failed_host_port'); $result['database_hostname'] = trans('installer::installer_messages.environment.db_connection_failed_host_port');
$result['database_port'] = trans('installer::installer_messages.environment.db_connection_failed_host_port'); $result['database_port'] = trans('installer::installer_messages.environment.db_connection_failed_host_port');
break; break;
case 1045: case 1045:
$result['database_username'] = trans('installer::installer_messages.environment.db_connection_failed_user_password'); $result['database_username'] = trans('installer::installer_messages.environment.db_connection_failed_user_password');
$result['database_password'] = trans('installer::installer_messages.environment.db_connection_failed_user_password'); $result['database_password'] = trans('installer::installer_messages.environment.db_connection_failed_user_password');
break; break;
case 1049: case 1049:
$result['database_name'] = trans('installer::installer_messages.environment.db_connection_failed_database_name'); $result['database_name'] = trans('installer::installer_messages.environment.db_connection_failed_database_name');
break; break;
default: default:
$result['database_other'] = $e->getMessage(); $result['database_other'] = $e->getMessage();
} }
} }
return $result; return $result;
} }
} }

View File

@ -2,10 +2,10 @@
namespace Beike\Installer\Controllers; namespace Beike\Installer\Controllers;
use Illuminate\Routing\Controller;
use Beike\Installer\Helpers\EnvironmentManager; use Beike\Installer\Helpers\EnvironmentManager;
use Beike\Installer\Helpers\FinalInstallManager; use Beike\Installer\Helpers\FinalInstallManager;
use Beike\Installer\Helpers\InstalledFileManager; use Beike\Installer\Helpers\InstalledFileManager;
use Illuminate\Routing\Controller;
class FinalController extends Controller class FinalController extends Controller
{ {

View File

@ -2,8 +2,8 @@
namespace Beike\Installer\Controllers; namespace Beike\Installer\Controllers;
use Illuminate\Routing\Controller;
use Beike\Installer\Helpers\PermissionsChecker; use Beike\Installer\Helpers\PermissionsChecker;
use Illuminate\Routing\Controller;
class PermissionsController extends Controller class PermissionsController extends Controller
{ {

View File

@ -2,8 +2,8 @@
namespace Beike\Installer\Controllers; namespace Beike\Installer\Controllers;
use Illuminate\Routing\Controller;
use Beike\Installer\Helpers\RequirementsChecker; use Beike\Installer\Helpers\RequirementsChecker;
use Illuminate\Routing\Controller;
class RequirementsController extends Controller class RequirementsController extends Controller
{ {

View File

@ -21,7 +21,6 @@ class WelcomeController extends Controller
'en' => 'English', 'en' => 'English',
]; ];
public function index() public function index()
{ {
if (installed()) { if (installed()) {

View File

@ -95,7 +95,7 @@ class EnvironmentManager
$results = trans('installer::installer_messages.environment.success'); $results = trans('installer::installer_messages.environment.success');
$scheme = is_secure() ? 'https' : 'http'; $scheme = is_secure() ? 'https' : 'http';
$appUrl = $scheme . "://" . $_SERVER["HTTP_HOST"]; $appUrl = $scheme . '://' . $_SERVER['HTTP_HOST'];
$envFileData = $envFileData =
'APP_NAME=\'' . ($request->app_name ?: 'BeikeShop') . "'\n" . 'APP_NAME=\'' . ($request->app_name ?: 'BeikeShop') . "'\n" .

View File

@ -34,6 +34,7 @@ class RequirementsChecker
$results['errors'] = true; $results['errors'] = true;
} }
} }
break; break;
// check apache requirements // check apache requirements
case 'apache': case 'apache':
@ -49,6 +50,7 @@ class RequirementsChecker
} }
} }
} }
break; break;
} }
} }

View File

@ -108,7 +108,6 @@ return [
'error_email' => 'Please fill in the correct email address', 'error_email' => 'Please fill in the correct email address',
], ],
/* /*
* *
* Installed Log translations. * Installed Log translations.

View File

@ -12,7 +12,6 @@ return [
'finish' => '安装', 'finish' => '安装',
'status' => '状态', 'status' => '状态',
/* /*
* *
* Home page translations. * Home page translations.

View File

@ -4,8 +4,6 @@ namespace Beike\Installer\Providers;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
class InstallerServiceProvider extends ServiceProvider class InstallerServiceProvider extends ServiceProvider
{ {

View File

@ -8,7 +8,6 @@ use Beike\Installer\Controllers\RequirementsController;
use Beike\Installer\Controllers\WelcomeController; use Beike\Installer\Controllers\WelcomeController;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::prefix('installer') Route::prefix('installer')
->name('installer.') ->name('installer.')
->middleware(\App\Http\Middleware\SetLocaleInstaller::class) ->middleware(\App\Http\Middleware\SetLocaleInstaller::class)

View File

@ -11,7 +11,6 @@
namespace Beike\Libraries; namespace Beike\Libraries;
class Notification class Notification
{ {
/** /**

Some files were not shown because too many files have changed in this diff Show More