查打印机状态

This commit is contained in:
suyl
2021-07-01 14:51:27 +08:00
parent 92b6d309e4
commit 3aec25bbdd
3 changed files with 74 additions and 57 deletions

View File

@@ -1,12 +1,20 @@
package cms
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"net"
"os"
"time"
)
type PrintInfo struct {
PrintNo string
AppID int
}
func AddPrinter(appID int, printNo, printKey, name string) (err error) {
var (
db = dao.GetDB()
@@ -110,3 +118,46 @@ func GetPrintMsg(appID int, msgID string) (printMsg *model.PrintMsg, err error)
}
return printMsg, err
}
func GetPrinterStatus(appID int, printNo string) (status int, err error) {
var (
db = dao.GetDB()
)
//看有没有
if printers, _ := dao.GetPrinters(db, appID, printNo); len(printers) == 0 {
return status, fmt.Errorf("该应用下未找到该打印机print_no : %v", printNo)
} else {
server := "print.jxcs.net:8000"
tcpAddr, err := net.ResolveTCPAddr("tcp4", server)
if err != nil {
os.Exit(1)
return status, err
}
conn, err := net.DialTCP("tcp", nil, tcpAddr)
if err != nil {
return status, err
}
status = connHandler(conn, &PrintInfo{
PrintNo: printNo,
AppID: appID,
})
}
return status, err
}
func connHandler(c net.Conn, printInfo *PrintInfo) (status int) {
defer c.Close()
//缓冲
buf := make([]byte, 1024)
for {
data, _ := json.Marshal(printInfo)
//写入数据
c.Write(data)
//服务器端返回的数据写入buf
c.Read(buf)
//status = buf[:]
//服务器端回传的信息
//fmt.Println("server response:", string(buf[0:cnt]))
}
return status
}