TalentLevelChangedEvent.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Module\Promotion\Events;
  3. use App\Module\Promotion\Models\PromotionUserTalent;
  4. use Illuminate\Broadcasting\InteractsWithSockets;
  5. use Illuminate\Foundation\Events\Dispatchable;
  6. use Illuminate\Queue\SerializesModels;
  7. /**
  8. * 达人等级变更事件
  9. *
  10. * 当用户的达人等级发生变化时触发此事件。
  11. * 监听此事件可以执行如下操作:
  12. * 1. 更新用户的权益
  13. * 2. 发送通知
  14. * 3. 记录等级变更日志
  15. */
  16. class TalentLevelChangedEvent
  17. {
  18. use Dispatchable, InteractsWithSockets, SerializesModels;
  19. /**
  20. * 达人等级模型
  21. *
  22. * @var PromotionUserTalent
  23. */
  24. public $talent;
  25. /**
  26. * 旧的达人等级
  27. *
  28. * @var int
  29. */
  30. public $oldLevel;
  31. /**
  32. * 新的达人等级
  33. *
  34. * @var int
  35. */
  36. public $newLevel;
  37. /**
  38. * 创建一个新的事件实例
  39. *
  40. * @param PromotionUserTalent $talent 达人等级模型
  41. * @param int $oldLevel 旧的达人等级
  42. * @param int $newLevel 新的达人等级
  43. * @return void
  44. */
  45. public function __construct(PromotionUserTalent $talent, int $oldLevel, int $newLevel)
  46. {
  47. $this->talent = $talent;
  48. $this->oldLevel = $oldLevel;
  49. $this->newLevel = $newLevel;
  50. }
  51. }