mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-03-22 14:27:21 +08:00
【优化】将系统常见多种编号生成方式修改为雪花漂移算法。
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||||
<PackageReference Include="NPOI" Version="2.4.1" />
|
<PackageReference Include="NPOI" Version="2.4.1" />
|
||||||
<PackageReference Include="ToolGood.Words" Version="3.0.3.1" />
|
<PackageReference Include="ToolGood.Words" Version="3.0.3.1" />
|
||||||
|
<PackageReference Include="Yitter.IdGenerator" Version="1.0.12" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using System.Text;
|
|||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using CoreCms.Net.Configuration;
|
using CoreCms.Net.Configuration;
|
||||||
using CoreCms.Net.Model.ViewModels.Basics;
|
using CoreCms.Net.Model.ViewModels.Basics;
|
||||||
|
using Yitter.IdGenerator;
|
||||||
|
|
||||||
namespace CoreCms.Net.Utility.Helper
|
namespace CoreCms.Net.Utility.Helper
|
||||||
{
|
{
|
||||||
@@ -238,31 +239,31 @@ namespace CoreCms.Net.Utility.Helper
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case (int)GlobalEnumVars.SerialNumberType.订单编号: //订单编号
|
case (int)GlobalEnumVars.SerialNumberType.订单编号: //订单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.支付单编号: //支付单编号
|
case (int)GlobalEnumVars.SerialNumberType.支付单编号: //支付单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.商品编号: //商品编号
|
case (int)GlobalEnumVars.SerialNumberType.商品编号: //商品编号
|
||||||
str = 'G' + Msectime() + rand.Next(0, 5);
|
str = 'G' + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.货品编号: //货品编号
|
case (int)GlobalEnumVars.SerialNumberType.货品编号: //货品编号
|
||||||
str = 'P' + Msectime() + rand.Next(0, 5);
|
str = 'P' + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.售后单编号: //售后单编号
|
case (int)GlobalEnumVars.SerialNumberType.售后单编号: //售后单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.退款单编号: //退款单编号
|
case (int)GlobalEnumVars.SerialNumberType.退款单编号: //退款单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.退货单编号: //退货单编号
|
case (int)GlobalEnumVars.SerialNumberType.退货单编号: //退货单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.发货单编号: //发货单编号
|
case (int)GlobalEnumVars.SerialNumberType.发货单编号: //发货单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.服务订单编号: //服务订单编号
|
case (int)GlobalEnumVars.SerialNumberType.服务订单编号: //服务订单编号
|
||||||
str = type + Msectime() + rand.Next(0, 9);
|
str = type + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
case (int)GlobalEnumVars.SerialNumberType.提货单号: //提货单号
|
case (int)GlobalEnumVars.SerialNumberType.提货单号: //提货单号
|
||||||
//str = 'T' + type + msectime() + rand.Next(0, 5);
|
//str = 'T' + type + msectime() + rand.Next(0, 5);
|
||||||
@@ -286,7 +287,7 @@ namespace CoreCms.Net.Utility.Helper
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
str = 'T' + Msectime() + rand.Next(0, 9);
|
str = 'T' + YitIdHelper.NextId().ToString();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
|
|||||||
@@ -140,14 +140,18 @@ namespace CoreCms.Net.Web.Admin
|
|||||||
p.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
|
p.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 雪花漂移算法
|
// 雪花漂移算法
|
||||||
// 创建 IdGeneratorOptions 对象,请在构造函数中输入 WorkerId:
|
// 创建 IdGeneratorOptions 对象,请在构造函数中输入 WorkerId:
|
||||||
var options = new IdGeneratorOptions(1);
|
var options = new IdGeneratorOptions(1);
|
||||||
|
// WorkerIdBitLength 默认值6,支持的 WorkerId 最大值为2^6-1,若 WorkerId 超过64,可设置更大的 WorkerIdBitLength
|
||||||
|
// options.WorkerIdBitLength = 10;
|
||||||
|
// ...... 其它参数设置参考 IdGeneratorOptions 定义,一般来说,只要再设置 WorkerIdBitLength (决定 WorkerId 的最大值)。
|
||||||
|
|
||||||
// 保存参数(必须的操作,否则以上设置都不能生效):
|
// 保存参数(必须的操作,否则以上设置都不能生效):
|
||||||
YitIdHelper.SetIdGenerator(options);
|
YitIdHelper.SetIdGenerator(options);
|
||||||
|
|
||||||
|
// 初始化以后,即可在任何需要生成ID的地方,调用以下方法:
|
||||||
|
//var newId = YitIdHelper.NextId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ using CoreCms.Net.WeChat.Service.Mediator;
|
|||||||
using Essensoft.Paylink.Alipay;
|
using Essensoft.Paylink.Alipay;
|
||||||
using Essensoft.Paylink.WeChatPay;
|
using Essensoft.Paylink.WeChatPay;
|
||||||
using MediatR;
|
using MediatR;
|
||||||
|
using Yitter.IdGenerator;
|
||||||
|
|
||||||
namespace CoreCms.Net.Web.WebApi
|
namespace CoreCms.Net.Web.WebApi
|
||||||
{
|
{
|
||||||
@@ -152,7 +153,18 @@ namespace CoreCms.Net.Web.WebApi
|
|||||||
p.SerializerSettings.DateFormatString = "yyyy/MM/dd HH:mm:ss";
|
p.SerializerSettings.DateFormatString = "yyyy/MM/dd HH:mm:ss";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 雪花漂移算法
|
||||||
|
// 创建 IdGeneratorOptions 对象,请在构造函数中输入 WorkerId:
|
||||||
|
var options = new IdGeneratorOptions(1);
|
||||||
|
// WorkerIdBitLength 默认值6,支持的 WorkerId 最大值为2^6-1,若 WorkerId 超过64,可设置更大的 WorkerIdBitLength
|
||||||
|
// options.WorkerIdBitLength = 10;
|
||||||
|
// ...... 其它参数设置参考 IdGeneratorOptions 定义,一般来说,只要再设置 WorkerIdBitLength (决定 WorkerId 的最大值)。
|
||||||
|
|
||||||
|
// 保存参数(必须的操作,否则以上设置都不能生效):
|
||||||
|
YitIdHelper.SetIdGenerator(options);
|
||||||
|
|
||||||
|
// 初始化以后,即可在任何需要生成ID的地方,调用以下方法:
|
||||||
|
//var newId = YitIdHelper.NextId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user