MessageDoReadJob.php 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Jobs;
  3. use App\Model\Mongo\MessageModel;
  4. use Carbon\Carbon;
  5. use Hyperf\AsyncQueue\Job;
  6. use MongoDB\BSON\ObjectId;
  7. class MessageDoReadJob extends Job
  8. {
  9. public $params = [];
  10. public function __construct($params)
  11. {
  12. // 这里最好是普通数据,不要使用携带 IO 的对象,比如 PDO 对象
  13. $this->params = $params;
  14. }
  15. public function handle()
  16. {
  17. $ids = $this->params['ids'];
  18. if (!empty($ids) && is_array($ids)) {
  19. $readAt = toMongoIsoDate(Carbon::now());
  20. foreach ($ids as $id) {
  21. $mongoId = new ObjectId($id);
  22. $filters = [
  23. '_id' => $mongoId,
  24. ];
  25. make(MessageModel::class)->db()->updateOne(
  26. $filters,
  27. [
  28. '$set' => [
  29. 'read_at' => $readAt
  30. ]
  31. ]
  32. );
  33. }
  34. }
  35. }
  36. }