php生成唯一订单号

原创
07/02 13:54
阅读数 254

使用 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();
}
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部