This commit is contained in:
2023-03-08 09:16:04 +08:00
commit e78454540f
1318 changed files with 210569 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
<?php
namespace Modules\User\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Modules\User\Events\UserOrderPaid;
use Modules\User\Events\UserSignReplenishSuccess;
use Modules\User\Events\UserSignSuccess;
use Modules\User\Listeners\UserOrderPaidListeners;
use Modules\User\Listeners\UserSignContinueDays;
class EventServiceProvider extends ServiceProvider
{
/**
* The event listener mappings for the application.
* @var array
*/
protected $listen = [
UserSignSuccess::class => [
UserSignContinueDays::class,
],
//开通身份
UserOrderPaid::class => [
UserOrderPaidListeners::class,
],
UserSignReplenishSuccess::class => [
],
];
}

View File

@@ -0,0 +1,62 @@
<?php
namespace Modules\User\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
/**
* @var string $moduleName
*/
protected string $moduleName = 'User';
/**
* The module namespace to assume when generating URLs to actions.
* @var string
*/
protected string $moduleNamespace = 'Modules\User\Http\Controllers';
/**
* Called before routes are registered.
* Register any model bindings or pattern based filters.
* @return void
*/
public function boot()
{
parent::boot();
}
/**
* Define the routes for the application.
* @return void
*/
public function map()
{
$this->mapAdminRoutes();
$this->mapApiRoutes();
}
protected function mapApiRoutes()
{
Route::as(config('api.route.as'))
->domain(config('api.route.domain'))
->middleware(config('api.route.middleware'))
->namespace($this->moduleNamespace . '\\Api')
->prefix(config('api.route.prefix') . '/user')
->group(module_path($this->moduleName, 'Routes/api.php'));
}
protected function mapAdminRoutes()
{
Route::as(config('admin.route.as'))
->domain(config('admin.route.domain'))
->middleware(config('admin.route.middleware'))
->namespace($this->moduleNamespace . '\\Admin')
->prefix(config('admin.route.prefix'))
->group(module_path($this->moduleName, 'Routes/admin.php'));
}
}

View File

@@ -0,0 +1,120 @@
<?php
namespace Modules\User\Providers;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;
use Modules\User\Facades\Sms;
use Modules\User\Models\User;
use Overtrue\EasySms\EasySms;
class UserServiceProvider extends ServiceProvider
{
/**
* @var string $moduleName
*/
protected string $moduleName = 'User';
/**
* @var string $moduleNameLower
*/
protected string $moduleNameLower = 'user';
protected array $runCommands = [
UserIdentityOver::class,
];
/**
* Boot the application events.
*
* @return void
*/
public function boot()
{
$this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations'));
$this->registerValidatorExtend();
if ($this->app->runningInConsole()) {
$this->commands($this->runCommands);
}
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->registerConfig();
if (config('user.cache_user')) {
Config::set('auth.providers.users.driver', 'cache');
Config::set('cache-user', Config::get('user.cache_config'));
}
Config::set('auth.providers.users.model', User::class);
Config::set('hashids.connections.code', Config::get('user.invite_code'));
// 注册短信到容器中
$this->app->singleton('sms', function () {
return new EasySms(Sms::getConfig());
});
$this->app->register(RouteServiceProvider::class);
}
/**
* Register config.
*
* @return void
*/
protected function registerConfig()
{
$this->publishes([
module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower.'.php'),
module_path($this->moduleName, 'Config/identity.php') => config_path('identity.php'),
], 'config');
$this->mergeConfigFrom(
module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower
);
$this->mergeConfigFrom(
module_path($this->moduleName, 'Config/identity.php'), 'identity'
);
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides(): array
{
return ['sms'];
}
/**
* Notes : 注册短信验证码校验扩展
*
* @Date : 2021/5/26 5:03 下午
* @Author : <Jason.C>
*/
public function registerValidatorExtend()
{
Validator::extend('sms_check', function ($attribute, $code, $parameters) {
if (empty($code)) {
return false;
}
$mobileFiled = $parameters[0] ?? 'mobile';
$channel = $parameters[1] ?? 'DEFAULT';
$mobile = request()->input($mobileFiled);
return Sms::checkCode($mobile, $code, $channel);
});
}
}