Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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
using RestSharp;
22
using System;
3+
using System.Text.RegularExpressions;
34

45
namespace APIJSON.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
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, newJObject());
118+
jobject.Add(table, tableConditions);
92119
}
93120

94121
return await Query(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
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

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)

AltStyle によって変換されたページ (->オリジナル) /