1010 using SqlSugar ;
1111 using System . Linq ;
1212 using APIJSON . NET . Services ;
13-
13+ using System . Reflection ;
1414
1515 [ Route ( "api/[controller]" ) ]
1616 [ ApiController ]
@@ -27,6 +27,7 @@ public JsonController(SelectTable _selectTable, DbContext _db,IIdentityService i
2727 db = _db ;
2828 _identitySvc = identityService ;
2929 }
30+
3031 /// <summary>
3132 /// 查询
3233 /// </summary>
@@ -64,11 +65,11 @@ public ActionResult Query([FromBody]string json)
6465 {
6566 string table = tables [ 0 ] ;
6667 var temp = selectTable . GetTableData ( table , page , count , where [ 0 ] , null ) ;
67- if ( query > 0 )
68+ if ( query > 0 )
6869 {
6970 total = temp . Item2 ;
7071 }
71-
72+
7273 foreach ( var dd in temp . Item1 )
7374 {
7475 var zht = new JObject ( ) ;
@@ -125,6 +126,34 @@ public ActionResult Query([FromBody]string json)
125126 }
126127 ht . Add ( key , htt ) ;
127128 }
129+ else if ( key . Equals ( "func" ) )
130+ {
131+ jb = JObject . Parse ( item . Value . ToString ( ) ) ;
132+ Type type = typeof ( MethodList ) ;
133+ Object obj = Activator . CreateInstance ( type ) ;
134+ var bb = new JObject ( ) ;
135+ foreach ( var f in jb )
136+ {
137+ var types = new List < Type > ( ) ;
138+ var param = new List < string > ( ) ;
139+ foreach ( var va in JArray . Parse ( f . Value . ToString ( ) ) )
140+ {
141+ types . Add ( typeof ( string ) ) ;
142+ param . Add ( va . ToString ( ) ) ;
143+ }
144+ MethodInfo mt = type . GetMethod ( f . Key , types . ToArray ( ) ) ;
145+ if ( mt == null )
146+ {
147+ bb . Add ( f . Key , "没有获取到相应的函数!" ) ;
148+ }
149+ else
150+ {
151+ bb . Add ( f . Key , JToken . FromObject ( mt . Invoke ( obj , param . ToArray ( ) ) ) ) ;
152+ }
153+
154+ }
155+ ht . Add ( "func" , bb ) ;
156+ }
128157 else if ( key . IsTable ( ) )
129158 {
130159 var template = selectTable . GetFirstData ( key , item . Value . ToString ( ) , ht ) ;
@@ -137,6 +166,7 @@ public ActionResult Query([FromBody]string json)
137166 {
138167 ht . Add ( "total" , total ) ;
139168 }
169+
140170 }
141171 }
142172 catch ( Exception ex )
0 commit comments