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