| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace App\Module\UrsPromotion\Providers;
- use Illuminate\Support\ServiceProvider;
- use Illuminate\Console\Scheduling\Schedule;
- use App\Module\Farm\Events\CropHarvestedEvent;
- use App\Module\Transfer\Events\FeeCalculatingEvent;
- use App\Module\UrsPromotion\Events\UrsUserEnteredFarmEvent;
- use App\Module\UrsPromotion\Events\UrsReferralCreatedEvent;
- use App\Module\UrsPromotion\Listeners\CropHarvestedListener;
- use App\Module\UrsPromotion\Listeners\UrsTransferFeeListener;
- use App\Module\UrsPromotion\Listeners\UrsUserEnteredFarmListener;
- use App\Module\UrsPromotion\Listeners\UrsReferralCreatedListener;
- /**
- * URS推广模块服务提供者
- */
- class UrsPromotionServiceProvider extends ServiceProvider
- {
- /**
- * 事件与监听器映射
- *
- * @var array
- */
- protected $listen = [
- CropHarvestedEvent::class => [
- CropHarvestedListener::class,
- ],
- FeeCalculatingEvent::class => [
- UrsTransferFeeListener::class,
- ],
- UrsUserEnteredFarmEvent::class => [
- UrsUserEnteredFarmListener::class,
- ],
- UrsReferralCreatedEvent::class => [
- UrsReferralCreatedListener::class,
- ],
- ];
- /**
- * 注册服务
- */
- public function register(): void
- {
- // 注册命令
- if ($this->app->runningInConsole()) {
- $this->commands([
- \App\Module\UrsPromotion\Commands\UrsPartnerDividendCommand::class,
- \App\Module\UrsPromotion\Commands\UrsRebuildRelationCacheCommand::class,
- \App\Module\UrsPromotion\Commands\UrsTestRelationCacheCommand::class,
- \App\Module\UrsPromotion\Commands\UrsReferralSyncCommand::class,
- \App\Module\UrsPromotion\Commands\UrsUpdateTalentLevelCommand::class,
- \App\Module\UrsPromotion\Commands\TestRelationCacheFixCommand::class,
- ]);
- }
- }
- /**
- * 启动服务
- */
- public function boot(): void
- {
- // 注册事件监听器
- $events = $this->app['events'];
- foreach ($this->listen as $event => $listeners) {
- foreach ($listeners as $listener) {
- $events->listen($event, $listener);
- }
- }
- // 后台路由通过注解自动注册
- // 注册定时任务
- $this->app->booted(function () {
- $schedule = $this->app->make(Schedule::class);
- // 每天00:30执行合伙人分红(处理昨天的数据)
- $schedule->command('urs-promotion:partner-dividend')
- ->dailyAt('00:30')
- ->description('URS合伙人分红 - 顶级达人享受手续费分红')
- ->withoutOverlapping() // 防止重复执行
- ->runInBackground(); // 后台运行
- });
- }
- }
|