From 74b84bd21fbe16352e9def115816f495ad8f75e9 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 22 Jul 2021 10:10:42 +0800 Subject: [PATCH] aa --- business/jxstore/event/event_tcp.go | 94 ++++++++++++++++------------- 1 file changed, 51 insertions(+), 43 deletions(-) diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index db77d8c08..0ead43ffd 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -111,7 +111,7 @@ var ( regexpQrr = regexp.MustCompile(byteSignQrRight + "(.*?)" + byteSignQrRightE) regexpSound = regexp.MustCompile(byteSignSound + "(.*?)" + byteSignSoundE) - printMsgChan = make(chan *model.PrintMsg) + printMsgChan = make(chan interface{}) printMsgChanFail = make(chan *model.PrintMsg) ) @@ -227,7 +227,8 @@ func handleConn(c net.Conn) { } } else if strings.Contains(data, printText) { globals.SugarLogger.Debugf("handleConn print callback: %v", data) - changePrintMsg(data) + printMsgChan <- data + //changePrintMsg(data) } } } @@ -375,57 +376,64 @@ func HandleTcpMessages() { } } -func doPrint2(printMsgChan chan *model.PrintMsg) (err error) { +func doPrint2(printMsgChan chan interface{}) (err error) { var ( db = dao.GetDB() ) for { select { - case printMsg, _ := <-printMsgChan: - var ( - data []byte - c net.Conn - ) - if printMsg != nil { - if err = checkPrintMsg(db, printMsg); err == nil { - tcpClient.s.RLock() - if tcpClient.Clients[printMsg.PrintNo] != nil { - if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnline { - if tcpClient.Clients[printMsg.PrintNo].C != nil { - c = tcpClient.Clients[printMsg.PrintNo].C - data, err = buildMsg(printMsg) + case obj, _ := <-printMsgChan: + printMsg, ok := obj.(*model.PrintMsg) + if ok { + var ( + data []byte + c net.Conn + ) + if printMsg != nil { + if err = checkPrintMsg(db, printMsg); err == nil { + tcpClient.s.RLock() + if tcpClient.Clients[printMsg.PrintNo] != nil { + if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnline { + if tcpClient.Clients[printMsg.PrintNo].C != nil { + c = tcpClient.Clients[printMsg.PrintNo].C + data, err = buildMsg(printMsg) + } + } else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOffline { + err = fmt.Errorf("打印机离线!") + } else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnlineWithoutPaper { + err = fmt.Errorf("打印机缺纸!") } - } else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOffline { - err = fmt.Errorf("打印机离线!") - } else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnlineWithoutPaper { - err = fmt.Errorf("打印机缺纸!") + } + tcpClient.s.RUnlock() + } + } else { + err = fmt.Errorf("未查询到此printMsg") + } + if err != nil { + printMsg.Status = printMsgErr + printMsg.Comment = err.Error() + dao.UpdateEntity(db, printMsg, "Status", "Comment") + delete(tcpClient.Clients, printMsg.PrintNo) + if c != nil { + c.Close() + } + } else { + if c != nil { + if _, err = c.Write(data); err != nil { + globals.SugarLogger.Debugf("handleTcpMessages err [%v]", err) + delete(tcpClient.Clients, printMsg.PrintNo) + c.Close() + } else { + globals.SugarLogger.Debugf("handleTcpMessages success, data: %v", hex.EncodeToString(data)) + printMsg.Status = printMsgAlreadySend + dao.UpdateEntity(db, printMsg, "Status", "Comment") } } - tcpClient.s.RUnlock() } } else { - err = fmt.Errorf("未查询到此printMsg") - } - if err != nil { - printMsg.Status = printMsgErr - printMsg.Comment = err.Error() - dao.UpdateEntity(db, printMsg, "Status", "Comment") - delete(tcpClient.Clients, printMsg.PrintNo) - if c != nil { - c.Close() - } - } else { - if c != nil { - if _, err = c.Write(data); err != nil { - globals.SugarLogger.Debugf("handleTcpMessages err [%v]", err) - delete(tcpClient.Clients, printMsg.PrintNo) - c.Close() - } else { - globals.SugarLogger.Debugf("handleTcpMessages success, data: %v", hex.EncodeToString(data)) - printMsg.Status = printMsgAlreadySend - dao.UpdateEntity(db, printMsg, "Status", "Comment") - } - } + data, _ := <-printMsgChan + dataStr := data.(string) + changePrintMsg(dataStr) } } }