* @date 2020-01-29 10:10:06 */ declare(strict_types=1); namespace App\Repositories; use App\Model\TopicCategoryModel; use App\Model\TopicModel; use App\Repositories\Service\CommonService; use Hyperf\Database\Model\Builder; use KZ2\Repositories\Model\Repository; class TopicRepository extends Repository { public function model() { return TopicModel::class; } /** * 创建1个话题. * @param $setarr * @return \Hyperf\DbConnection\Model\Model */ public function createTopic($setarr) { $commonService = make(CommonService::class); $request = request(); $serverParams = $request->getServerParams(); $clientIp = $commonService->getIp(); $arrUa = $request->getHeader('user-agent'); // 取第一个. $ua = current($arrUa); $setarr['ip'] = $clientIp; $setarr['ua'] = $ua; $setarr['total_comment'] = 0; $setarr['total_share'] = 0; $setarr['total_support'] = 0; $setarr['is_top'] = 0; $setarr['is_digest'] = 0; $setarr['sticked_at'] = null; $item = TopicModel::create($setarr); if (!empty($item->id)) { $category = TopicCategoryModel::where('id', $setarr['category_id'])->first(); if (!empty($category)) { // 累加分类下的话题数. $category->total_topic = intval($category->total_topic) + 1; $category->save(); } } return $item; } }