2
2
{
3
3
using System ;
4
4
using System . Collections . Generic ;
5
- using System . Data . SqlClient ;
6
5
using System . Web ;
7
- using Dapper ;
8
6
using Microsoft . AspNetCore . Mvc ;
9
7
using Microsoft . Extensions . Options ;
10
8
using Newtonsoft . Json . Linq ;
9
+ using SqlSugar ;
10
+
11
11
[ Route ( "api/[controller]" ) ]
12
12
[ ApiController ]
13
13
public class JsonController : ControllerBase
14
14
{
15
- private DapperHelper db ;
15
+ private DbOptions _options ;
16
16
private JsonToSql sqlbuilder ;
17
- public JsonController ( DapperHelper helper , JsonToSql jsonToSql )
17
+ private DbContext db ;
18
+ public JsonController ( IOptions < DbOptions > options , JsonToSql jsonToSql , DbContext _db )
18
19
{
19
- db = helper ;
20
+ _options = options . Value ;
20
21
sqlbuilder = jsonToSql ;
22
+ db = _db ;
21
23
}
22
24
/// <summary>
23
25
/// 查询
@@ -55,36 +57,35 @@ public ActionResult Query([FromBody]string json)
55
57
if ( tables . Count > 0 )
56
58
{
57
59
string table = tables [ 0 ] ;
58
- var template = sqlbuilder . GetSqlBuilder ( table , page , count , where [ 0 ] , null ) ;
59
- foreach ( var dd in db . Query ( template . RawSql , template . Parameters ) )
60
+ var template = sqlbuilder . GetTableData ( table , page , count , where [ 0 ] , null ) ;
61
+ foreach ( var dd in template )
60
62
{
61
63
var zht = new JObject ( ) ;
62
64
zht . Add ( table , JToken . FromObject ( dd ) ) ;
63
65
for ( int i = 1 ; i < tables . Count ; i ++ )
64
66
{
65
67
string subtable = tables [ i ] ;
66
-
67
68
if ( tables [ i ] . EndsWith ( "[]" ) )
68
69
{
69
70
subtable = tables [ i ] . Replace ( "[]" , "" ) ;
70
71
var jbb = JObject . Parse ( where [ i ] ) ;
71
72
page = jbb [ "page" ] == null ? 0 : int . Parse ( jbb [ "page" ] . ToString ( ) ) ;
72
73
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 ) ;
74
75
var lt = new JArray ( ) ;
75
- foreach ( var d in db . Query ( template . RawSql , template . Parameters ) )
76
+ foreach ( var d in template )
76
77
{
77
78
lt . Add ( JToken . FromObject ( d ) ) ;
78
79
}
79
80
zht . Add ( tables [ i ] , lt ) ;
80
81
}
81
82
else
82
83
{
83
- template = sqlbuilder . GetSqlBuilder ( subtable , 0 , 0 , where [ i ] . ToString ( ) , zht ) ;
84
- var df = 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 )
86
87
{
87
- zht . Add ( subtable , JToken . FromObject ( df ) ) ;
88
+ zht . Add ( subtable , JToken . FromObject ( template ) ) ;
88
89
}
89
90
90
91
}
@@ -96,16 +97,16 @@ public ActionResult Query([FromBody]string json)
96
97
}
97
98
else if ( key . EndsWith ( "[]" ) )
98
99
{
99
- var builder = new SqlBuilder ( ) ;
100
+
100
101
var htt = new JArray ( ) ;
101
102
var jb = JObject . Parse ( item . Value . ToString ( ) ) ;
102
103
int page = jb [ "page" ] == null ? 0 : int . Parse ( jb [ "page" ] . ToString ( ) ) , count = jb [ "count" ] == null ? 0 : int . Parse ( jb [ "count" ] . ToString ( ) ) ;
103
104
jb . Remove ( "page" ) ;
104
105
jb . Remove ( "count" ) ;
105
106
foreach ( var t in jb )
106
107
{
107
- var template = sqlbuilder . GetSqlBuilder ( t . Key , page , count , t . Value . ToString ( ) , null ) ;
108
- foreach ( var d in db . Query ( template . RawSql , template . Parameters ) )
108
+ var template = sqlbuilder . GetTableData ( t . Key , page , count , t . Value . ToString ( ) , null ) ;
109
+ foreach ( var d in template )
109
110
{
110
111
htt . Add ( JToken . FromObject ( d ) ) ;
111
112
}
@@ -114,11 +115,10 @@ public ActionResult Query([FromBody]string json)
114
115
}
115
116
else
116
117
{
117
- var template = sqlbuilder . GetSqlBuilder ( key , 0 , 0 , item . Value . ToString ( ) , ht ) ;
118
- var df = db . QueryFirstOrDefault ( template . RawSql , template . Parameters ) ;
119
- if ( df != null )
118
+ var template = sqlbuilder . GetTableData ( key , 0 , 0 , item . Value . ToString ( ) , ht ) ;
119
+ if ( template != null )
120
120
{
121
- ht . Add ( key , JToken . FromObject ( df ) ) ;
121
+ ht . Add ( key , JToken . FromObject ( template ) ) ;
122
122
}
123
123
}
124
124
}
@@ -147,27 +147,20 @@ public ActionResult Add([FromBody]string json)
147
147
{
148
148
JObject jobject = JObject . Parse ( json ) ;
149
149
var sb = new System . Text . StringBuilder ( 100 ) ;
150
+
150
151
foreach ( var item in jobject )
151
152
{
152
153
string key = item . Key . Trim ( ) ;
153
- sb . Append ( $ "insert into [{ key } ](") ;
154
- var val = new System . Text . StringBuilder ( 100 ) ;
155
- val . Append ( $ ")values(") ;
156
- var p = new DynamicParameters ( ) ;
154
+
155
+ var dt = new Dictionary < string , object > ( ) ;
157
156
foreach ( var f in JObject . Parse ( item . Value . ToString ( ) ) )
158
157
{
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 ) ;
162
159
}
163
- string sql = sb . ToString ( ) . TrimEnd ( ',' ) + val . ToString ( ) . TrimEnd ( ',' ) + ");SELECT CAST(SCOPE_IDENTITY() as int);" ;
160
+
161
+ int id = db . Db . Insertable ( dt ) . AS ( key ) . ExecuteReturnIdentity ( ) ;
162
+ ht . Add ( key , JToken . FromObject ( new { code = 200 , msg = "success" , id } ) ) ;
164
163
165
- using ( var sqlConnection = db . Connection )
166
- {
167
- sqlConnection . Open ( ) ;
168
- int id = sqlConnection . ExecuteScalar < int > ( sql , p ) ;
169
- ht . Add ( key , JToken . FromObject ( new { code = 200 , msg = "success" , id } ) ) ;
170
- }
171
164
}
172
165
173
166
}
@@ -194,36 +187,28 @@ public ActionResult Edit([FromBody]string json)
194
187
try
195
188
{
196
189
JObject jobject = JObject . Parse ( json ) ;
190
+
197
191
foreach ( var item in jobject )
198
192
{
199
193
string key = item . Key . Trim ( ) ;
200
194
var value = JObject . Parse ( item . Value . ToString ( ) ) ;
201
- var sb = new System . Text . StringBuilder ( 100 ) ;
202
-
203
- sb . Append ( $ "update [{ key } ] set ") ;
204
195
if ( ! value . ContainsKey ( "id" ) )
205
196
{
206
197
ht [ "code" ] = "500" ;
207
198
ht [ "msg" ] = "未传主键id" ;
208
199
break ;
209
200
}
210
- var p = new DynamicParameters ( ) ;
201
+ var dt = new Dictionary < string , object > ( ) ;
202
+ dt . Add ( "id" , value [ "id" ] ) ;
211
203
foreach ( var f in value )
212
204
{
213
205
if ( f . Key . ToLower ( ) != "id" )
214
206
{
215
- sb . Append ( $ " { f . Key } =@ { f . Key } ," ) ;
207
+ dt . Add ( f . Key , f . Value ) ;
216
208
}
217
-
218
- p . Add ( $ "@{ f . Key } ", f . Value . ToString ( ) ) ;
219
- }
220
- string sql = sb . ToString ( ) . TrimEnd ( ',' ) + " where id=@id;" ;
221
- using ( var sqlConnection = 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 ( ) } ) ) ;
226
209
}
210
+ db . Db . Updateable ( dt ) . AS ( key ) . ExecuteCommand ( ) ;
211
+ ht . Add ( key , JToken . FromObject ( new { code = 200 , msg = "success" , id = value [ "id" ] . ToString ( ) } ) ) ;
227
212
}
228
213
}
229
214
catch ( Exception ex )
@@ -249,33 +234,31 @@ public ActionResult Remove([FromBody]string json)
249
234
try
250
235
{
251
236
JObject jobject = JObject . Parse ( json ) ;
237
+
252
238
foreach ( var item in jobject )
253
239
{
254
240
string key = item . Key . Trim ( ) ;
255
241
var value = JObject . Parse ( item . Value . ToString ( ) ) ;
256
242
var sb = new System . Text . StringBuilder ( 100 ) ;
257
-
258
243
sb . Append ( $ "delete [{ key } ] where") ;
259
244
if ( ! value . ContainsKey ( "id" ) )
260
245
{
261
246
ht [ "code" ] = "500" ;
262
247
ht [ "msg" ] = "未传主键id" ;
263
248
break ;
264
249
}
265
- var p = new DynamicParameters ( ) ;
250
+ var p = new List < SugarParameter > ( ) ;
266
251
foreach ( var f in value )
267
252
{
268
253
sb . Append ( $ "{ f . Key } =@{ f . Key } ,") ;
269
254
270
- p . Add ( $ "@{ f . Key } ", f . Value . ToString ( ) ) ;
255
+ p . Add ( new SugarParameter ( $ "@{ f . Key } ", f . Value . ToString ( ) ) ) ;
271
256
}
257
+
272
258
string sql = sb . ToString ( ) . TrimEnd ( ',' ) ;
273
- using ( var sqlConnection = 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
+
279
262
}
280
263
}
281
264
catch ( Exception ex )
0 commit comments