Server : nginx/1.20.1 System : Linux iZ2ze9ojcl78uluczwag69Z 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64 User : www ( 1000) PHP Version : 7.3.28 Disable Function : passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/0531yanglao.com/app/admin/service/ |
<?php /* * @Description : 设置 * @Author : https://github.com/skyselang * @Date : 2021-03-09 * @LastEditTime : 2021-03-20 */ namespace app\admin\service; use think\facade\Db; use app\common\cache\SettingCache; class SettingService { // 默认设置id private static $setting_id = 1; /** * 验证码设置 * * @param array $param 验证码参数 * @param string $method 请求方式 * * @return array */ public static function verify($param = [], $method = 'get') { if ($method == 'get') { $setting = self::setting(); $verify = $setting['verify']; } else { $setting_id = self::$setting_id; $verify['switch'] = $param['switch']; $verify['curve'] = $param['curve']; $verify['noise'] = $param['noise']; $verify['bgimg'] = $param['bgimg']; $verify['type'] = $param['type']; $verify['length'] = $param['length']; $verify['expire'] = $param['expire']; $update['verify'] = serialize($verify); $update['update_time'] = datetime(); $setting = Db::name('setting') ->where('setting_id', $setting_id) ->update($update); if (empty($setting)) { exception(); } else { SettingCache::del($setting_id); } } $VerifyService = new VerifyService(); $verify = array_merge($verify, $VerifyService->verify()); return $verify; } /** * Token设置 * * @param array $param token参数 * @param string $method 请求方式 * * @return array */ public static function token($param = [], $method = 'get') { if ($method == 'get') { $setting = self::setting(); $token = $setting['token']; } else { $setting_id = self::$setting_id; $token['iss'] = $param['iss']; $token['exp'] = $param['exp']; $update['token'] = serialize($token); $update['update_time'] = datetime(); $setting = Db::name('setting') ->where('setting_id', $setting_id) ->update($update); if (empty($setting)) { exception(); } else { SettingCache::del($setting_id); } } return $token; } /** * 默认设置 * * @return array */ public static function setting() { $setting_id = self::$setting_id; $setting = SettingCache::get($setting_id); if (empty($setting)) { $setting = Db::name('setting') ->where('setting_id', $setting_id) ->find(); if (empty($setting)) { $setting['setting_id'] = $setting_id; $setting['verify'] = serialize([]); $setting['token'] = serialize([]); $setting['create_time'] = datetime(); Db::name('setting') ->insert($setting); } // 验证码 $verify = unserialize($setting['verify']); if (empty($verify)) { $verify['switch'] = false; //开关 $verify['curve'] = false; //曲线 $verify['noise'] = false; //杂点 $verify['bgimg'] = false; //背景图 $verify['type'] = 1; //类型:1数字,2字母,3数字字母,4算术,5中文 $verify['length'] = 4; //位数3-6位 $verify['expire'] = 180; //有效时间(秒) } // Token $token = unserialize($setting['token']); if (empty($token)) { $token['iss'] = 'yylAdmin'; //签发者 $token['exp'] = 7200; //有效时间(小时) } $setting['verify'] = serialize($verify); $setting['token'] = serialize($token); $setting['update_time'] = datetime(); Db::name('setting') ->where('setting_id', $setting_id) ->update($setting); SettingCache::set($setting_id, $setting); $setting['verify'] = $verify; $setting['token'] = $token; } else { $setting['verify'] = unserialize($setting['verify']); $setting['token'] = unserialize($setting['token']); } return $setting; } }