This commit is contained in:
邹宗楠
2023-03-16 15:24:21 +08:00
parent b4bac4ea17
commit a0c528d299
4 changed files with 23 additions and 58 deletions

View File

@@ -76,6 +76,7 @@ func (t *TcpClient) handleConn(c net.Conn) error {
c.Write([]byte("ok"))
return err
}
data = "1e001a020001513132303232303931353030313935390000008a"
//证明是心跳
if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) {
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 {
t.addConn(c, printNo, status)
t.buildAllMap(printNo)
t.TimeoutMap[printNo] <- true
t.HandleTcpMessages(printNo)
t.doPrint(printNo)
if status == printerStatusOnline {
@@ -170,6 +172,7 @@ func (t *TcpClient) changePrintMsg(data string, orderNo int64, printNo string) (
}
func (t *TcpClient) HandleTcpMessages(printNo string) {
fmt.Println("============:", t.getTimeOut(printNo))
var (
db = dao.GetDB()
offset, pageSize = 0, 10
@@ -318,6 +321,7 @@ func (t *TcpClient) HandleCheckTcpHeart(key string) {
globals.SugarLogger.Debugf("HandleCheckTcpHeart begin key: %s", key)
go func() {
for {
fmt.Println("============:", t.getTimeOut(key))
select {
case <-t.TimeoutMap[key]:
t.getClients(key).C.Close()

View File

@@ -192,7 +192,7 @@ func (t *TcpClient) buildAllMap(key string) {
defer t.Unlock()
t.MsgMap[key] = make(chan *model.PrintMsg, 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 {

View File

@@ -5,7 +5,6 @@ import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"net"
"strconv"
"strings"
"testing"
@@ -83,36 +82,3 @@ func TestTen216(t *testing.T) {
fmt.Println(gg)
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
View File

@@ -9,18 +9,13 @@ import (
"os"
"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/misc"
"git.rosy.net.cn/jx-callback/business/jxutils/tasks"
beego "github.com/astaxie/beego/server/web"
// 导入缺省订单调度器
"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/business/auth2/authprovider/alipay"
@@ -102,21 +97,21 @@ func main() {
if !checkCmdFlags() {
Init()
// 延时的原因是等回调准备好
if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" {
utils.AfterFuncWithRecover(2*time.Second, func() {
if err := tasks.RefreshDingDingToken(); err != nil {
globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err)
return
}
if globals.IsProductEnv() {
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 {
globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err)
}
}
})
cms.ResetJobTimers()
}
//if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" {
// utils.AfterFuncWithRecover(2*time.Second, func() {
// if err := tasks.RefreshDingDingToken(); err != nil {
// globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err)
// return
// }
// if globals.IsProductEnv() {
// 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 {
// globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err)
// }
// }
// })
// cms.ResetJobTimers()
//}
if beego.BConfig.RunMode != "prod" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
@@ -129,9 +124,9 @@ func main() {
}
}()
if globals.IsPrintEnv() {
event.ListenTcp()
}
//if globals.IsPrintEnv() {
event.ListenTcp()
//}
beego.Run()
}
}