美文网首页
php生成唯一订单号

php生成唯一订单号

作者: mrpzx001 | 来源:发表于2023-01-13 22:21 被阅读0次

使用 https://github.com/godruoyi/php-snowflake 来生成

<?php

declare(strict_types=1);

use think\facade\Cache;
use think\facade\Config;
use Godruoyi\Snowflake\Snowflake;
use Godruoyi\Snowflake\RedisSequenceResolver;

/**
 * 获取redis实例
 *
 * @return \Redis
 */
function get_redis(): \Redis
{
    return Cache::store()->handler();
}

/**
 * 生成唯一订单号
 * 
 * @param string $prefix 订单号前缀
 * @return string
 */
function build_order_no(string $prefix = ''): string
{
    $options = Config::get('cache.stores.redis');
    $redis = get_redis();
    $snowflake = new Snowflake();
    $sequence = new RedisSequenceResolver($redis);
    $sequence->setCachePrefix($options['prefix'] . 'order_no:');
    $snowflake->setSequenceResolver($sequence);
    return $prefix . $snowflake->id();
}

相关文章

网友评论

      本文标题:php生成唯一订单号

      本文链接:https://www.haomeiwen.com/subject/bskncdtx.html