From 4983adc4d20798a980025be4cd45c77558c74265 Mon Sep 17 00:00:00 2001 From: gigibox <gigibox@163.com> Date: 星期二, 20 六月 2023 02:27:01 +0800 Subject: [PATCH] 完成查询接口 --- kingdee/query.go | 64 +++++++++++++++++++++++++++++++- 1 files changed, 62 insertions(+), 2 deletions(-) diff --git a/kingdee/query.go b/kingdee/query.go index 9242abf..3926f88 100644 --- a/kingdee/query.go +++ b/kingdee/query.go @@ -1,8 +1,68 @@ package kingdee -import "fmt" +import ( + "encoding/json" + + "kingdee-dbapi/config" + "kingdee-dbapi/logger" + "kingdee-dbapi/nsqclient" +) func QueryMsgHandle(data []byte) error { - fmt.Println("recv msg ", string(data)) + var result []interface{} + + var sql = string(data) + + logger.Debug("鎺ユ敹鍒版煡璇㈣姹�,%s", sql) + + if db == nil { + logger.Debug("鏁版嵁搴撴湭杩炴帴") + + return nil + } + + rows, err := db.Raw(`select * from users`).Rows() + if err != nil { + result = append(result, err.Error()) + return err + } + + var colums []string + for rows.Next() { + //鍏堣幏鍙栨墍鏈夌殑column + if colums == nil { + colums, _ = rows.Columns() + } + + //寤虹珛淇╀釜interface鏁扮粍锛宑olumnPointers涓瓨鍦╟olumns鐨勫湴鍧� + columns := make([]interface{}, len(colums)) + columnPointers := make([]interface{}, len(colums)) + for i, _ := range columns { + //璧嬪�煎湴鍧� + columnPointers[i] = &columns[i] + } + + //鎵弿缁撴灉 + rows.Scan(columnPointers...) + m := make(map[string]interface{}) + for i, colName := range colums { + val := columnPointers[i].(*interface{}) + m[colName] = *val + } + + result = append(result, m) + //result = append(result, row) + } + + logger.Debug("鏁版嵁搴撹繑鍥炴暟鎹�%+v", result) + b, _ := json.Marshal(result) + + ok := nsqclient.Produce(config.Options.ReplyTopic, b) + if !ok { + logger.Warn("搴旂瓟鏌ヨ璇锋眰澶辫触.") + } else { + logger.Debug("搴旂瓟鏌ヨ璇锋眰鎴愬姛. 鏁版嵁:%s", string(b)) + } + return nil } -- Gitblit v1.8.0