| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /**
- * 用户日志仓库.
- *
- * @author jim <jim458734573@gmail.com>
- * @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);
- }
- }
|