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

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using RestSharp;
22
using System;
3+
using System.Text.RegularExpressions;
34

45
namespace APIJSON.NET.Test
56
{

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

+30-3
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ public ActionResult Test()
5757

5858
public async Task<ActionResult> Query([FromBody] JObject jobject)
5959
{
60-
JObject resultJobj = new SelectTable(_identitySvc, _tableMapper, db.Db).Query(jobject);
60+
var st = new SelectTable(_identitySvc, _tableMapper, db.Db);
61+
JObject resultJobj = st.Query(jobject);
6162
return Ok(resultJobj);
6263
}
6364

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

7677
JObject jobject = 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+
throw new Exception("count分页数量最大不能超过1000");
90+
}
91+
92+
bool isDebug = (jobject["@debug"] != null && jobject["@debug"].ToString() != "0");
93+
jobject.Remove("@debug");
7994

8095
bool hasTableKey = false;
96+
List<string> ignoreConditions = new List<string> { "page", "count", "query" };
97+
JObject tableConditions = new JObject();//表的其它查询条件,比如过滤,字段等
8198
foreach (var item in jobject)
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 (var removeKey in tableConditions)
112+
{
113+
jobject.Remove(removeKey.Key);
88114
}
115+
89116
if (!hasTableKey)
90117
{
91-
jobject.Add(table, new JObject());
118+
jobject.Add(table, tableConditions);
92119
}
93120

94121
return await Query(ht);

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

+40-4
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,47 @@
1010

1111
namespace APIJSON.NET.Services
1212
{
13+
/// <summary>
14+
///
15+
/// </summary>
1316
public class IdentityService : IIdentityService
1417
{
1518
private IHttpContextAccessor _context;
1619
private List<Role> roles;
1720

21+
/// <summary>
22+
///
23+
/// </summary>
24+
/// <param name="context"></param>
25+
/// <param name="_roles"></param>
1826
public IdentityService(IHttpContextAccessor context, IOptions<List<Role>> _roles)
1927
{
2028
_context = context ?? throw new ArgumentNullException(nameof(context));
2129
roles = _roles.Value;
2230
}
31+
32+
/// <summary>
33+
///
34+
/// </summary>
35+
/// <returns></returns>
2336
public string GetUserIdentity()
2437
{
2538
return _context.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);
2639
}
2740

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

5583
if (string.IsNullOrEmpty(tablerole))
5684
{
57-
return (false, $"表名{table}没权限查询!");
85+
return Tuple.Create(false, $"表名{table}没权限查询!");
5886
}
5987
int index = Array.IndexOf(role.Select.Table, tablerole);
6088
string selectrole = role.Select.Column[index];
61-
return (true, selectrole);
89+
return Tuple.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
public bool ColIsRole(string col, string[] selectrole)
64100
{
65101
if (selectrole.Contains("*"))

APIJSON.NET/APIJSONCommon/ApiJson.Common.csproj

+3-2
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

+3-3
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)