22{
33 using System ;
44 using System . Collections . Generic ;
5- using System . Data . SqlClient ;
65 using System . Web ;
7- using Dapper ;
86 using Microsoft . AspNetCore . Mvc ;
97 using Microsoft . Extensions . Options ;
108 using Newtonsoft . Json . Linq ;
9+ using SqlSugar ;
10+
1111 [ Route ( "api/[controller]" ) ]
1212 [ ApiController ]
1313 public class JsonController : ControllerBase
1414 {
15- private DapperHelper db ;
15+ private DbOptions _options ;
1616 private 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 ;
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 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 )
6062 {
6163 var zht = new JObject ( ) ;
6264 zht . Add ( table , JToken . FromObject ( dd ) ) ;
6365 for ( int i = 1 ; i < tables . Count ; i ++ )
6466 {
6567 string subtable = tables [ i ] ;
66-
6768 if ( tables [ i ] . EndsWith ( "[]" ) )
6869 {
6970 subtable = tables [ i ] . Replace ( "[]" , "" ) ;
7071 var jbb = 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 var lt = new JArray ( ) ;
75- foreach ( var d in db . Query ( template . RawSql , template . Parameters ) )
76+ foreach ( var d in template )
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- 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 }
9798 else if ( key . EndsWith ( "[]" ) )
9899 {
99- var builder = new SqlBuilder ( ) ;
100+
100101 var htt = new JArray ( ) ;
101102 var jb = JObject . Parse ( item . Value . ToString ( ) ) ;
102103 int page = 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 ( 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 {
110111 htt . Add ( JToken . FromObject ( d ) ) ;
111112 }
@@ -114,11 +115,10 @@ public ActionResult Query([FromBody]string json)
114115 }
115116 else
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 {
148148 JObject jobject = JObject . Parse ( json ) ;
149149 var sb = new System . Text . StringBuilder ( 100 ) ;
150+
150151 foreach ( var item in jobject )
151152 {
152153 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 > ( ) ;
157156 foreach ( 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)
194187 try
195188 {
196189 JObject jobject = JObject . Parse ( json ) ;
190+
197191 foreach ( var item in jobject )
198192 {
199193 string key = item . Key . Trim ( ) ;
200194 var value = JObject . Parse ( item . Value . ToString ( ) ) ;
201- var sb = new System . 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- var p = new DynamicParameters ( ) ;
201+ var dt = new Dictionary < string , object > ( ) ;
202+ dt . Add ( "id" , value [ "id" ] ) ;
211203 foreach ( var f in value )
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- 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 }
229214 catch ( Exception ex )
@@ -249,33 +234,31 @@ public ActionResult Remove([FromBody]string json)
249234 try
250235 {
251236 JObject jobject = JObject . Parse ( json ) ;
237+
252238 foreach ( var item in jobject )
253239 {
254240 string key = item . Key . Trim ( ) ;
255241 var value = JObject . Parse ( item . Value . ToString ( ) ) ;
256242 var sb = new System . 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- var p = new DynamicParameters ( ) ;
250+ var p = new List < SugarParameter > ( ) ;
266251 foreach ( var f in value )
267252 {
268253 sb . 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+
272258 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+
279262 }
280263 }
281264 catch ( Exception ex )
0 commit comments