You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

68 lines
2.0 KiB

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Wood.Util;
namespace Wood.Util
{
/// <summary>
/// 生成数据库主键Id
/// </summary>
public class IdGeneratorHelper
{
//private int SnowFlakeWorkerId = GlobalContext.SystemConfig!.SnowFlakeWorkerId;
//private Snowflake snowflake;
private static readonly IdGeneratorHelper instance = new IdGeneratorHelper();
private IdGeneratorHelper()
{
//snowflake = new Snowflake(SnowFlakeWorkerId, 0, 0);
}
public static IdGeneratorHelper Instance
{
get
{
return instance;
}
}
/// <summary>
/// 雪花id
/// </summary>
/// <returns></returns>
public long GetId()
{
return SnowFlakeSingle.Instance.NextId();
}
/// <summary>
/// Guid
/// format
/// N - 32 个数字,没有分隔符
/// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/// D - 使用连字符 (hyphen) 分隔的 32 个数字
/// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
/// B - 使用大括号包围的 D 格式
/// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
/// P - 使用圆括号包围的 D 格式
/// (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
/// X - 使用大括号包围的 X 格式,与 B 类似但每个十六进制值都用大写表示,并且在每组之间添加空格
/// {0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX}
/// Y - 使用大括号包围的 D 格式,但在第三组前添加 "4-" 和 "8-" 前缀以指示版本和变体信息
/// {xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx}
/// </summary>
/// <returns></returns>
public string GetGuid(string format="")
{
if(string.IsNullOrEmpty(format))
{
return Guid.NewGuid().ToString().ToUpper();
}
return Guid.NewGuid().ToString(format).ToUpper();
}
}
}