1
This commit is contained in:
@@ -76,6 +76,7 @@ func (t *TcpClient) handleConn(c net.Conn) error {
|
|||||||
c.Write([]byte("ok"))
|
c.Write([]byte("ok"))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
data = "1e001a020001513132303232303931353030313935390000008a"
|
||||||
//证明是心跳
|
//证明是心跳
|
||||||
if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) {
|
if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) {
|
||||||
printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8])
|
printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8])
|
||||||
@@ -91,6 +92,7 @@ func (t *TcpClient) handleConn(c net.Conn) error {
|
|||||||
if t.getClients(printNo) == nil {
|
if t.getClients(printNo) == nil {
|
||||||
t.addConn(c, printNo, status)
|
t.addConn(c, printNo, status)
|
||||||
t.buildAllMap(printNo)
|
t.buildAllMap(printNo)
|
||||||
|
t.TimeoutMap[printNo] <- true
|
||||||
t.HandleTcpMessages(printNo)
|
t.HandleTcpMessages(printNo)
|
||||||
t.doPrint(printNo)
|
t.doPrint(printNo)
|
||||||
if status == printerStatusOnline {
|
if status == printerStatusOnline {
|
||||||
@@ -170,6 +172,7 @@ func (t *TcpClient) changePrintMsg(data string, orderNo int64, printNo string) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *TcpClient) HandleTcpMessages(printNo string) {
|
func (t *TcpClient) HandleTcpMessages(printNo string) {
|
||||||
|
fmt.Println("============:", t.getTimeOut(printNo))
|
||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
offset, pageSize = 0, 10
|
offset, pageSize = 0, 10
|
||||||
@@ -318,6 +321,7 @@ func (t *TcpClient) HandleCheckTcpHeart(key string) {
|
|||||||
globals.SugarLogger.Debugf("HandleCheckTcpHeart begin key: %s", key)
|
globals.SugarLogger.Debugf("HandleCheckTcpHeart begin key: %s", key)
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
|
fmt.Println("============:", t.getTimeOut(key))
|
||||||
select {
|
select {
|
||||||
case <-t.TimeoutMap[key]:
|
case <-t.TimeoutMap[key]:
|
||||||
t.getClients(key).C.Close()
|
t.getClients(key).C.Close()
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ func (t *TcpClient) buildAllMap(key string) {
|
|||||||
defer t.Unlock()
|
defer t.Unlock()
|
||||||
t.MsgMap[key] = make(chan *model.PrintMsg, 1024)
|
t.MsgMap[key] = make(chan *model.PrintMsg, 1024)
|
||||||
t.CallBackMap[key] = make(chan string, 1024)
|
t.CallBackMap[key] = make(chan string, 1024)
|
||||||
t.TimeoutMap[key] = make(chan bool, 64)
|
t.TimeoutMap[key] = make(chan bool, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TcpClient) getPrintStatus(key string) int {
|
func (t *TcpClient) getPrintStatus(key string) int {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"net"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -83,36 +82,3 @@ func TestTen216(t *testing.T) {
|
|||||||
fmt.Println(gg)
|
fmt.Println(gg)
|
||||||
fmt.Println(kk)
|
fmt.Println(kk)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBuildTest(s *testing.T) {
|
|
||||||
l, err := net.Listen("tcp", ":8000")
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("listen error:", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for {
|
|
||||||
c, err := l.Accept()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("accept error:", err)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
go func() {
|
|
||||||
t := NewTcpClient()
|
|
||||||
if err := t.HandleConnTest(c); err != nil {
|
|
||||||
t = nil
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
func (t *TcpClient) HandleConnTest(c net.Conn) error {
|
|
||||||
c.Write([]byte(""))
|
|
||||||
t.addConn(c, "1111111", 1)
|
|
||||||
t.buildAllMap("1111111")
|
|
||||||
t.HandleTcpMessages("1111111")
|
|
||||||
t.doPrint("1111111")
|
|
||||||
changePrinterStatus("1111111", 1)
|
|
||||||
t.HandleCheckTcpHeart("1111111")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|||||||
41
main.go
41
main.go
@@ -9,18 +9,13 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxstore/misc"
|
"git.rosy.net.cn/jx-callback/business/jxstore/misc"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasks"
|
|
||||||
|
|
||||||
beego "github.com/astaxie/beego/server/web"
|
beego "github.com/astaxie/beego/server/web"
|
||||||
|
|
||||||
// 导入缺省订单调度器
|
// 导入缺省订单调度器
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
|
||||||
"git.rosy.net.cn/jx-callback/globals/beegodb"
|
"git.rosy.net.cn/jx-callback/globals/beegodb"
|
||||||
|
|
||||||
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay"
|
_ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay"
|
||||||
@@ -102,21 +97,21 @@ func main() {
|
|||||||
if !checkCmdFlags() {
|
if !checkCmdFlags() {
|
||||||
Init()
|
Init()
|
||||||
// 延时的原因是等回调准备好
|
// 延时的原因是等回调准备好
|
||||||
if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" {
|
//if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" {
|
||||||
utils.AfterFuncWithRecover(2*time.Second, func() {
|
// utils.AfterFuncWithRecover(2*time.Second, func() {
|
||||||
if err := tasks.RefreshDingDingToken(); err != nil {
|
// if err := tasks.RefreshDingDingToken(); err != nil {
|
||||||
globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err)
|
// globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err)
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
if globals.IsProductEnv() {
|
// if globals.IsProductEnv() {
|
||||||
api.DingDingAPI.DeleteCallback()
|
// api.DingDingAPI.DeleteCallback()
|
||||||
if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil {
|
// if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil {
|
||||||
globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err)
|
// globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
cms.ResetJobTimers()
|
// cms.ResetJobTimers()
|
||||||
}
|
//}
|
||||||
if beego.BConfig.RunMode != "prod" {
|
if beego.BConfig.RunMode != "prod" {
|
||||||
beego.BConfig.WebConfig.DirectoryIndex = true
|
beego.BConfig.WebConfig.DirectoryIndex = true
|
||||||
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
||||||
@@ -129,9 +124,9 @@ func main() {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
if globals.IsPrintEnv() {
|
//if globals.IsPrintEnv() {
|
||||||
event.ListenTcp()
|
event.ListenTcp()
|
||||||
}
|
//}
|
||||||
beego.Run()
|
beego.Run()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user