| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- <?php
- namespace App\Providers;
- use Godruoyi\Snowflake\Snowflake;
- use Godruoyi\Snowflake\LaravelSequenceResolver;
- use App\Tools\QueryBuilderMacro;
- use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
- use Illuminate\Database\Eloquent\Relations\Relation;
- use Illuminate\Database\Query\Builder as QueryBuilder;
- use Illuminate\Support\ServiceProvider;
- class AppServiceProvider extends ServiceProvider
- {
- /**
- * Register any application services.
- *
- * @return void
- */
- public function register()
- {
- //雪花算法
- $this->app->singleton('snowflake', function () {
- return (new Snowflake(env('SNOWFLAKE_DATA_CENTER_ID'),env('SNOWFLAKE_WORKER_ID')))
- ->setStartTimeStamp(strtotime(config('database.snowflake.start'))*1000)
- ->setSequenceResolver(
- new LaravelSequenceResolver($this->app->get('cache')->store()
- ));
- });
- }
- /**
- * Bootstrap any application services.
- *
- * @return void
- */
- public function boot()
- {
- //
- QueryBuilder::mixin($queryBuilderMacro = $this->app->make(QueryBuilderMacro::class));
- EloquentBuilder::mixin($queryBuilderMacro);
- Relation::mixin($queryBuilderMacro);
- }
- }
|