initJwtManager(); } /** * 初始化获取jwt管理员信息. * @return void */ protected function initJwtManager() { $managerInfo = $this->getCurrentManagerInfo(); if (!empty($managerInfo)) { Context::set($this->ctMnanagerInfo, $managerInfo); Context::set($this->ctManagerId, $managerInfo['manager_id']); Context::set($this->ctRoleId, $managerInfo['role_id']); } } /** * 记录操作日志. * @param string $subject 主题. * @param string $svalue 关联数据. * @param array $dbData 此数组数据结构一定要是["after_items" => [0, 1, 2], "before_items" => [0, 1, 2]], after_items,before_items 是一个二维码数组. * @return bool */ protected function log(string $subject, $svalue = '', $dbData = []) { $manager = $this->getCurrentManger(); list($module, $action) = $this->getModuleAndAction(); $inputs = [ 'manager_id' => !empty($manager->manager_id) ? (string)$manager->manager_id : '', 'username' => '', 'nick' => '', 'subject' => mb_strcut((string)$subject, 0, 700), 'module' => $module, 'action' => $action, 'svalue' => !empty($svalue) ? mb_strcut((string)$svalue, 0, 700) : '', 'db_data' => $dbData, ]; if (!empty($manager)) { $inputs['username'] = $manager->username; $inputs['nick'] = $manager->nick; } $this->getLogRepo()->createOne($inputs); return true; } /** * 获取日志仓库. * @return ManagerLogRepository|null */ protected function getLogRepo() { return make(ManagerLogRepository::class); } /** * 获取当前管理员对象信息. * @return \Hyperf\Database\Model\Builder|\Hyperf\Database\Model\Model|object|null */ protected function getCurrentManger() { $managerInfo = $this->getCurrentManagerInfo(); return ManagerModel::with(['role'])->where('manager_id', $managerInfo['manager_id'])->first(); } /** * 获取当前管理员信息. * @return array */ protected function getCurrentManagerInfo() { $managerInfo = Context::get($this->ctMnanagerInfo, []); if (empty($managerInfo)) { $authService = new AuthService(); $managerInfo = $authService->getManagerInfo(); } return $managerInfo; } }