You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.5 KiB
C#
62 lines
1.5 KiB
C#
using Snowflake.Core;
|
|
|
|
namespace DS.Module.Core;
|
|
|
|
/// <summary>
|
|
/// Guid工具类
|
|
/// </summary>
|
|
public class GuidHelper
|
|
{
|
|
/// <summary>
|
|
/// 生成50位有序Guid
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static string GetSequentialGuid()
|
|
{
|
|
string guid = Guid.NewGuid().ToString();
|
|
var timeStr = (DateTime.Now.Ticks / 10000).ToString("x8");
|
|
var newGuid = $"{timeStr.PadLeft(13, '0')}-{guid}";
|
|
return newGuid;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 由连字符分隔的32位数字
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private static string GetGuid()
|
|
{
|
|
System.Guid guid = new Guid();
|
|
guid = Guid.NewGuid();
|
|
return guid.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据GUID获取16位的唯一字符串
|
|
/// </summary>
|
|
/// <param name=\"guid\"></param>
|
|
/// <returns></returns>
|
|
public static string GuidTo16String()
|
|
{
|
|
long i = 1;
|
|
foreach (byte b in Guid.NewGuid().ToByteArray())
|
|
i *= ((int)b + 1);
|
|
return string.Format("{0:x}", i - DateTime.Now.Ticks);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 根据GUID获取19位的唯一数字序列
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static long GuidToLongID()
|
|
{
|
|
byte[] buffer = Guid.NewGuid().ToByteArray();
|
|
return BitConverter.ToInt64(buffer, 0);
|
|
}
|
|
|
|
public static string GetSnowflakeId()
|
|
{
|
|
var worker = new IdWorker(1, 1);
|
|
long id = worker.NextId();
|
|
return id.ToString();
|
|
}
|
|
} |