Skip to content

Commit a2ceb82

Browse files
committed
liaozb#1:优化数据库操作 支持0:MySql,1:SqlServer,2:Sqlite,3:Oracle,4:PostgreSQL
2:增加token登录 #
1 parent 3cfaef5 commit a2ceb82

File tree

13 files changed

+400
-290
lines changed

13 files changed

+400
-290
lines changed

‎APIJSON.NET/APIJSON.NET/APIJSON.NET.csproj‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
</ItemGroup>
1010

1111
<ItemGroup>
12-
<PackageReferenceInclude="Dapper"Version="1.50.5" />
13-
<PackageReferenceInclude="Dapper.SqlBuilder"Version="1.50.5" />
1412
<PackageReferenceInclude="Microsoft.AspNetCore.App" />
13+
<PackageReferenceInclude="Microsoft.AspNetCore.Authentication.JwtBearer"Version="2.1.0" />
14+
<PackageReferenceInclude="Microsoft.VisualStudio.Web.CodeGeneration.Design"Version="2.1.0" />
1515
<PackageReferenceInclude="MySql.Data"Version="8.0.11" />
16-
<PackageReferenceInclude="Swashbuckle.AspNetCore"Version="2.5.0" />
17-
<PackageReferenceInclude="Swashbuckle.AspNetCore.Swagger"Version="2.5.0" />
16+
<PackageReferenceInclude="sqlSugarCore"Version="4.6.4.9" />
17+
<PackageReferenceInclude="Swashbuckle.AspNetCore"Version="3.0.0" />
18+
<PackageReferenceInclude="Swashbuckle.AspNetCore.Swagger"Version="3.0.0" />
1819
</ItemGroup>
1920

2021
</Project>
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
usingMicrosoft.AspNetCore.Authentication.JwtBearer;
2+
usingMicrosoft.Extensions.Configuration;
3+
usingMicrosoft.Extensions.DependencyInjection;
4+
usingMicrosoft.IdentityModel.Tokens;
5+
usingSystem;
6+
usingSystem.Collections.Generic;
7+
usingSystem.Linq;
8+
usingSystem.Text;
9+
usingSystem.Threading.Tasks;
10+
namespaceAPIJSON.NET
11+
{
12+
publicstaticclassAuthConfigurer
13+
{
14+
publicstaticvoidConfigure(IServiceCollectionservices,IConfigurationconfiguration)
15+
{
16+
if(bool.Parse(configuration["Authentication:JwtBearer:IsEnabled"]))
17+
{
18+
services.AddAuthentication(sharedOptions =>
19+
{
20+
sharedOptions.DefaultAuthenticateScheme=JwtBearerDefaults.AuthenticationScheme;
21+
sharedOptions.DefaultChallengeScheme=JwtBearerDefaults.AuthenticationScheme;
22+
})
23+
.AddJwtBearer(options =>
24+
{
25+
options.Audience=configuration["Authentication:JwtBearer:Audience"];
26+
27+
options.TokenValidationParameters=newTokenValidationParameters
28+
{
29+
30+
ValidateIssuerSigningKey=true,
31+
IssuerSigningKey=newSymmetricSecurityKey(Encoding.ASCII.GetBytes(configuration["Authentication:JwtBearer:SecurityKey"])),
32+
33+
ValidateIssuer=true,
34+
ValidIssuer=configuration["Authentication:JwtBearer:Issuer"],
35+
36+
37+
ValidateAudience=true,
38+
ValidAudience=configuration["Authentication:JwtBearer:Audience"],
39+
40+
41+
ValidateLifetime=true,
42+
43+
44+
ClockSkew=TimeSpan.Zero
45+
};
46+
47+
options.Events=newJwtBearerEvents
48+
{
49+
OnMessageReceived=QueryStringTokenResolver,
50+
51+
};
52+
});
53+
}
54+
}
55+
56+
privatestaticTaskQueryStringTokenResolver(MessageReceivedContextcontext)
57+
{
58+
59+
varqsAuthToken=context.Request.Headers["Authorization"].FirstOrDefault();
60+
if(qsAuthToken==null)
61+
{
62+
63+
returnTask.CompletedTask;
64+
}
65+
qsAuthToken=qsAuthToken.Replace("Bearer ","");
66+
67+
// context.Token = SimpleStringCipher.Instance.Decrypt(qsAuthToken, AppConsts.DefaultPassPhrase);
68+
returnTask.CompletedTask;
69+
}
70+
}
71+
}

APIJSON.NET/APIJSON.NET/Controllers/ValuesController.cs renamed to APIJSON.NET/APIJSON.NET/Controllers/JsonController.cs

