123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- <?php
- /**
- * Here is your custom functions.
- */
- use support\Response;
- if (!function_exists('http_post')) {
- function http_post($url, $params)
- {
- $ch = curl_init();
- $this_header = array("content-type: application/x-www-form-urlencoded;charset=UTF-8");
- curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
- curl_setopt($ch, CURLOPT_TIMEOUT, 30);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//如果不加验证,就设false,商户自行处理
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
- $output = curl_exec($ch);
- curl_close($ch);
- return $output;
- }
- }
- if (!function_exists('http_post_json')) {
- function http_post_json($url, $params)
- {
- try {
- $ch = curl_init();
- $this_header = array('Content-Type: application/json;charset=UTF-8');
- curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
- curl_setopt($ch, CURLOPT_TIMEOUT, 30);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//如果不加验证,就设false,商户自行处理
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
- $output = curl_exec($ch);
- curl_close($ch);
- // 写日志
- if (is_json($output)) {
- \support\Log::info('模拟请求:', json_decode($output, true));
- } else {
- \support\Log::info('模拟请求,返回异常:', ['msg' => (string)$output]);
- }
- return $output;
- } catch (\Exception $e) {
- \support\Log::info('模拟请求失败:', ['msg' => $e->getMessage()]);
- }
- }
- }
- if (!function_exists('month_12')) {
- function month_12()
- {
- $months = [];
- for ($i = 0; $i < 12; $i++) {
- $months[$i] = date('Y/m', strtotime(date('Y-m-01') . "-" . $i . "month"));
- }
- return $months;
- }
- }
- /**
- * @Desc 管理员操作日志
- * @Author Gorden
- * @Date 2024/3/29 17:07
- *
- * adminId = 1001 计划任务
- *
- *
- * @param $name
- * @param $operation
- * @return void
- */
- if (!function_exists('_syslog')) {
- function _syslog($name, $operation, $operationData = false, $requestParams = false, $adminId = false)
- {
- try {
- $adminId = $adminId ? $adminId : \Tinywan\Jwt\JwtToken::getCurrentId();
- } catch (\Exception $e) {
- $adminId = 1001;
- }
- $logAdminId = $adminId;
- $model = new \app\model\SysLog();
- $model->log_admin_id = $logAdminId;
- $model->log_name = $name;
- $model->log_route = \request() && \request()->uri() ? \request()->uri() : (\request() && \request()->route && \request()->route->getPath() ? \request()->route->getPath() : '');
- $model->log_operation = $operation;
- $model->log_ip = \request() && \request()->getRealIp() ? \request()->getRealIp() : '0.0.0.0';
- $model->log_request_params = $requestParams ? json_encode($requestParams) : ($adminId == 1001 ? '[]' : json_encode(\request()->all()));
- $model->log_operation_data = $operationData ? json_encode($operationData) : null;
- $model->save();
- }
- }
- if (!function_exists('json_throw')) {
- function json_throw($code, $message, $data = '', $options = JSON_UNESCAPED_UNICODE)
- {
- $return = [
- 'code' => $code,
- 'message' => $message,
- 'data' => $data,
- ];
- return new \support\Response(200, ['Content-Type' => 'application/json'], json_encode($return, $options));
- }
- }
- if (!function_exists('json_success')) {
- function json_success($message, $data = '', $options = JSON_UNESCAPED_UNICODE)
- {
- $return = [
- 'code' => 200,
- 'message' => $message,
- 'data' => $data,
- ];
- return new Response(200, ['Content-Type' => 'application/json'], json_encode($return, $options));
- }
- }
- if (!function_exists('json_fail')) {
- function json_fail($message, $options = JSON_UNESCAPED_UNICODE)
- {
- $return = [
- 'code' => 0,
- 'message' => $message,
- 'data' => ''
- ];
- return new Response(200, ['Content-Type' => 'application/json'], json_encode($return, $options));
- }
- }
- if (!function_exists('format_string')) {
- function format_string($string)
- {
- return htmlspecialchars(strip_tags($string));
- }
- }
- if (!function_exists('random_string')) {
- function random_string($length, $type = 'all')
- {
- $string = 'abcdefghijklmnopqrstuvwxyz';
- $stringUp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $number = '0123456789';
- switch ($type) {
- case 'all':
- $result = $string . $number;
- break;
- case 'string':
- $result = $string;
- break;
- case 'up':
- $result = $stringUp . $number;
- break;
- case 'number':
- $result = $number;
- break;
- default:
- $result = '';
- break;
- }
- $return = '';
- $totalLength = strlen($result);
- for ($i = 0; $i < $length; $i++) {
- $return .= $result[mt_rand(0, $totalLength - 1)];
- }
- return $return;
- }
- }
- if (!function_exists('is_json')) {
- /**
- * @Desc 验证是否是json数据
- * @Author Gorden
- * @Date 2024/2/22 15:37
- *
- * @param $string
- * @return bool
- */
- function is_json($string)
- {
- if (!is_string($string)) {
- return false;
- }
- json_decode($string);
- if (json_last_error() === JSON_ERROR_NONE) {
- return true;
- }
- return false;
- }
- }
- if (!function_exists('chinese_week')) {
- /**
- * @Desc 周几-汉字
- * @Author Gorden
- * @Date 2024/3/5 17:29
- *
- * @param $week
- * @return string
- */
- function chinese_week($week)
- {
- $weekArray = ['日', '一', '二', '三', '四', '五', '六'];
- return '周' . $weekArray[$week];
- }
- }
- if (!function_exists('hexToRgb')) {
- /**
- * @Desc 颜色值转RGB
- * @Author Gorden
- * @Date 2024/5/15 17:22
- *
- * @param $hexColor
- * @return mixed
- */
- function hexToRgb($hexColor, $type = "string")
- {
- // 使用substr函数去掉前缀的'#'
- $hexColor = ltrim($hexColor, '#');
- // 使用hexdec函数将十六进制转换为十进制
- $red = hexdec(substr($hexColor, 0, 2));
- $green = hexdec(substr($hexColor, 2, 2));
- $blue = hexdec(substr($hexColor, 4, 2));
- if ($type == "string") {
- // rgb(46, 209, 153)
- return "rgb(" . $red . ", " . $green . ", " . $blue . ")";
- }
- return array('red' => $red, 'green' => $green, 'blue' => $blue);
- }
- }
- if (!function_exists('rgbToHex')) {
- function rgbToHex($rgb)
- {
- if (substr($rgb, 0, 3) == 'rgb') {
- $rgb = str_replace("rgb(", '', $rgb);
- $rgb = str_replace(")", "", $rgb);
- [$red, $green, $blue] = explode(',', $rgb);
- $hexRed = dechex($red);
- $hexGreen = dechex($green);
- $hexBlue = dechex($blue);
- // 如果颜色分量不足两位,前面补零
- $hexRed = strlen($hexRed) == 1 ? '0' . $hexRed : $hexRed;
- $hexGreen = strlen($hexGreen) == 1 ? '0' . $hexGreen : $hexGreen;
- $hexBlue = strlen($hexBlue) == 1 ? '0' . $hexBlue : $hexBlue;
- return "#" . $hexRed . $hexGreen . $hexBlue;
- }
- return "";
- }
- }
|