Procházet zdrojové kódy

feat:增加返回值

wangchuanjin před 3 roky
rodič
revize
6321a8ba05
1 změnil soubory, kde provedl 6 přidání a 4 odebrání
  1. 6 4
      src/qfw/util/mysql/mysql.go

+ 6 - 4
src/qfw/util/mysql/mysql.go

@@ -258,7 +258,7 @@ func (m *Mysql) SelectBySql(q string, args ...interface{}) *[]map[string]interfa
 func (m *Mysql) SelectBySqlByTx(tx *sql.Tx, q string, args ...interface{}) *[]map[string]interface{} {
 	return m.Select(0, nil, tx, q, args...)
 }
-func (m *Mysql) Select(bath int, f func(l *[]map[string]interface{}), tx *sql.Tx, q string, args ...interface{}) *[]map[string]interface{} {
+func (m *Mysql) Select(bath int, f func(l *[]map[string]interface{}) bool, tx *sql.Tx, q string, args ...interface{}) *[]map[string]interface{} {
 	var stmtOut *sql.Stmt
 	var err error
 	if tx == nil {
@@ -306,7 +306,9 @@ func (m *Mysql) Select(bath int, f func(l *[]map[string]interface{}), tx *sql.Tx
 		}
 		list = append(list, ret)
 		if bath > 0 && len(list) == bath {
-			f(&list)
+			if !f(&list) {
+				break
+			}
 			list = []map[string]interface{}{}
 		}
 	}
@@ -316,10 +318,10 @@ func (m *Mysql) Select(bath int, f func(l *[]map[string]interface{}), tx *sql.Tx
 	}
 	return &list
 }
-func (m *Mysql) SelectByBath(bath int, f func(l *[]map[string]interface{}), q string, args ...interface{}) {
+func (m *Mysql) SelectByBath(bath int, f func(l *[]map[string]interface{}) bool, q string, args ...interface{}) {
 	m.SelectByBathByTx(bath, f, nil, q, args...)
 }
-func (m *Mysql) SelectByBathByTx(bath int, f func(l *[]map[string]interface{}), tx *sql.Tx, q string, args ...interface{}) {
+func (m *Mysql) SelectByBathByTx(bath int, f func(l *[]map[string]interface{}) bool, tx *sql.Tx, q string, args ...interface{}) {
 	m.Select(bath, f, tx, q, args...)
 }
 func (m *Mysql) FindOne(tableName string, query map[string]interface{}, fields, order string) *map[string]interface{} {