diff --git a/APIJSON.NET/APIJSON.NET.sln b/APIJSON.NET/APIJSON.NET.sln index bf956bf..4c1e774 100644 --- a/APIJSON.NET/APIJSON.NET.sln +++ b/APIJSON.NET/APIJSON.NET.sln @@ -1,12 +1,14 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.2035 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28803.202 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "APIJSON.NET", "APIJSON.NET\APIJSON.NET.csproj", "{FF647576-A104-4D54-954D-3547B4FDCDB2}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "APIJSON.NET.Test", "APIJSON.NET.Test\APIJSON.NET.Test.csproj", "{0828346E-207E-49F8-AD57-E1AB6B6E4077}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ApiJson.Common", "APIJSONCommon\ApiJson.Common.csproj", "{3B79D4FD-0BC7-49FD-A3DD-E514433B4B35}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {0828346E-207E-49F8-AD57-E1AB6B6E4077}.Debug|Any CPU.Build.0 = Debug|Any CPU {0828346E-207E-49F8-AD57-E1AB6B6E4077}.Release|Any CPU.ActiveCfg = Release|Any CPU {0828346E-207E-49F8-AD57-E1AB6B6E4077}.Release|Any CPU.Build.0 = Release|Any CPU + {3B79D4FD-0BC7-49FD-A3DD-E514433B4B35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B79D4FD-0BC7-49FD-A3DD-E514433B4B35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B79D4FD-0BC7-49FD-A3DD-E514433B4B35}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B79D4FD-0BC7-49FD-A3DD-E514433B4B35}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/APIJSON.NET/APIJSON.NET/APIJSON.NET.csproj b/APIJSON.NET/APIJSON.NET/APIJSON.NET.csproj index 01fe4ec..634243e 100644 --- a/APIJSON.NET/APIJSON.NET/APIJSON.NET.csproj +++ b/APIJSON.NET/APIJSON.NET/APIJSON.NET.csproj @@ -4,6 +4,10 @@ netcoreapp2.2 + + + + @@ -16,7 +20,7 @@ - + @@ -24,12 +28,15 @@ - + + + + diff --git a/APIJSON.NET/APIJSON.NET/Controllers/JsonController.cs b/APIJSON.NET/APIJSON.NET/Controllers/JsonController.cs index 709aa4a..1fd8d2e 100644 --- a/APIJSON.NET/APIJSON.NET/Controllers/JsonController.cs +++ b/APIJSON.NET/APIJSON.NET/Controllers/JsonController.cs @@ -12,6 +12,10 @@ using APIJSON.NET.Services; using System.Reflection; using Microsoft.AspNetCore.Cors; + using System.Threading.Tasks; + using System.IO; + using System.Text; + using System.Net.Http; [Route("api/[controller]")] [ApiController] @@ -22,14 +26,28 @@ public class JsonController : ControllerBase private SelectTable selectTable; private DbContext db; private readonly IIdentityService _identitySvc; - public JsonController(SelectTable _selectTable, DbContext _db,IIdentityService identityService) - { + private ITableMapper _tableMapper; - selectTable = _selectTable; + public JsonController(IIdentityService identityService, ITableMapper tableMapper, DbContext _db) + { db = _db; + _tableMapper = tableMapper; _identitySvc = identityService; + selectTable = new SelectTable(_identitySvc, _tableMapper, _db.Db); + } + + /// + /// + /// + /// + [HttpGet("/test")] + public ActionResult Test() + { + string str = "{\"page\":1,\"count\":3,\"query\":2,\"Org\":{\"@column\":\"Id,Name\"}}"; + var content = new StringContent(str); + return Ok(content); } - + /// /// 查询 /// @@ -37,138 +55,43 @@ public JsonController(SelectTable _selectTable, DbContext _db,IIdentityService i /// [HttpPost("/get")] - public ActionResult Query([FromBody] JObject jobject) + public async Task Query([FromBody] JObject jobject) { - JObject ht = new JObject(); - ht.Add("code", "200"); - ht.Add("msg", "success"); - try - { - int page = 0, count = 0, query = 0, total = 0; - foreach (var item in jobject) - { - string key = item.Key.Trim(); - JObject jb; - if (key.Equals("[]")) - { - jb = JObject.Parse(item.Value.ToString()); - page = jb["page"] == null ? 0 : int.Parse(jb["page"].ToString()); - count = jb["count"] == null ? 0 : int.Parse(jb["count"].ToString()); - query = jb["query"] == null ? 0 : int.Parse(jb["query"].ToString()); - jb.Remove("page"); jb.Remove("count"); jb.Remove("query"); - var htt = new JArray(); - List tables = new List(), where = new List(); - foreach (var t in jb) - { - tables.Add(t.Key); where.Add(t.Value.ToString()); - } - if (tables.Count > 0) - { - string table = tables[0]; - var temp = selectTable.GetTableData(table, page, count, where[0], null); - if (query > 0) - { - total = temp.Item2; - } - - foreach (var dd in temp.Item1) - { - var zht = new JObject(); - zht.Add(table, JToken.FromObject(dd)); - for (int i = 1; i < tables.Count; i++) - { - string subtable = tables[i]; - if (subtable.EndsWith("[]")) - { - subtable = subtable.TrimEnd("[]".ToCharArray()); - var jbb = JObject.Parse(where[i]); - page = jbb["page"] == null ? 0 : int.Parse(jbb["page"].ToString()); - count = jbb["count"] == null ? 0 : int.Parse(jbb["count"].ToString()); + JObject resultJobj = new SelectTable(_identitySvc, _tableMapper, db.Db).Query(jobject); + return Ok(resultJobj); + } - var lt = new JArray(); - foreach (var d in selectTable.GetTableData(subtable, page, count, jbb[subtable].ToString(), zht).Item1) - { - lt.Add(JToken.FromObject(d)); - } - zht.Add(tables[i], lt); - } - else - { - var ddf = selectTable.GetFirstData(subtable, where[i].ToString(), zht); - if (ddf != null) - { - zht.Add(subtable, JToken.FromObject(ddf)); + [HttpPost("/{table}")] + public async Task QueryByTable([FromRoute]string table) + { + string json = string.Empty; + using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) + { + json = await reader.ReadToEndAsync(); + } - } - } - } - htt.Add(zht); - } + json = HttpUtility.UrlDecode(json); + JObject ht = new JObject(); - } - if (query != 1) - { - ht.Add("[]", htt); - } - } - else if (key.EndsWith("[]")) - { - jb = JObject.Parse(item.Value.ToString()); - page = jb["page"] == null ? 0 : int.Parse(jb["page"].ToString()); - count = jb["count"] == null ? 0 : int.Parse(jb["count"].ToString()); - query = jb["query"] == null ? 0 : int.Parse(jb["query"].ToString()); - jb.Remove("page"); jb.Remove("count"); jb.Remove("query"); - var htt = new JArray(); - foreach (var t in jb) - { - foreach (var d in selectTable.GetTableData(t.Key, page, count, t.Value.ToString(), null).Item1) - { - htt.Add(JToken.FromObject(d)); - } - } - ht.Add(key, htt); - } - else if (key.Equals("func")) - { - jb = JObject.Parse(item.Value.ToString()); - Type type = typeof(FuncList); - Object obj = Activator.CreateInstance(type); - var bb = new JObject(); - foreach (var f in jb) - { - var types = new List(); - var param = new List(); - foreach (var va in JArray.Parse(f.Value.ToString())) - { - types.Add(typeof(object)); - param.Add(va); - } - bb.Add(f.Key, JToken.FromObject(selectTable.ExecFunc(f.Key,param.ToArray(), types.ToArray()))); - } - ht.Add("func", bb); - } - else if (key.Equals("total@")) - { - ht.Add("total", total); - } - else - { - var template = selectTable.GetFirstData(key, item.Value.ToString(), ht); - if (template != null) - { - ht.Add(key, JToken.FromObject(template)); - } - } + JObject jobject = JObject.Parse(json); + ht.Add(table + "[]", jobject); + ht.Add("total@", ""); + bool hasTableKey = false; + foreach (var item in jobject) + { + if (item.Key.Equals(table, StringComparison.CurrentCultureIgnoreCase)) + { + hasTableKey = true; + break; } } - catch (Exception ex) + if (!hasTableKey) { - ht["code"] = "500"; - ht["msg"] = ex.Message; - + jobject.Add(table, new JObject()); } - return Ok(ht); + + return await Query(ht); } /// /// 新增 @@ -178,14 +101,14 @@ public ActionResult Query([FromBody] JObject jobject) [HttpPost("/add")] public ActionResult Add([FromBody]JObject jobject) { - + JObject ht = new JObject(); ht.Add("code", "200"); ht.Add("msg", "success"); try { - - + + foreach (var item in jobject) { @@ -248,12 +171,12 @@ public ActionResult Edit([FromBody]JObject jobject) var dt = new Dictionary(); foreach (var f in value) { - if (f.Key.ToLower() != "id"&& selectTable.IsCol(key,f.Key) && (role.Update.Column.Contains ("*")||role.Update.Column.Contains(f.Key, StringComparer.CurrentCultureIgnoreCase))) + if (f.Key.ToLower() != "id" && selectTable.IsCol(key, f.Key) && (role.Update.Column.Contains("*") || role.Update.Column.Contains(f.Key, StringComparer.CurrentCultureIgnoreCase))) { dt.Add(f.Key, f.Value.ToString()); } } - db.Db.Updateable(dt).AS(key).Where("id=@id" ,new { id= value["id"].ToString() }).ExecuteCommand(); + db.Db.Updateable(dt).AS(key).Where("id=@id", new { id = value["id"].ToString() }).ExecuteCommand(); ht.Add(key, JToken.FromObject(new { code = 200, msg = "success", id = value["id"].ToString() })); } } @@ -285,13 +208,13 @@ public ActionResult Remove([FromBody]JObject jobject) var value = JObject.Parse(item.Value.ToString()); var sb = new System.Text.StringBuilder(100); sb.Append($"delete FROM {key} where "); - if (role.Delete==null||role.Delete.Table==null) + if (role.Delete == null || role.Delete.Table == null) { ht["code"] = "500"; ht["msg"] = "delete权限未配置"; break; } - if (!role.Delete.Table.Contains(key,StringComparer.CurrentCultureIgnoreCase)) + if (!role.Delete.Table.Contains(key, StringComparer.CurrentCultureIgnoreCase)) { ht["code"] = "500"; ht["msg"] = $"没权限删除{key}"; diff --git a/APIJSON.NET/APIJSON.NET/Services/IdentityService.cs b/APIJSON.NET/APIJSON.NET/Services/IdentityService.cs index ea2f65d..dce67b4 100644 --- a/APIJSON.NET/APIJSON.NET/Services/IdentityService.cs +++ b/APIJSON.NET/APIJSON.NET/Services/IdentityService.cs @@ -15,7 +15,7 @@ public class IdentityService : IIdentityService private IHttpContextAccessor _context; private List roles; - public IdentityService(IHttpContextAccessor context,IOptions> _roles) + public IdentityService(IHttpContextAccessor context, IOptions> _roles) { _context = context ?? throw new ArgumentNullException(nameof(context)); roles = _roles.Value; @@ -24,7 +24,7 @@ public string GetUserIdentity() { return _context.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); } - + public string GetUserRoleName() { return _context.HttpContext.User.FindFirstValue(ClaimTypes.Role); @@ -50,7 +50,7 @@ public Role GetRole() { return (false, $"appsettings.json权限配置不正确!"); } - string tablerole = role.Select.Table.FirstOrDefault(it => it.Equals(table, StringComparison.CurrentCultureIgnoreCase)); + string tablerole = role.Select.Table.FirstOrDefault(it => it == "*" || it.Equals(table, StringComparison.CurrentCultureIgnoreCase)); if (string.IsNullOrEmpty(tablerole)) { diff --git a/APIJSON.NET/APIJSON.NET/appsettings.json b/APIJSON.NET/APIJSON.NET/appsettings.json index 6e284d5..da52e61 100644 --- a/APIJSON.NET/APIJSON.NET/appsettings.json +++ b/APIJSON.NET/APIJSON.NET/appsettings.json @@ -1,7 +1,7 @@ { "ConnectionStrings": { - "DbType": 1, //0:MySql,1:SqlServer,2:Sqlite - "ConnectionString": "Server=LIAOZENGBO\\SQL2012; Database=Testdb; User Id=sa;Password=sa123;" + "DbType": 0, //0:MySql,1:SqlServer,2:Sqlite + "ConnectionString": "Server=192.168.2.25;Database=yunwei;Uid=root;Pwd=xmjk;Port=3306;Character Set=utf8;" //"ConnectionString": "Server=119.29.9.25;Port=3306;Database=test;Uid=root;Pwd=1q,2w.3e?;CharSet=UTF8;" }, "Authentication": { @@ -42,7 +42,7 @@ ], "tablempper": //ӳ { - "user": "apijson_user" + "user": "apijson_user", + "org": "web_organization" } - } diff --git a/APIJSON.NET/APIJSON.NET/wwwroot/index.html b/APIJSON.NET/APIJSON.NET/wwwroot/index.html index 25b5f98..4c8f534 100644 --- a/APIJSON.NET/APIJSON.NET/wwwroot/index.html +++ b/APIJSON.NET/APIJSON.NET/wwwroot/index.html @@ -35,7 +35,8 @@ - + + diff --git a/APIJSON.NET/APIJSONCommon/ApiJson.Common.csproj b/APIJSON.NET/APIJSONCommon/ApiJson.Common.csproj new file mode 100644 index 0000000..982e808 --- /dev/null +++ b/APIJSON.NET/APIJSONCommon/ApiJson.Common.csproj @@ -0,0 +1,17 @@ + + + + netstandard2.0 + + + + + + + + + + + + + diff --git a/APIJSON.NET/APIJSON.NET/FuncList.cs b/APIJSON.NET/APIJSONCommon/FuncList.cs similarity index 100% rename from APIJSON.NET/APIJSON.NET/FuncList.cs rename to APIJSON.NET/APIJSONCommon/FuncList.cs diff --git a/APIJSON.NET/APIJSON.NET/Infrastructure/StringExtensions.cs b/APIJSON.NET/APIJSONCommon/Infrastructure/StringExtensions.cs similarity index 100% rename from APIJSON.NET/APIJSON.NET/Infrastructure/StringExtensions.cs rename to APIJSON.NET/APIJSONCommon/Infrastructure/StringExtensions.cs diff --git a/APIJSON.NET/APIJSON.NET/Models/DbOptions.cs b/APIJSON.NET/APIJSONCommon/Models/DbOptions.cs similarity index 100% rename from APIJSON.NET/APIJSON.NET/Models/DbOptions.cs rename to APIJSON.NET/APIJSONCommon/Models/DbOptions.cs diff --git a/APIJSON.NET/APIJSON.NET/Models/RoleItem.cs b/APIJSON.NET/APIJSONCommon/Models/RoleItem.cs similarity index 100% rename from APIJSON.NET/APIJSON.NET/Models/RoleItem.cs rename to APIJSON.NET/APIJSONCommon/Models/RoleItem.cs diff --git a/APIJSON.NET/APIJSON.NET/SelectTable.cs b/APIJSON.NET/APIJSONCommon/SelectTable.cs similarity index 63% rename from APIJSON.NET/APIJSON.NET/SelectTable.cs rename to APIJSON.NET/APIJSONCommon/SelectTable.cs index e438c02..502e687 100644 --- a/APIJSON.NET/APIJSON.NET/SelectTable.cs +++ b/APIJSON.NET/APIJSONCommon/SelectTable.cs @@ -15,12 +15,13 @@ public class SelectTable { private readonly IIdentityService _identitySvc; private readonly ITableMapper _tableMapper; - private readonly DbContext db; - public SelectTable(IIdentityService identityService, ITableMapper tableMapper, DbContext _db) + private readonly SqlSugarClient db; + + public SelectTable(IIdentityService identityService, ITableMapper tableMapper, SqlSugarClient dbClient) { _identitySvc = identityService; _tableMapper = tableMapper; - db = _db; + db = dbClient; } /// /// 判断表名是否正确 @@ -29,7 +30,7 @@ public SelectTable(IIdentityService identityService, ITableMapper tableMapper, D /// public bool IsTable(string table) { - return db.Db.DbMaintenance.GetTableInfoList().Any(it => it.Name.Equals(table, StringComparison.CurrentCultureIgnoreCase)); + return db.DbMaintenance.GetTableInfoList().Any(it => it.Name.Equals(table, StringComparison.CurrentCultureIgnoreCase)); } /// /// 判断表的列名是否正确 @@ -39,7 +40,7 @@ public bool IsTable(string table) /// public bool IsCol(string table, string col) { - return db.Db.DbMaintenance.GetColumnInfosByTableName(table).Any(it => it.DbColumnName.Equals(col, StringComparison.CurrentCultureIgnoreCase)); + return db.DbMaintenance.GetColumnInfosByTableName(table).Any(it => it.DbColumnName.Equals(col, StringComparison.CurrentCultureIgnoreCase)); } /// /// 动态调用方法 @@ -107,7 +108,7 @@ public dynamic GetFirstData(string subtable, string json, JObject dd) string param = item.Value.ToString().Substring(item.Value.ToString().IndexOf("(") + 1).TrimEnd(')') ; var types = new List(); var paramss = new List(); - foreach (var va in param.Split(",")) + foreach (var va in param.Split(',')) { types.Add(typeof(object)); paramss.Add(tb.Where(it => it.Key.Equals(va)).Select(i => i.Value)); @@ -119,24 +120,215 @@ public dynamic GetFirstData(string subtable, string json, JObject dd) return tb; } + + /// + /// 解析并查询 + /// + /// + /// + public JObject Query(string queryJson) + { + JObject resultObj = new JObject(); + + try + { + JObject queryJobj = JObject.Parse(queryJson); + resultObj = Query(queryJobj); + } + catch (Exception ex) + { + resultObj.Add("code", "500"); + resultObj.Add("msg", ex.Message); + } + + return resultObj; + } + + /// + /// 解析并查询 + /// + /// + /// + public JObject Query(JObject queryObj) + { + JObject resultObj = new JObject(); + resultObj.Add("code", "200"); + resultObj.Add("msg", "success"); + try + { + int total = 0; + foreach (var item in queryObj) + { + string key = item.Key.Trim(); + + if (key.Equals("[]")) + { + total = QueryMoreList(resultObj, item); + } + else if (key.EndsWith("[]")) + { + total = QuerySingleList(resultObj, item); + } + else if (key.Equals("func")) + { + ExecFunc(resultObj, item); + } + else if (key.Equals("total@")) + { + resultObj.Add("total", total); + } + else + { + var template = GetFirstData(key, item.Value.ToString(), resultObj); + if (template != null) + { + resultObj.Add(key, JToken.FromObject(template)); + } + } + } + } + catch (Exception ex) + { + resultObj["code"] = "500"; + resultObj["msg"] = ex.Message; + } + return resultObj; + } + + //单表查询 + private int QuerySingleList(JObject resultObj, KeyValuePair item) + { + string key = item.Key.Trim(); + var jb = JObject.Parse(item.Value.ToString()); + int page = jb["page"] == null ? 0 : int.Parse(jb["page"].ToString()); + int count = jb["count"] == null ? 10 : int.Parse(jb["count"].ToString()); + int query = jb["query"] == null ? 0 : int.Parse(jb["query"].ToString()); + int total = 0; + + jb.Remove("page"); jb.Remove("count"); jb.Remove("query"); + var htt = new JArray(); + foreach (var t in jb) + { + var datas = GetTableData(t.Key, page, count, t.Value.ToString(), null); + if (query > 0) + { + total = datas.Item2; + } + foreach (var data in datas.Item1) + { + htt.Add(JToken.FromObject(data)); + } + } + resultObj.Add(key, htt); + return total; + } + + //多列表查询 + private int QueryMoreList(JObject resultObj, KeyValuePair item) + { + int total = 0; + + var jb = JObject.Parse(item.Value.ToString()); + var page = jb["page"] == null ? 0 : int.Parse(jb["page"].ToString()); + var count = jb["count"] == null ? 10 : int.Parse(jb["count"].ToString()); + var query = jb["query"] == null ? 0 : int.Parse(jb["query"].ToString()); + jb.Remove("page"); jb.Remove("count"); jb.Remove("query"); + var htt = new JArray(); + List tables = new List(), where = new List(); + foreach (var t in jb) + { + tables.Add(t.Key); where.Add(t.Value.ToString()); + } + if (tables.Count > 0) + { + string table = tables[0]; + var temp = GetTableData(table, page, count, where[0], null); + if (query > 0) + { + total = temp.Item2; + } + + foreach (var dd in temp.Item1) + { + var zht = new JObject(); + zht.Add(table, JToken.FromObject(dd)); + for (int i = 1; i < tables.Count; i++) + { + string subtable = tables[i]; + if (subtable.EndsWith("[]")) + { + subtable = subtable.TrimEnd("[]".ToCharArray()); + var jbb = JObject.Parse(where[i]); + page = jbb["page"] == null ? 0 : int.Parse(jbb["page"].ToString()); + count = jbb["count"] == null ? 0 : int.Parse(jbb["count"].ToString()); + + var lt = new JArray(); + foreach (var d in GetTableData(subtable, page, count, jbb[subtable].ToString(), zht).Item1) + { + lt.Add(JToken.FromObject(d)); + } + zht.Add(tables[i], lt); + } + else + { + var ddf = GetFirstData(subtable, where[i].ToString(), zht); + if (ddf != null) + { + zht.Add(subtable, JToken.FromObject(ddf)); + + } + } + } + htt.Add(zht); + } + + } + if (query != 1) + { + resultObj.Add("[]", htt); + } + + return total; + } + + private void ExecFunc(JObject resultObj, KeyValuePair item) + { + JObject jb = JObject.Parse(item.Value.ToString()); + Type type = typeof(FuncList); + + var dataJObj = new JObject(); + foreach (var f in jb) + { + var types = new List(); + var param = new List(); + foreach (var va in JArray.Parse(f.Value.ToString())) + { + types.Add(typeof(object)); + param.Add(va); + } + dataJObj.Add(f.Key, JToken.FromObject(ExecFunc(f.Key, param.ToArray(), types.ToArray()))); + } + resultObj.Add("func", dataJObj); + } + private ISugarQueryable sugarQueryable(string subtable, string selectrole, JObject values, JObject dd) { if (!IsTable(subtable)) { throw new Exception($"表名{subtable}不正确!"); } - var tb = db.Db.Queryable(subtable, "tb"); - - + var tb = db.Queryable(subtable, "tb"); + + if (values["@column"].IsValue()) { var str = new System.Text.StringBuilder(100); - foreach (var item in values["@column"].ToString().Split(",")) + foreach (var item in values["@column"].ToString().Split(',')) { - string[] ziduan = item.Split(":"); + string[] ziduan = item.Split(':'); if (ziduan.Length > 1) { - if (IsCol(subtable,ziduan[0]) &&_identitySvc.ColIsRole(ziduan[0], selectrole.Split(","))) + if (IsCol(subtable,ziduan[0]) &&_identitySvc.ColIsRole(ziduan[0], selectrole.Split(','))) { str.Append(ziduan[0] + " as " + ziduan[1] + ","); @@ -144,7 +336,7 @@ private ISugarQueryable sugarQueryable(string subtable, string se } else { - if (IsCol(subtable, item) && _identitySvc.ColIsRole(item, selectrole.Split(","))) + if (IsCol(subtable, item) && _identitySvc.ColIsRole(item, selectrole.Split(','))) { str.Append(item + ","); } @@ -218,7 +410,7 @@ private ISugarQueryable sugarQueryable(string subtable, string se } else if (vakey.EndsWith("@") && dd != null) // 关联上一个table { - string[] str = va.Value.ToString().Split("/"); + string[] str = va.Value.ToString().Split('/'); string value = string.Empty; if (str.Length == 3) { @@ -242,7 +434,7 @@ private ISugarQueryable sugarQueryable(string subtable, string se //排序 if (values["@order"].IsValue()) { - foreach (var item in values["@order"].ToString().Split(",")) + foreach (var item in values["@order"].ToString().Split(',')) { if (IsCol(subtable,item.Replace("-", ""))) { @@ -317,9 +509,9 @@ private ISugarQueryable sugarQueryable(string subtable, string se } hw.Add(model); } - - var d=db.Db.Context.Utilities.ConditionalModelToSql(hw); - tb.Having(d.Key,d.Value); + + var d = db.Context.Utilities.ConditionalModelToSql(hw); + tb.Having(d.Key, d.Value); } return tb; } diff --git a/APIJSON.NET/APIJSON.NET/Services/IIdentityService.cs b/APIJSON.NET/APIJSONCommon/Services/IIdentityService.cs similarity index 100% rename from APIJSON.NET/APIJSON.NET/Services/IIdentityService.cs rename to APIJSON.NET/APIJSONCommon/Services/IIdentityService.cs diff --git a/APIJSON.NET/APIJSON.NET/Services/ITableMapper.cs b/APIJSON.NET/APIJSONCommon/Services/ITableMapper.cs similarity index 100% rename from APIJSON.NET/APIJSON.NET/Services/ITableMapper.cs rename to APIJSON.NET/APIJSONCommon/Services/ITableMapper.cs diff --git a/APIJSON.NET/APIJSON.NET/Services/TableMapper.cs b/APIJSON.NET/APIJSONCommon/Services/TableMapper.cs similarity index 92% rename from APIJSON.NET/APIJSON.NET/Services/TableMapper.cs rename to APIJSON.NET/APIJSONCommon/Services/TableMapper.cs index 51b6e60..d236cd5 100644 --- a/APIJSON.NET/APIJSON.NET/Services/TableMapper.cs +++ b/APIJSON.NET/APIJSONCommon/Services/TableMapper.cs @@ -18,7 +18,7 @@ public string GetTableName(string oldname) { if (_options.ContainsKey(oldname)) { - return _options.GetValueOrDefault(oldname); + return _options[oldname]; } return oldname; } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy