diff --git a/OpenAuth.App/OpenAuth.App.csproj b/OpenAuth.App/OpenAuth.App.csproj index 5a2ff4b..fb5738a 100644 --- a/OpenAuth.App/OpenAuth.App.csproj +++ b/OpenAuth.App/OpenAuth.App.csproj @@ -35,6 +35,7 @@ + diff --git a/OpenAuth.App/ServiceApp/IdleLand/IdleLandApp.cs b/OpenAuth.App/ServiceApp/IdleLand/IdleLandApp.cs index 75c8dc6..cedfc50 100644 --- a/OpenAuth.App/ServiceApp/IdleLand/IdleLandApp.cs +++ b/OpenAuth.App/ServiceApp/IdleLand/IdleLandApp.cs @@ -12,6 +12,8 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using NPinyin; +using Microsoft.International.Converters.PinYinConverter; namespace OpenAuth.App { @@ -139,16 +141,16 @@ namespace OpenAuth.App public async Task GetSequenceGen(decimal lat, decimal lng, string prefix) { - var sql = $" SELECT bsm FROM shp_drone_community where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'"; + var sql = $" SELECT zldwdmid FROM shp_drone_community where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'"; var model = await client.SqlQueryable(sql).FirstAsync(); string bizCode = ""; if (model != null) { - string bsm = model.bsm; - var org = await client.Queryable().FirstAsync(a => a.Id.ToString() == bsm); + string zldwdmid = model.zldwdmid; + var org = await client.Queryable().FirstAsync(a => a.Id.ToString() == zldwdmid); if (org != null) { - bizCode = org.BizCode; + bizCode = org.BizCode+"-"; } else { @@ -161,11 +163,39 @@ namespace OpenAuth.App bizCode = ""; } - var orderNumber = await _sequenceGenerator.NextAsync( - prefix, - $"{prefix}-{{0:00000}}"); + var typeList = prefix.Split('-'); - return bizCode + "-" + orderNumber; + var typeUper = ""; + + foreach (var type in typeList) + { + typeUper += GetPinyinFirstLetters(type) + "-"; + } + + //var orderNumber = await _sequenceGenerator.NextAsync( + // prefix, + // $"{prefix}-{{0:00000}}"); + var orderNumber = await _sequenceGenerator.NextAsync( + typeUper, + $"{typeUper}{{0:00000}}"); + + + return bizCode + orderNumber; + } + + + public static string GetPinyinFirstLetters(string chineseString) + { + StringBuilder sb = new StringBuilder(); + foreach (var character in chineseString) + { + if (ChineseChar.IsValidChar(character)) // 检查是否为汉字 + { + string fullPinyin = Pinyin.GetPinyin(character); + sb.Append(fullPinyin[0].ToString().ToUpper()); + } + } + return sb.ToString(); } } } diff --git a/OpenAuth.WebApi/Controllers/ServiceControllers/IdleLandController.cs b/OpenAuth.WebApi/Controllers/ServiceControllers/IdleLandController.cs index 9b18b07..05ee246 100644 --- a/OpenAuth.WebApi/Controllers/ServiceControllers/IdleLandController.cs +++ b/OpenAuth.WebApi/Controllers/ServiceControllers/IdleLandController.cs @@ -125,6 +125,7 @@ namespace OpenAuth.WebApi.Controllers /// 前置类型 /// [HttpGet] + [AllowAnonymous] public async Task> GetSequenceGen(decimal lat, decimal lng,string prefix) { var result = new Response();