From 4983adc4d20798a980025be4cd45c77558c74265 Mon Sep 17 00:00:00 2001 From: gigibox <gigibox@163.com> Date: 星期二, 20 六月 2023 02:27:01 +0800 Subject: [PATCH] 完成查询接口 --- config.json | 7 +- config/config.go | 2 .gitignore | 5 - go.sum | 16 ++--- gui/gui.go | 4 + report/loop.go | 10 ++- go.mod | 12 ++-- kingdee/query.go | 64 ++++++++++++++++++++ main.go | 9 +- report/tasks.go | 2 nsqclient/client.go | 12 ++-- kingdee/db.go | 25 ++++++- 12 files changed, 124 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index 3be0811..a105b2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ .idea .vscode -kingdee-dbapi.exe -*.tmp -kingdee-api.db \ No newline at end of file +kingdee-* +*.tmp \ No newline at end of file diff --git a/config.json b/config.json index 9c1ddc8..4a7c8af 100644 --- a/config.json +++ b/config.json @@ -1,14 +1,15 @@ { "web_port": "10210", - "sql_addr": "10.6.201.7", + "sql_addr": "os.smartai.com", "sql_db_name": "LZGS", - "sql_username": "webapi", - "sql_password": "api2023", + "sql_username": "sa", + "sql_password": "basic@2023", "nsq_server": "fai365.com:4150", "nsq_webapi": "http://121.31.232.83:9080/api/nsq/pub?topic=your_topic", "order_topic": "aps.wangpengfei.erp.seorder", "inventory_topic": "aps.wangpengfei.erp.inventory", "query_topic": "aps.wangpengfei.erp.k3resource", + "reply_topic": "aps.wangpengfei.erp.k3repley", "interval": 60, "debug": false } \ No newline at end of file diff --git a/config/config.go b/config/config.go index 4d731e0..1627c5b 100644 --- a/config/config.go +++ b/config/config.go @@ -19,6 +19,7 @@ OrderTopic string `json:"order_topic"` // 璁㈠崟涓婃姤鐨則opic InventoryTopic string `json:"inventory_topic"` // 搴撳瓨涓婃姤鐨則opic QueryTopic string `json:"query_topic"` // 閲戣澏鏌ヨ鎺ュ彛鐨則opic + ReplyTopic string `json:"reply_topic"` // 閲戣澏鍝嶅簲鏌ヨ鎺ュ彛鐨則opic SyncInterval int `json:"interval"` // 鍚屾鐨勬椂闂撮棿闅�, 鍗曚綅/绉� Debug bool `json:"debug"` // 鏈湴璋冭瘯, 鍙栨湰鍦版暟鎹� } @@ -38,6 +39,7 @@ Options.OrderTopic = "aps.factory.erp.seorder" Options.InventoryTopic = "aps.factory.erp.inventory" Options.QueryTopic = "aps.factory.erp.k3resource" + Options.ReplyTopic = "aps.factory.erp.k3reply" Options.SyncInterval = 60 Options.Debug = false } diff --git a/go.mod b/go.mod index 356a1dc..e9c37ac 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,11 @@ go 1.14 require ( - fyne.io/fyne v1.4.3 // indirect + fyne.io/fyne v1.4.3 fyne.io/fyne/v2 v2.3.4 - github.com/fatedier/beego v1.7.2 // indirect - github.com/flopp/go-findfont v0.1.0 // indirect - github.com/gin-gonic/gin v1.7.0 // indirect - github.com/jinzhu/gorm v1.9.16 // indirect - github.com/nsqio/go-nsq v1.1.0 // indirect + github.com/fatedier/beego v1.7.2 + github.com/flopp/go-findfont v0.1.0 + github.com/gin-gonic/gin v1.7.0 + github.com/jinzhu/gorm v1.9.16 + github.com/nsqio/go-nsq v1.1.0 ) diff --git a/go.sum b/go.sum index ffda01b..6389e4e 100644 --- a/go.sum +++ b/go.sum @@ -46,11 +46,9 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9 h1:1ltqoej5GtaWF8jaiA49HwsZD459jqm9YFz9ZtMFpQA= github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/akavel/rsrc v0.10.2 h1:Zxm8V5eI1hW4gGaYsJQUhxpjkENuG91ki8B4zCrvEsw= github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= @@ -83,6 +81,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= github.com/fatedier/beego v1.7.2 h1:kVw3oKiXccInqG+Z/7l8zyRQXrsCQEfcUxgzfGK+R8g= github.com/fatedier/beego v1.7.2/go.mod h1:wx3gB6dbIfBRcucp94PI9Bt3I0F2c/MyNEWuhzpWiwk= @@ -118,6 +117,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20221017161538-93cebf72946b h1:GgabKamyOYguHqHjSkDACcgoPIz3w0Dis/zJ1wyHHHU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20221017161538-93cebf72946b/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= @@ -125,6 +125,7 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-text/typesetting v0.0.0-20230405155246-bf9c697c6e16 h1:DvHeDNqK8cxdZ7C6y88pt3uE7euZH7/LluzyfnUfH/Q= github.com/go-text/typesetting v0.0.0-20230405155246-bf9c697c6e16/go.mod h1:zvWM81wAVW6QfVDI6yxfbCuoLnobSYTuMsrXU/u11y8= @@ -185,6 +186,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -235,16 +237,15 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526 h1:NfuKjkj/Xc2z1xZIj+EmNCm5p1nKJPyw3F4E20usXvg= github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526/go.mod h1:UQkeMHVoNcyXYq9otUupF7/h/2tmHlhrS2zw7ZVvUqc= github.com/jackmordaunt/icns/v2 v2.2.1/go.mod h1:6aYIB9eSzyfHHMKqDf17Xrs1zetQPReAkiUSHzdw4cI= github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o= github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.0.1 h1:HjfetcXq097iXP0uoPCdnM4Efp5/9MsM0/M+XOTeR3M= github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/josephspurrier/goversioninfo v0.0.0-20200309025242-14b0ab84c6ca/go.mod h1:eJTEwMjXb7kZ633hO3Ln9mBUCOjX2+FlTljvpl9SYdE= -github.com/josephspurrier/goversioninfo v1.4.0 h1:Puhl12NSHUSALHSuzYwPYQkqa2E1+7SrtAPJorKK0C8= github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= @@ -263,9 +264,9 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a/go.mod h1:ORP3/rB5IsulLEBwQZCJyyV6niqmI7P4EWSmkug+1Ng= -github.com/lucor/goinfo v0.0.0-20210802170112-c078a2b0f08b h1:tLSDWcFhT0WRlnsFszh4iaFTexWF8mmccGTk88Siq7Q= github.com/lucor/goinfo v0.0.0-20210802170112-c078a2b0f08b/go.mod h1:PRq09yoB+Q2OJReAmwzKivcYyremnibWGbK7WfftHzc= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -291,7 +292,6 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20200213170602-2833bce08e4c/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -301,7 +301,6 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -429,7 +428,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -620,11 +618,11 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= diff --git a/gui/gui.go b/gui/gui.go index 1dfdb39..048655f 100644 --- a/gui/gui.go +++ b/gui/gui.go @@ -2,6 +2,7 @@ import ( "kingdee-dbapi/logger" + "kingdee-dbapi/nsqclient" "strings" "kingdee-dbapi/config" @@ -91,6 +92,9 @@ report.StartReport() + // 寮�鍚闃� + go nsqclient.InitNsqConsumer(config.Options.QueryTopic, "sensor01", kingdee.QueryMsgHandle) + go webserver.Serve(serverPort.Text) }) diff --git a/kingdee/db.go b/kingdee/db.go index 5637219..d932284 100644 --- a/kingdee/db.go +++ b/kingdee/db.go @@ -2,8 +2,13 @@ import ( "fmt" - "github.com/jinzhu/gorm" + "kingdee-dbapi/logger" + + //"gorm.io/driver/sqlserver" + //"gorm.io/gorm" + + "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mssql" ) @@ -17,8 +22,11 @@ sqlServer := fmt.Sprintf("sqlserver://%s:%s@%s:1433?database=%s;encrypt=disable;", username, password, addr, dbName) + logger.Debug("sqlServer鍦板潃:%s", sqlServer) // 鎵撳紑鏁版嵁搴撹繛鎺� db, err = gorm.Open("mssql", sqlServer) + // gorm 2.0 + //db, err = gorm.Open(sqlserver.Open(sqlServer), &gorm.Config{}) if err != nil { return err } @@ -30,9 +38,16 @@ return db } -// CloseDB . +// 2.0 CloseDB . +//func CloseDB() { +// sqlDB, err := db.DB() +// if err != nil { +// return +// } +// +// sqlDB.Close() +//} + func CloseDB() { - if db != nil { - db.Close() - } + db.Close() } 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 } diff --git a/main.go b/main.go index 5f73f19..08d8070 100644 --- a/main.go +++ b/main.go @@ -16,8 +16,10 @@ ) func main() { - logger.InitLog("kdingdee-dbapi.log", "debug", 15, false) - logger.Info("playletServer start!") + logger.InitLog("kingdee-dbapi.log", "debug", 15, false) + logger.Info("kdingdee-dbapi start!") + + os.Setenv("GODEBUG", "tls10default=1") config.Load() @@ -29,9 +31,6 @@ // 鍒濆鍖杗sq nsqclient.InitNsqProducer() - - // 寮�鍚闃� - go nsqclient.InitNsqConsumer(config.Options.QueryTopic, "sensor01", kingdee.QueryMsgHandle) // 璁剧疆涓枃瀛椾綋 setFont() diff --git a/nsqclient/client.go b/nsqclient/client.go index 46f5911..19e7210 100644 --- a/nsqclient/client.go +++ b/nsqclient/client.go @@ -2,7 +2,7 @@ import ( "context" - "fmt" + "kingdee-dbapi/logger" "kingdee-dbapi/config" ) @@ -14,7 +14,7 @@ var err error producerCli, err = NewProducer(config.Options.NsqServer) if err != nil { - fmt.Println(err.Error()) + logger.Error("鍒涘缓nsq鐢熶骇瀹㈡埛绔け璐�, %s", err.Error()) } return err @@ -24,14 +24,14 @@ if producerCli == nil { err := InitNsqProducer() if err != nil { - fmt.Println("Init Nsq Client error:" + err.Error()) + logger.Error("鍒涘缓nsq鐢熶骇瀹㈡埛绔け璐�, %s", err.Error()) return false } } err := producerCli.Publish(topic, msg) if err != nil { - fmt.Println("Publish error:" + err.Error()) + logger.Error("nsp鍙戝竷娑堟伅澶辫触,涓婚:%s, %s", topic, err.Error()) } return err == nil @@ -39,12 +39,12 @@ func InitNsqConsumer(topic, channel string, handle func(data []byte) error) { if c, err := NewNsqConsumer(context.Background(), topic, channel); err != nil { - fmt.Println("NewNsqConsumer failed", err) + logger.Error("鍒涘缓nsq娑堣垂瀹㈡埛绔け璐�, %s", err.Error()) return } else { c.AddHandler(handle) if err := c.Run(config.Options.NsqServer, 1); err != nil { - fmt.Println("run consumer failed", err) + logger.Error("杩愯nsq娑堣垂瀹㈡埛绔け璐�, %s", err.Error()) } } diff --git a/report/report.go b/report/loop.go similarity index 64% rename from report/report.go rename to report/loop.go index 583732e..b2dbff3 100644 --- a/report/report.go +++ b/report/loop.go @@ -3,9 +3,6 @@ import ( "context" "kingdee-dbapi/logger" - "time" - - "kingdee-dbapi/config" ) var ctx context.Context @@ -36,7 +33,12 @@ // 涓婃姤鍗虫椂搴撳瓨 SendInventory() - time.Sleep(time.Duration(config.Options.SyncInterval) * time.Second) + // 娴嬭瘯鏌ヨ璇锋眰 + //sql := []byte("select * from t_icitem where FItemID=3316") + //ok := nsqclient.Produce(config.Options.QueryTopic, sql) + //logger.Debug("娴嬭瘯璇锋眰鎺ュ彛, %v", ok) + // + //time.Sleep(time.Duration(config.Options.SyncInterval) * time.Second) } } } diff --git a/report/task.go b/report/tasks.go similarity index 98% rename from report/task.go rename to report/tasks.go index 96380e2..de930dc 100644 --- a/report/task.go +++ b/report/tasks.go @@ -120,7 +120,7 @@ if !ok { logger.Warn("搴撳瓨鏁版嵁涓婃姤澶辫触") } else { - successCnt += end + successCnt = end } } logger.Debug("宸蹭笂鎶�%d鏉″簱瀛樻暟鎹�", successCnt) -- Gitblit v1.8.0