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; }