Module.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NODELOG
  5. * Date: 16/8/6
  6. * Time: 下午3:41
  7. */
  8. namespace common\modules\message;
  9. use Yii;
  10. use yii\base\BootstrapInterface;
  11. use yii\base\Event;
  12. use yii\web\User;
  13. class Module extends \common\modules\Module implements BootstrapInterface
  14. {
  15. public function bootstrap($app)
  16. {
  17. if ($app->id == 'frontend') {
  18. Event::on(User::className(), 'afterLogin', [$this, 'afterLogin']);
  19. }
  20. }
  21. public function afterLogin($event)
  22. {
  23. $sql = "SELECT * FROM {{%message_data}} d WHERE `group` = 'all' AND `id` NOT IN (SELECT `message_id` FROM {{%message}} WHERE `to_uid` = " . $event->identity->id . ")";
  24. $messageData = Yii::$app->db->createCommand($sql)->queryAll();
  25. foreach ($messageData as $item) {
  26. $messageModel = new \common\modules\message\models\Message();
  27. $messageModel->from_uid = 1;
  28. $messageModel->to_uid = $event->identity->id;
  29. $messageModel->message_id = $item['id'];
  30. $messageModel->read = 0;
  31. $messageModel->save();
  32. Yii::$app->notify->category('message')
  33. ->from(1)->to($event->identity->id)
  34. ->extra(['message' => $item['content']])
  35. ->send();
  36. }
  37. }
  38. }