diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index 46e8e7201..8f281b3ed 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -25,7 +25,7 @@ func ListenTcp() { return } globals.SugarLogger.Debugf("begin listenTcp port 8000......") - go t.HandleTcpMessages() + //go t.HandleTcpMessages() go t.HandleCheckTcpHeart() //go t.doPrint2() //go t.doPrint(printMsgChanFail) @@ -96,6 +96,7 @@ func (t *TcpClient) handleConn(c net.Conn) { t.addConn(c, printNo, status) //t.buildCallBackMap(printNo) //t.buildMsgMap(printNo) + t.HandleTcpMessages(printNo) go t.doPrint2(printNo) changePrinterStatus(printNo, status) if status == printerStatusOnline { @@ -217,20 +218,22 @@ func (t *TcpClient) changePrintMsg(data string, orderNo int64, printNo string) ( return err } -func (t *TcpClient) HandleTcpMessages() { +func (t *TcpClient) HandleTcpMessages(printNo string) { var ( db = dao.GetDB() offset, pageSize = 0, 1 ) - for { - //一直读? - prints, _ := dao.GetPrintMsgs(db, []int{printMsgWait}, time.Now().Add(-time.Hour*3), time.Now(), offset, pageSize) - for _, printMsg := range prints { - t.addMsgChan(printMsg) - printMsg.Status = printMsgAlreadyLoad - dao.UpdateEntity(db, printMsg, "Status") + go func(key string) { + for { + //一直读? + prints, _ := dao.GetPrintMsgs(db, printNo, []int{printMsgWait}, time.Now().Add(-time.Hour*3), time.Now(), offset, pageSize) + for _, printMsg := range prints { + t.addMsgChan(printMsg) + printMsg.Status = printMsgAlreadyLoad + dao.UpdateEntity(db, printMsg, "Status") + } } - } + }(printNo) } func (t *TcpClient) doPrint2(key string) (err error) { diff --git a/business/model/dao/dao_print.go b/business/model/dao/dao_print.go index a2cc75448..831819779 100644 --- a/business/model/dao/dao_print.go +++ b/business/model/dao/dao_print.go @@ -25,13 +25,17 @@ func GetPrintMsgNoPage(db *DaoDB, printNo string, orderNo int64) (prints []*mode return prints, err } -func GetPrintMsgs(db *DaoDB, statuss []int, beginAt, endAt time.Time, offset, pageSize int) (prints []*model.PrintMsg, err error) { +func GetPrintMsgs(db *DaoDB, printNo string, statuss []int, beginAt, endAt time.Time, offset, pageSize int) (prints []*model.PrintMsg, err error) { sql := ` SELECT a.* FROM print_msg a WHERE 1 = 1 AND a.deleted_at = ? ` sqlParams := []interface{}{utils.DefaultTimeValue} + if printNo != "" { + sql += " AND a.print_no = ?" + sqlParams = append(sqlParams, printNo) + } if len(statuss) > 0 { sql += " AND a.status IN(" + GenQuestionMarks(len(statuss)) + ")" sqlParams = append(sqlParams, statuss)