Lines changed: 41 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,24 @@
22
{
33
usingSystem;
44
usingSystem.Collections.Generic;
5-
usingSystem.Data.SqlClient;
65
usingSystem.Web;
7-
usingDapper;
86
usingMicrosoft.AspNetCore.Mvc;
97
usingMicrosoft.Extensions.Options;
108
usingNewtonsoft.Json.Linq;
9+
usingSqlSugar;
10+
1111
[Route("api/[controller]")]
1212
[ApiController]
1313
publicclassJsonController:ControllerBase
1414
{
15-
privateDapperHelperdb;
15+
privateDbOptions_options;
1616
privateJsonToSqlsqlbuilder;
17-
publicJsonController(DapperHelperhelper,JsonToSqljsonToSql)
17+
privateDbContextdb;
18+
publicJsonController(IOptions<DbOptions>options,JsonToSqljsonToSql,DbContext_db)
1819
{
19-
db=helper;
20+
_options=options.Value;
2021
sqlbuilder=jsonToSql;
22+
db=_db;
2123
}
2224
/// <summary>
2325
/// 查询
@@ -55,36 +57,35 @@ public ActionResult Query([FromBody]string json)
5557
if(tables.Count>0)
5658
{
5759
stringtable=tables[0];
58-
vartemplate=sqlbuilder.GetSqlBuilder(table,page,count,where[0],null);
59-
foreach(varddindb.Query(template.RawSql,template.Parameters))
60+
vartemplate=sqlbuilder.GetTableData(table,page,count,where[0],null);
61+
foreach(varddintemplate)
6062
{
6163
varzht=newJObject();
6264
zht.Add(table,JToken.FromObject(dd));
6365
for(inti=1;i<tables.Count;i++)
6466
{
6567
stringsubtable=tables[i];
66-
6768
if(tables[i].EndsWith("[]"))
6869
{
6970
subtable=tables[i].Replace("[]","");
7071
varjbb=JObject.Parse(where[i]);
7172
page=jbb["page"]==null?0:int.Parse(jbb["page"].ToString());
7273
count=jbb["count"]==null?0:int.Parse(jbb["count"].ToString());
73-
template=sqlbuilder.GetSqlBuilder(subtable,page,count,jbb[subtable].ToString(),zht);
74+
template=sqlbuilder.GetTableData(subtable,page,count,jbb[subtable].ToString(),zht);
7475
varlt=newJArray();
75-
foreach(vardindb.Query(template.RawSql,template.Parameters))
76+
foreach(vardintemplate)
7677
{
7778
lt.Add(JToken.FromObject(d));
7879
}
7980
zht.Add(tables[i],lt);
8081
}
8182
else
8283
{
83-
template=sqlbuilder.GetSqlBuilder(subtable,0,0,where[i].ToString(),zht);
84-
vardf=db.QueryFirstOrDefault(template.RawSql,template.Parameters);
85-
if(df!=null)
84+
template=sqlbuilder.GetTableData(subtable,0,0,where[i].ToString(),zht);
85+
86+
if(template!=null)
8687
{
87-
zht.Add(subtable,JToken.FromObject(df));
88+
zht.Add(subtable,JToken.FromObject(template));
8889
}
8990

9091
}
@@ -96,16 +97,16 @@ public ActionResult Query([FromBody]string json)
9697
}
9798
elseif(key.EndsWith("[]"))
9899
{
99-
varbuilder=newSqlBuilder();
100+
100101
varhtt=newJArray();
101102
varjb=JObject.Parse(item.Value.ToString());
102103
intpage=jb["page"]==null?0:int.Parse(jb["page"].ToString()),count=jb["count"]==null?0:int.Parse(jb["count"].ToString());
103104
jb.Remove("page");
104105
jb.Remove("count");
105106
foreach(vartinjb)
106107
{
107-
vartemplate=sqlbuilder.GetSqlBuilder(t.Key,page,count,t.Value.ToString(),null);
108-
foreach(vardindb.Query(template.RawSql,template.Parameters))
108+
vartemplate=sqlbuilder.GetTableData(t.Key,page,count,t.Value.ToString(),null);
109+
foreach(vardintemplate)
109110
{
110111
htt.Add(JToken.FromObject(d));
111112
}
@@ -114,11 +115,10 @@ public ActionResult Query([FromBody]string json)
114115
}
115116
else
116117
{
117-
vartemplate=sqlbuilder.GetSqlBuilder(key,0,0,item.Value.ToString(),ht);
118-
vardf=db.QueryFirstOrDefault(template.RawSql,template.Parameters);
119-
if(df!=null)
118+
vartemplate=sqlbuilder.GetTableData(key,0,0,item.Value.ToString(),ht);
119+
if(template!=null)
120120
{
121-
ht.Add(key,JToken.FromObject(df));
121+
ht.Add(key,JToken.FromObject(template));
122122
}
123123
}
124124
}
@@ -147,27 +147,20 @@ public ActionResult Add([FromBody]string json)
147147
{
148148
JObjectjobject=JObject.Parse(json);
149149
varsb=newSystem.Text.StringBuilder(100);
150+
150151
foreach(variteminjobject)
151152
{
152153
stringkey=item.Key.Trim();
153-
sb.Append($"insert into [{key}](");
154-
varval=newSystem.Text.StringBuilder(100);
155-
val.Append($")values(");
156-
varp=newDynamicParameters();
154+
155+
vardt=newDictionary<string,object>();
157156
foreach(varfinJObject.Parse(item.Value.ToString()))
158157
{
159-
sb.Append($"{f.Key},");
160-
val.Append($"@{f.Key},");
161-
p.Add($"@{f.Key}",f.Value.ToString());
158+
dt.Add(f.Key,f.Value);
162159
}
163-
stringsql=sb.ToString().TrimEnd(',')+val.ToString().TrimEnd(',')+");SELECT CAST(SCOPE_IDENTITY() as int);";
160+
161+
intid=db.Db.Insertable(dt).AS(key).ExecuteReturnIdentity();
162+
ht.Add(key,JToken.FromObject(new{code=200,msg="success",id}));
164163

165-
using(varsqlConnection=db.Connection)
166-
{
167-
sqlConnection.Open();
168-
intid=sqlConnection.ExecuteScalar<int>(sql,p);
169-
ht.Add(key,JToken.FromObject(new{code=200,msg="success",id}));
170-
}
171164
}
172165

173166
}
@@ -194,36 +187,28 @@ public ActionResult Edit([FromBody]string json)
194187
try
195188
{
196189
JObjectjobject=JObject.Parse(json);
190+
197191
foreach(variteminjobject)
198192
{
199193
stringkey=item.Key.Trim();
200194
varvalue=JObject.Parse(item.Value.ToString());
201-
varsb=newSystem.Text.StringBuilder(100);
202-
203-
sb.Append($"update [{key}] set ");
204195
if(!value.ContainsKey("id"))
205196
{
206197
ht["code"]="500";
207198
ht["msg"]="未传主键id";
208199
break;
209200
}
210-
varp=newDynamicParameters();
201+
vardt=newDictionary<string,object>();
202+
dt.Add("id",value["id"]);
211203
foreach(varfinvalue)
212204
{
213205
if(f.Key.ToLower()!="id")
214206
{
215-
sb.Append($"{f.Key}=@{f.Key},");
207+
dt.Add(f.Key,f.Value);
216208
}
217-
218-
p.Add($"@{f.Key}",f.Value.ToString());
219-
}
220-
stringsql=sb.ToString().TrimEnd(',')+" where id=@id;";
221-
using(varsqlConnection=db.Connection)
222-
{
223-
sqlConnection.Open();
224-
sqlConnection.Execute(sql,p);
225-
ht.Add(key,JToken.FromObject(new{code=200,msg="success",id=value["id"].ToString()}));
226209
}
210+
db.Db.Updateable(dt).AS(key).ExecuteCommand();
211+
ht.Add(key,JToken.FromObject(new{code=200,msg="success",id=value["id"].ToString()}));
227212
}
228213
}
229214
catch(Exceptionex)
@@ -249,33 +234,31 @@ public ActionResult Remove([FromBody]string json)
249234
try
250235
{
251236
JObjectjobject=JObject.Parse(json);
237+
252238
foreach(variteminjobject)
253239
{
254240
stringkey=item.Key.Trim();
255241
varvalue=JObject.Parse(item.Value.ToString());
256242
varsb=newSystem.Text.StringBuilder(100);
257-
258243
sb.Append($"delete [{key}] where");
259244
if(!value.ContainsKey("id"))
260245
{
261246
ht["code"]="500";
262247
ht["msg"]="未传主键id";
263248
break;
264249
}
265-
varp=newDynamicParameters();
250+
varp=newList<SugarParameter>();
266251
foreach(varfinvalue)
267252
{
268253
sb.Append($"{f.Key}=@{f.Key},");
269254

270-
p.Add($"@{f.Key}",f.Value.ToString());
255+
p.Add(newSugarParameter($"@{f.Key}",f.Value.ToString()));
271256
}
257+
272258
stringsql=sb.ToString().TrimEnd(',');
273-
using(varsqlConnection=db.Connection)
274-
{
275-
sqlConnection.Open();
276-
sqlConnection.Execute(sql,p);
277-
ht.Add(key,JToken.FromObject(new{code=200,msg="success",id=value["id"].ToString()}));
278-
}
259+
db.Db.Ado.ExecuteCommand(sql,p);
260+
ht.Add(key,JToken.FromObject(new{code=200,msg="success",id=value["id"].ToString()}));
261+
279262
}
280263
}
281264
catch(Exceptionex)

0 commit comments

Comments
(0)