diff --git a/beike/Helpers.php b/beike/Helpers.php index afc67424..9b020fe5 100644 --- a/beike/Helpers.php +++ b/beike/Helpers.php @@ -119,3 +119,8 @@ function image_resize($image, int $width = 100, int $height = 100) } return asset($image); } + +function current_language_id() +{ + return 1; +} diff --git a/beike/Models/Customer.php b/beike/Models/Customer.php index 4049f02c..3e1ac02b 100644 --- a/beike/Models/Customer.php +++ b/beike/Models/Customer.php @@ -11,5 +11,5 @@ class Customer extends Authenticatable const AUTH_GUARD = 'web_shop'; - protected $fillable = ['name', 'email', 'password', 'status']; + protected $fillable = ['name', 'email', 'password', 'status', 'avatar', 'customer_group_id', 'language_id', 'status', 'from']; } diff --git a/beike/Shop/Http/Controllers/account/RegisterController.php b/beike/Shop/Http/Controllers/account/RegisterController.php index 0f65a1e4..61a1b232 100644 --- a/beike/Shop/Http/Controllers/account/RegisterController.php +++ b/beike/Shop/Http/Controllers/account/RegisterController.php @@ -12,6 +12,7 @@ namespace Beike\Shop\Http\Controllers\account; use Beike\Models\Customer; +use Beike\Shop\Services\AccountService; use Beike\Shop\Http\Controllers\Controller; use Beike\Shop\Http\Requests\RegisterRequest; use Illuminate\Support\Facades\Hash; @@ -27,13 +28,7 @@ class RegisterController extends Controller public function store(RegisterRequest $request) { - $customer = new Customer(); - $customer->name = $request->get('name', ''); - $customer->email = $request->get('email'); - $customer->customer_group_id = 0; - $customer->language_id = 0; - $customer->password = Hash::make($request->get('password')); - $customer->save(); + AccountService::register($request->all()); return redirect(shop_route('login.index')); } diff --git a/beike/Shop/Repositories/CustomerRepo.php b/beike/Shop/Repositories/CustomerRepo.php new file mode 100644 index 00000000..e79f9b30 --- /dev/null +++ b/beike/Shop/Repositories/CustomerRepo.php @@ -0,0 +1,41 @@ + + * @created 2022-06-16 17:45:41 + * @modified 2022-06-16 17:45:41 + */ + +namespace Beike\Shop\Repositories; + +use Beike\Models\Category; +use Beike\Models\Customer; +use Beike\Shop\Http\Resources\CategoryList; +use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Collection; + +class CustomerRepo +{ + /** + * 创建一个customer记录 + */ + public static function create($customerData) + { + return Customer::query()->insertGetId([ + 'name' => $customerData['name'], + 'email' => $customerData['email'], + 'password' => $customerData['password'], + 'status' => $customerData['status'], + 'avatar' => $customerData['avatar'], + 'customer_group_id' => $customerData['customer_group_id'], + 'language_id' => $customerData['language_id'], + 'status' => $customerData['status'], + 'from' => $customerData['from'], + ]); + } + +} + diff --git a/beike/Shop/Services/AccountService.php b/beike/Shop/Services/AccountService.php new file mode 100644 index 00000000..02124be7 --- /dev/null +++ b/beike/Shop/Services/AccountService.php @@ -0,0 +1,38 @@ + + * @created 2022-01-05 10:12:57 + * @modified 2022-01-05 10:12:57 + */ + +namespace Beike\Shop\Services; + + +use Beike\Models\Cart; +use Beike\Models\ProductSku; +use Beike\Shop\Repositories\CustomerRepo; +use Illuminate\Support\Facades\Hash; + +class AccountService +{ + /** + * @param array $data // ['email', 'password'] + * @return int + */ + public static function register(array $data) + { + $data['password'] = Hash::make($data['password']); + $data['customer_group_id'] = setting('default_customer_group_id', 1); // default_customer_group_id为默认客户组名称 + $data['status'] = !setting('approve_customer'); // approve_customer为是否需要审核客户 + $data['from'] = $data['from'] ?? 'pc'; + $data['language_id'] = current_language_id(); + $data['name'] = ''; + $data['avatar'] = ''; + + return CustomerRepo::create($data); + } +}