1 && str_starts_with($value, '"') && str_ends_with($value, '"')) { $value = substr($value, 1, -1); } if (strlen($delimiter) > 0) { if (strlen($value) == 0) { $value = $default; } else { $value = explode($delimiter, $value); } } return $value; } } if (!function_exists('value')) { /** * Return the default value of the given value. * * @param mixed $value * @return mixed */ function value($value) { return $value instanceof Closure ? $value() : $value; } } if (!function_exists('str_starts_with')) { /** * Determine if a given string starts with a given substring. * * @param string $haystack * @param string|array $needles * @return bool */ function str_starts_with($haystack, $needles) { foreach ((array)$needles as $needle) { if ($needle !== '' && substr($haystack, 0, strlen($needle)) === (string)$needle) { return true; } } return false; } } if (!function_exists('str_ends_with')) { /** * Determine if a given string ends with a given substring. * * @param string $haystack * @param string|array $needles * @return bool */ function str_ends_with($haystack, $needles) { foreach ((array)$needles as $needle) { if (substr($haystack, -strlen($needle)) === (string)$needle) { return true; } } return false; } } if (!function_exists('define_once')) { /** * Define a const if not exists. * * @param string $name * @param mixed $value * @return bool */ function define_once($name, $value = true) { return defined($name) or define($name, $value); } } if (!function_exists('dd')) { /** * Dump the passed variable and end the script. * * @param mixed $arg * @return void */ function dd($arg) { echo "
";
        // http_response_code(500);
        \yii\helpers\VarDumper::dump($arg);
        die(1);
    }
}

if (!function_exists('array_column')) {
    function array_column(array $input, $columnKey, $indexKey = null) {
        $array = array();
        foreach ($input as $value) {
            if ( !array_key_exists($columnKey, $value)) {
                trigger_error("Key \"$columnKey\" does not exist in array");
                return false;
            }
            if (is_null($indexKey)) {
                $array[] = $value[$columnKey];
            }
            else {
                if ( !array_key_exists($indexKey, $value)) {
                    trigger_error("Key \"$indexKey\" does not exist in array");
                    return false;
                }
                if ( ! is_scalar($value[$indexKey])) {
                    trigger_error("Key \"$indexKey\" does not contain scalar value");
                    return false;
                }
                $array[$value[$indexKey]] = $value[$columnKey];
            }
        }
        return $array;
    }
}
if (!function_exists('pay_notify_url')) {
    /**
     * 拼接支付回调地址
     *
     * @param  string $suffix
     * @return string
     */
    function pay_notify_url($suffix)
    {
        $hostInfo = \Yii::$app->request->hostInfo;
        $protocol = env('PAY_NOTIFY_PROTOCOL', false);
        if ($protocol === 'http') {
            $hostInfo = str_replace('https:', 'http:', $hostInfo);
        }
        if ($protocol === 'https') {
            $hostInfo = str_replace('http:', 'https:', $hostInfo);
        }
        $hostInfo .= \Yii::$app->request->baseUrl . $suffix;
        return $hostInfo;
    }
}

function hj_core_version()
{
    static $version = null;
    if ($version) {
        return $version;
    }
    $file = __DIR__ . '/version.json';
    if (!file_exists($file)) {
        throw new Exception('Version not found');
    }
    $res = json_decode(file_get_contents($file), true);
    if (!is_array($res)) {
        throw new Exception('Version cannot be decoded');
    }
    return $version = $res['version'];
}

function hj_pdo_run($sql)
{
    try {
        $sql = str_replace('hjmall_', WE7_TABLE_PREFIX, $sql);
        \Yii::$app->db->createCommand($sql)->execute();
        // $res = pdo_query($sql);
        return true;
    } catch (Exception $e) {
        return false;
    }
}

function get_plugin()
{
    $route = \Yii::$app->requestedRoute;
    $route = str_replace('\\', '/', $route);
    $match = explode('/', $route);
    return $match;
}

function get_plugin_type()
{
    $plugin = get_plugin();
    $list = [
        'goods' => 0,
        'pond' => 1,
        'bargain' => 2,
        'lottery' => 4,
    ];
    if (isset($list[$plugin[1]])) {
        $type = $list[$plugin[1]];
    } else {
        $type = 0;
    }
    return $type;
}

function get_plugin_url()
{
    $plugin = get_plugin();
    array_pop($plugin);
    return implode('/', $plugin);
}