22{
33using System ;
44using System . Collections . Generic ;
5- using System . Data . SqlClient ;
65using System . Web ;
7- using Dapper ;
86using Microsoft . AspNetCore . Mvc ;
97using Microsoft . Extensions . Options ;
108using Newtonsoft . Json . Linq ;
9+ using SqlSugar ;
10+
1111[ Route ( "api/[controller]" ) ]
1212[ ApiController ]
1313public class JsonController : ControllerBase
1414{
15- private DapperHelper db ;
15+ private DbOptions _options ;
1616private JsonToSql sqlbuilder ;
17- public JsonController ( DapperHelper helper , JsonToSql jsonToSql )
17+ private DbContext db ;
18+ public JsonController ( IOptions < DbOptions > options , JsonToSql jsonToSql , DbContext _db )
1819{
19- db = helper ;
20+ _options = options . Value ;
2021sqlbuilder = jsonToSql ;
22+ db = _db ;
2123}
2224/// <summary>
2325/// 查询
@@ -55,36 +57,35 @@ public ActionResult Query([FromBody]string json)
5557if ( tables . Count > 0 )
5658{
5759string 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 )
6062{
6163var zht = new JObject ( ) ;
6264zht . Add ( table , JToken . FromObject ( dd ) ) ;
6365for ( int i = 1 ; i < tables . Count ; i ++ )
6466{
6567string subtable = tables [ i ] ;
66-
6768if ( tables [ i ] . EndsWith ( "[]" ) )
6869{
6970subtable = tables [ i ] . Replace ( "[]" , "" ) ;
7071var jbb = JObject . Parse ( where [ i ] ) ;
7172page = jbb [ "page" ] == null ? 0 : int . Parse ( jbb [ "page" ] . ToString ( ) ) ;
7273count = 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 ) ;
7475var lt = new JArray ( ) ;
75- foreach ( var d in db . Query ( template . RawSql , template . Parameters ) )
76+ foreach ( var d in template )
7677{
7778lt . Add ( JToken . FromObject ( d ) ) ;
7879}
7980zht . Add ( tables [ i ] , lt ) ;
8081}
8182else
8283{
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 )
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}
9798else if ( key . EndsWith ( "[]" ) )
9899{
99- var builder = new SqlBuilder ( ) ;
100+
100101var htt = new JArray ( ) ;
101102var jb = JObject . Parse ( item . Value . ToString ( ) ) ;
102103int page = jb [ "page" ] == null ? 0 : int . Parse ( jb [ "page" ] . ToString ( ) ) , count = jb [ "count" ] == null ? 0 : int . Parse ( jb [ "count" ] . ToString ( ) ) ;
103104jb . Remove ( "page" ) ;
104105jb . Remove ( "count" ) ;
105106foreach ( var t in jb )
106107{
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 )
109110{
110111htt . Add ( JToken . FromObject ( d ) ) ;
111112}
@@ -114,11 +115,10 @@ public ActionResult Query([FromBody]string json)
114115}
115116else
116117{
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 )
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{
148148JObject jobject = JObject . Parse ( json ) ;
149149var sb = new System . Text . StringBuilder ( 100 ) ;
150+
150151foreach ( var item in jobject )
151152{
152153string 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 > ( ) ;
157156foreach ( var f in JObject . 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- 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 } ) ) ;
164163
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- }
171164}
172165
173166}
@@ -194,36 +187,28 @@ public ActionResult Edit([FromBody]string json)
194187try
195188{
196189JObject jobject = JObject . Parse ( json ) ;
190+
197191foreach ( var item in jobject )
198192{
199193string key = item . Key . Trim ( ) ;
200194var value = JObject . Parse ( item . Value . ToString ( ) ) ;
201- var sb = new System . Text . StringBuilder ( 100 ) ;
202-
203- sb . Append ( $ "update [{ key } ] set ") ;
204195if ( ! value . ContainsKey ( "id" ) )
205196{
206197ht [ "code" ] = "500" ;
207198ht [ "msg" ] = "未传主键id" ;
208199break ;
209200}
210- var p = new DynamicParameters ( ) ;
201+ var dt = new Dictionary < string , object > ( ) ;
202+ dt . Add ( "id" , value [ "id" ] ) ;
211203foreach ( var f in value )
212204{
213205if ( 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- 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 ( ) } ) ) ;
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}
229214catch ( Exception ex )
@@ -249,33 +234,31 @@ public ActionResult Remove([FromBody]string json)
249234try
250235{
251236JObject jobject = JObject . Parse ( json ) ;
237+
252238foreach ( var item in jobject )
253239{
254240string key = item . Key . Trim ( ) ;
255241var value = JObject . Parse ( item . Value . ToString ( ) ) ;
256242var sb = new System . Text . StringBuilder ( 100 ) ;
257-
258243sb . Append ( $ "delete [{ key } ] where") ;
259244if ( ! value . ContainsKey ( "id" ) )
260245{
261246ht [ "code" ] = "500" ;
262247ht [ "msg" ] = "未传主键id" ;
263248break ;
264249}
265- var p = new DynamicParameters ( ) ;
250+ var p = new List < SugarParameter > ( ) ;
266251foreach ( var f in value )
267252{
268253sb . Append ( $ "{ f . Key } =@{ f . Key } ,") ;
269254
270- p . Add ( $ "@{ f . Key } ", f . Value . ToString ( ) ) ;
255+ p . Add ( new SugarParameter ( $ "@{ f . Key } ", f . Value . ToString ( ) ) ) ;
271256}
257+
272258string 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+
279262}
280263}
281264catch ( Exception ex )
0 commit comments