Browse Source

修改SqlMap和SqlTemplate初始化方式,新增Search方法

xormplus 9 năm trước cách đây
mục cha
commit
030b3cdbc0
1 tập tin đã thay đổi với 26 bổ sung8 xóa
  1. 26 8
      engineplus.go

+ 26 - 8
engineplus.go

@@ -6,45 +6,63 @@ import (
 	"gopkg.in/flosch/pongo2.v3"
 )
 
+func (engine *Engine) SetSqlMapRootDir(sqlMapRootDir string) *Engine {
+	engine.sqlMap.SqlMapRootDir = sqlMapRootDir
+	return engine
+}
+
+func (engine *Engine) SetSqlTemplateRootDir(sqlTemplateRootDir string) *Engine {
+	engine.sqlTemplate.SqlTemplateRootDir = sqlTemplateRootDir
+	return engine
+}
+
 func (engine *Engine) SqlMapClient(sqlTagName string, args ...interface{}) *Session {
 	session := engine.NewSession()
 	session.IsAutoClose = true
-	return session.Sql(engine.SqlMap.Sql[sqlTagName], args...)
+	session.IsSqlFuc = true
+	return session.Sql(engine.sqlMap.Sql[sqlTagName], args...)
 }
 
 func (engine *Engine) SqlTemplateClient(sqlTagName string, args ...interface{}) *Session {
 	session := engine.NewSession()
 	session.IsAutoClose = true
+	session.IsSqlFuc = true
 
-	if engine.SqlTemplate.Template[sqlTagName] == nil {
+	if engine.sqlTemplate.Template[sqlTagName] == nil {
 		if len(args) == 0 {
 			return session.Sql("")
 		} else {
-			map1 := args[0].(map[string]interface{})
-			return session.Sql("", &map1)
+			map1 := args[0].(*map[string]interface{})
+			return session.Sql("", map1)
 		}
 	}
 
 	if len(args) == 0 {
 		parmap := &pongo2.Context{"1": 1}
-		sql, err := engine.SqlTemplate.Template[sqlTagName].Execute(*parmap)
+		sql, err := engine.sqlTemplate.Template[sqlTagName].Execute(*parmap)
 		if err != nil {
 			engine.logger.Error(err)
 
 		}
 		return session.Sql(sql)
 	} else {
-		map1 := args[0].(map[string]interface{})
-		sql, err := engine.SqlTemplate.Template[sqlTagName].Execute(map1)
+		map1 := args[0].(*map[string]interface{})
+		sql, err := engine.sqlTemplate.Template[sqlTagName].Execute(*map1)
 		if err != nil {
 			engine.logger.Error(err)
 
 		}
-		return session.Sql(sql, &map1)
+		return session.Sql(sql, map1)
 	}
 
 }
 
+func (engine *Engine) Search(beans interface{}, condiBeans ...interface{}) ResultStructs {
+	session := engine.NewSession()
+	defer session.Close()
+	return session.Search(beans, condiBeans...)
+}
+
 // Get retrieve one record from table, bean's non-empty fields
 // are conditions
 func (engine *Engine) GetFirst(bean interface{}) ResultBean {