$code, 'message' => $message, 'data' => $data]); } } //获取加密后的密码 //@param $password string 密码 //@param $salt string 盐值 if (!function_exists('getPassword')) { function getPassword(string $password = '', string $salt = ''): string { return sha1($password . $salt); } } //获取token //@param $admin_id int 运营账号表id //@param $username string 账户 //@param $salt string 盐值 if (!function_exists('makeToken')) { function makeToken(int $admin_id = 0, string $username = '', string $salt = ''): string { $now = time(); $str = $username . $salt . (string)$now; $token = base64_encode($str); AdminTokenModel::handleToken($admin_id, $token); return $token; } } //校验token //@param $salt string 盐值 if (!function_exists('verifyToken')) { function verifyToken(string $token = '') { $has = AdminTokenModel::where(['token' => $token])->findOrEmpty(); if ($has->isEmpty()) throw new ValidateException('token不存在'); if (strtotime($has->expiretime) <= time()) throw new ValidateException('token已失效'); $account = AdminModel::where(['id' => $has['adminid'], 'is_del' => AdminModel::$del_normal])->findOrEmpty(); if ($account->isEmpty()) throw new ValidateException('未找到账户'); if ($account->status != AdminModel::$status_normal) throw new ValidateException('账户已禁用'); $token_str = base64_decode($token); $account_str = substr($token_str, 0, -10); if ($account_str == $account->username . $account->salt) { AdminTokenModel::where(['token' => $token]) ->save(['expiretime' => date('Y-m-d H:i:s', time() + Config::get('common.expire'))]); return ['uid' => $account->id, 'uname' => $account->nickname, 'roleid' => $account->role_id]; } else throw new ValidateException('账户token无效'); } } //发送post的curl请求 if (!function_exists('curl_request')) { function curl_request(string $url = '', array $data = [], array $header = []) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); if ($data) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); } curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true); if (!$header) $header = [ 'uid:' . request()->development['id'], 'nickname:' . request()->development['contactor'], 'mobile:' . request()->development['mobile'], // 'email:', 'supplierNo:' . request()->development['supplierNo'], 'supplierName:' . request()->development['supplierName'] ]; curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); return $data; } } //生成编码 //@param $str string 前缀 if (!function_exists('makeNo')) { function makeNo(string $str = ''): string { $date = date("ymdHis"); // $year = date("Y")-2000; $msec = randomkeys(4); return $str . $msec . $date; } } //生成随机字符串 //@param $length int 长度,默认4 if (!function_exists('randomkeys')) { function randomkeys(int $length = 4): string { $returnStr = ''; $pattern = 'abcdefghijklmnopqrstuvwxyz';//ABCDEFGHIJKLOMNOPQRSTUVWXYZ $min = 0; $max = strlen($pattern) - 1; for ($i = 0; $i < $length; $i++) { $returnStr .= $pattern[mt_rand($min, $max)]; //生成php随机数 } return $returnStr; } } //上传图片 /** * @param $files * @return array */ if (!function_exists('UploadImg')) { function UploadImg($files): array { $savename = []; $files = !is_array($files) ? [$files] : $files; //验证 validate([ 'imgFile' => [ 'fileSize' => 10240000, 'fileExt' => 'jpg,jpeg,png,bmp,gif', 'fileMime' => 'image/jpeg,image/png,image/gif' ] ])->check(['imgFile' => $files]); foreach ($files as $file) { $url = Filesystem::disk('public') ->putFile('topic/' . date("Ymd"), $file, function () use ($file) { return str_replace('.' . $file->getOriginalExtension(), '', $file->getOriginalName() . "_" . date('YmdHis')); }); $name = str_replace('.' . $file->getOriginalExtension(), '', $file->getOriginalName()); $temp = ["url" => $url, "name" => $name]; $savename[] = $temp; } return $savename; } }