* @date 2020-01-29 14:43:58 */ declare(strict_types=1); namespace App\Repositories; use App\Model\Mongo\SearchLogModel; use Carbon\Carbon; use App\Model\UserLogModel; use App\Repositories\Service\CommonService; use Hyperf\Database\Model\Builder; use KZ2\Repositories\Model\Repository; class UserLogRepository extends Repository { public function model() { return UserLogModel::class; } /** * 创建一个日志. * @param $inputs * @return \Hyperf\DbConnection\Model\Model */ public function createOne($inputs) { $commonService = make(CommonService::class); $request = request(); $serverParams = $request->getServerParams(); $clientIp = $commonService->getIp(); $arrUa = $request->getHeader('user-agent'); // 取第一个. $ua = current($arrUa); $userId = data_get($inputs, 'user_id', ''); $subject = $inputs['subject']; // 一定是主题的. $module = data_get($inputs, 'module', ''); $action = data_get($inputs, 'action', ''); $svalue = data_get($inputs, 'svalue', ''); $setarr = [ 'user_id' => $userId, 'subject' => $subject, 'module' => $module, 'action' => $action, 'svalue' => $svalue, 'ip' => $clientIp, 'ua' => $ua, ]; $log = UserLogModel::create($setarr); unset($inputs, $setarr); return $log; } /** * 记录搜索日志. * @param $eventName * @param $userCode * @param $keywords * @param string $module * @return \MongoDB\InsertOneResult */ public function recordSearchLog($eventName, $userCode, $keywords, $module = '') { $logObj = make(SearchLogModel::class); $nowDate = toMongoIsoDate(Carbon::now()); $setarr = [ 'event_name' => $eventName, 'user_uid' => (string)$userCode, 'keywords' => (string)$keywords, 'module' => $module, 'created_at' => $nowDate, ]; return $logObj->db()->insertOne($setarr); } }