DiscussionService.php 998 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Services;
  3. use App\Models\Discussion;
  4. use Illuminate\Support\Facades\Hash;
  5. use App\Http\Api\Mq;
  6. use App\Http\Resources\DiscussionResource;
  7. class DiscussionService
  8. {
  9. public function create(array $data): Discussion
  10. {
  11. if (isset($data['parent'])) {
  12. $parentInfo = Discussion::find($data['parent']);
  13. if (!$parentInfo) {
  14. throw new \Exception('没有找到parent', 500);
  15. }
  16. $data['res_id '] = $parentInfo->res_id;
  17. $data['res_type'] = $parentInfo->res_type;
  18. }
  19. $discussion = Discussion::create($data);
  20. //更新parent children_count
  21. if (isset($data['parent'])) {
  22. $parentInfo->increment('children_count', 1);
  23. $parentInfo->save();
  24. }
  25. if (isset($data['notification']) && $data['notification'] == 'true') {
  26. Mq::publish('discussion', new DiscussionResource($discussion));
  27. }
  28. return $discussion;
  29. }
  30. }