<?php namespace App\Tools; use Hyperf\Snowflake\IdGeneratorInterface; use Hyperf\Context\ApplicationContext; class PublicData { /** * 递归查询 * @param $menuItems * @param $parentId * @return array */ public static function buildMenuTree($menuItems, $parentId = 0) { $tree = []; foreach ($menuItems as $item) { if ($item['pid'] == $parentId) { // 找到子菜单 $children = self::buildMenuTree($menuItems, $item['id']); // 如果子菜单存在,则添加到当前菜单的children中 if ($children) { $item['children'] = $children; } // 将当前菜单添加到树中 $tree[] = $item; } } return $tree; } /** * 计算两个时间差的天数 * @param $sTime * @param $eTime * @return float */ public static function residueDay($sTime,$eTime) { $startTime = strtotime($sTime); $endTime = strtotime($eTime); $diffDays = floor(($endTime - $startTime) / (60 * 60 * 24)); return $diffDays; } public static function uuid() { $container = ApplicationContext::getContainer(); $generator = $container->get(IdGeneratorInterface::class); return $generator->generate(); } public static function http_get($url) { $oCurl = curl_init(); if (stripos($url, "https://") !== false) { curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } /** * POST 请求 * @param string $url * @param array $param * @param boolean $post_file 是否文件上传 * @return string content */ public static function http_post($url, $param, $post_file = false) { $oCurl = curl_init(); if (stripos($url, "https://") !== false) { curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1 } if (is_string($param) || $post_file) { $strPOST = $param; } else { $aPOST = []; foreach ($param as $key => $val) { $aPOST[] = $key . "=" . urlencode($val); } $strPOST = join("&", $aPOST); } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($oCurl, CURLOPT_POST, true); curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if (intval($aStatus["http_code"]) == 200) { return $sContent; } else { return false; } } }