TopicRepository.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * 话题仓库.
  4. *
  5. * @author jim <jim458734573@gmail.com>
  6. * @date 2020-01-29 10:10:06
  7. */
  8. declare(strict_types=1);
  9. namespace App\Repositories;
  10. use App\Model\TopicCategoryModel;
  11. use App\Model\TopicModel;
  12. use App\Repositories\Service\CommonService;
  13. use Hyperf\Database\Model\Builder;
  14. use KZ2\Repositories\Model\Repository;
  15. class TopicRepository extends Repository
  16. {
  17. public function model()
  18. {
  19. return TopicModel::class;
  20. }
  21. /**
  22. * 创建1个话题.
  23. * @param $setarr
  24. * @return \Hyperf\DbConnection\Model\Model
  25. */
  26. public function createTopic($setarr)
  27. {
  28. $commonService = make(CommonService::class);
  29. $request = request();
  30. $serverParams = $request->getServerParams();
  31. $clientIp = $commonService->getIp();
  32. $arrUa = $request->getHeader('user-agent');
  33. // 取第一个.
  34. $ua = current($arrUa);
  35. $setarr['ip'] = $clientIp;
  36. $setarr['ua'] = $ua;
  37. $setarr['total_comment'] = 0;
  38. $setarr['total_share'] = 0;
  39. $setarr['total_support'] = 0;
  40. $setarr['is_top'] = 0;
  41. $setarr['is_digest'] = 0;
  42. $setarr['sticked_at'] = null;
  43. $item = TopicModel::create($setarr);
  44. if (!empty($item->id)) {
  45. $category = TopicCategoryModel::where('id', $setarr['category_id'])->first();
  46. if (!empty($category)) {
  47. // 累加分类下的话题数.
  48. $category->total_topic = intval($category->total_topic) + 1;
  49. $category->save();
  50. }
  51. }
  52. return $item;
  53. }
  54. }