Skip to content

Commit f64c5bc

Browse files
committed
0.0.8 清理SelectTable 支持重载
1 parent f67884e commit f64c5bc

File tree

6 files changed

+197
-155
lines changed

6 files changed

+197
-155
lines changed

‎APIJSON.NET/APIJSON.NET.Test/Program.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
usingRestSharp;
22
usingSystem;
3+
usingSystem.Text.RegularExpressions;
34

45
namespaceAPIJSON.NET.Test
56
{

‎APIJSON.NET/APIJSON.NET/Controllers/JsonController.cs‎

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ public ActionResult Test()
5757

5858
publicasyncTask<ActionResult>Query([FromBody]JObjectjobject)
5959
{
60-
JObjectresultJobj=newSelectTable(_identitySvc,_tableMapper,db.Db).Query(jobject);
60+
varst=newSelectTable(_identitySvc,_tableMapper,db.Db);
61+
JObjectresultJobj=st.Query(jobject);
6162
returnOk(resultJobj);
6263
}
6364

@@ -75,20 +76,46 @@ public async Task<ActionResult> QueryByTable([FromRoute]string table)
7576

7677
JObjectjobject=JObject.Parse(json);
7778
ht.Add(table+"[]",jobject);
78-
ht.Add("total@","");
79+
80+
if(jobject["query"]!=null&&jobject["query"].ToString()!="0"&&jobject["total@"]==null)
81+
{
82+
//自动添加总计数量
83+
ht.Add("total@","");
84+
}
85+
86+
//每页最大1000条数据
87+
if(jobject["count"]!=null&&int.Parse(jobject["count"].ToString())>1000)
88+
{
89+
thrownewException("count分页数量最大不能超过1000");
90+
}
91+
92+
boolisDebug=(jobject["@debug"]!=null&&jobject["@debug"].ToString()!="0");
93+
jobject.Remove("@debug");
7994

8095
boolhasTableKey=false;
96+
List<string>ignoreConditions=newList<string>{"page","count","query"};
97+
JObjecttableConditions=newJObject();//表的其它查询条件,比如过滤,字段等
8198
foreach(variteminjobject)
8299
{
83100
if(item.Key.Equals(table,StringComparison.CurrentCultureIgnoreCase))
84101
{
85102
hasTableKey=true;
86103
break;
87104
}
105+
if(!ignoreConditions.Contains(item.Key.ToLower()))
106+
{
107+
tableConditions.Add(item.Key,item.Value);
108+
}
109+
}
110+
111+
foreach(varremoveKeyintableConditions)
112+
{
113+
jobject.Remove(removeKey.Key);
88114
}
115+
89116
if(!hasTableKey)
90117
{
91-
jobject.Add(table,newJObject());
118+
jobject.Add(table,tableConditions);
92119
}
93120

94121
returnawaitQuery(ht);

‎APIJSON.NET/APIJSON.NET/Services/IdentityService.cs‎

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,47 @@
1010

1111
namespaceAPIJSON.NET.Services
1212
{
13+
/// <summary>
14+
///
15+
/// </summary>
1316
publicclassIdentityService:IIdentityService
1417
{
1518
privateIHttpContextAccessor_context;
1619
privateList<Role>roles;
1720

21+
/// <summary>
22+
///
23+
/// </summary>
24+
/// <param name="context"></param>
25+
/// <param name="_roles"></param>
1826
publicIdentityService(IHttpContextAccessorcontext,IOptions<List<Role>>_roles)
1927
{
2028
_context=context??thrownewArgumentNullException(nameof(context));
2129
roles=_roles.Value;
2230
}
31+
32+
/// <summary>
33+
///
34+
/// </summary>
35+
/// <returns></returns>
2336
publicstringGetUserIdentity()
2437
{
2538
return_context.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
2639
}
2740

41+
/// <summary>
42+
///
43+
/// </summary>
44+
/// <returns></returns>
2845
publicstringGetUserRoleName()
2946
{
3047
return_context.HttpContext.User.FindFirstValue(ClaimTypes.Role);
3148
}
49+
50+
/// <summary>
51+
///
52+
/// </summary>
53+
/// <returns></returns>
3254
publicRoleGetRole()
3355
{
3456
varrole=newRole();
@@ -43,23 +65,37 @@ public Role GetRole()
4365
}
4466
returnrole;
4567
}
46-
public(bool,string)GetSelectRole(stringtable)
68+
69+
/// <summary>
70+
///
71+
/// </summary>
72+
/// <param name="table"></param>
73+
/// <returns></returns>
74+
publicTuple<bool,string>GetSelectRole(stringtable)
4775
{
4876
varrole=GetRole();
4977
if(role==null||role.Select==null||role.Select.Table==null)
5078
{
51-
return(false,$"appsettings.json权限配置不正确!");
79+
returnTuple.Create(false,$"appsettings.json权限配置不正确!");
5280
}
5381
stringtablerole=role.Select.Table.FirstOrDefault(it =>it=="*"||it.Equals(table,StringComparison.CurrentCultureIgnoreCase));
5482

5583
if(string.IsNullOrEmpty(tablerole))
5684
{
57-
return(false,$"表名{table}没权限查询!");
85+
returnTuple.Create(false,$"表名{table}没权限查询!");
5886
}
5987
intindex=Array.IndexOf(role.Select.Table,tablerole);
6088
stringselectrole=role.Select.Column[index];
61-
return(true,selectrole);
89+
returnTuple.Create(true,selectrole);
6290
}
91+
92+
93+
/// <summary>
94+
///
95+
/// </summary>
96+
/// <param name="col"></param>
97+
/// <param name="selectrole"></param>
98+
/// <returns></returns>
6399
publicboolColIsRole(stringcol,string[]selectrole)
64100
{
65101
if(selectrole.Contains("*"))

‎APIJSON.NET/APIJSONCommon/ApiJson.Common.csproj‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
5-
<Version>0.0.7</Version>
6-
<Description>0.0.7 修复not in的缺陷,增加~ 不等于的支持
5+
<Version>0.0.8</Version>
6+
<Description>0.0.8 清理SelectTable 支持重载
7+
0.0.7 修复not in的缺陷,增加~ 不等于的支持
78
0.0.6 增加ToSql接口,处理sql注入的情况
89
通用查询组件</Description>
910
<PackageId>ApiJson.Common.Core</PackageId>

‎APIJSON.NET/APIJSONCommon/Properties/AssemblyInfo.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// 控制。更改这些特性值可修改
66
// 与程序集关联的信息。
77
[assembly:AssemblyTitle("ApiJson.Common")]
8-
[assembly:AssemblyDescription("增加ToSql接口,处理sql注入的情况")]
8+
[assembly:AssemblyDescription("修复not in的缺陷,增加~ 不等于的支持")]
99
[assembly:AssemblyConfiguration("")]
1010
[assembly:AssemblyCompany("")]
1111
[assembly:AssemblyProduct("ApiJson.Common")]
@@ -31,5 +31,5 @@
3131
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
3232
//通过使用 "*",如下所示:
3333
// [assembly: AssemblyVersion("1.0.*")]
34-
[assembly:AssemblyVersion("0.0.6.0")]
35-
[assembly:AssemblyFileVersion("0.0.6.0")]
34+
[assembly:AssemblyVersion("0.0.7.0")]
35+
[assembly:AssemblyFileVersion("0.0.7.0")]

0 commit comments

Comments
(0)