查打印机状态
This commit is contained in:
@@ -1,12 +1,20 @@
|
|||||||
package cms
|
package cms
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
|
"net"
|
||||||
|
"os"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type PrintInfo struct {
|
||||||
|
PrintNo string
|
||||||
|
AppID int
|
||||||
|
}
|
||||||
|
|
||||||
func AddPrinter(appID int, printNo, printKey, name string) (err error) {
|
func AddPrinter(appID int, printNo, printKey, name string) (err error) {
|
||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
@@ -110,3 +118,46 @@ func GetPrintMsg(appID int, msgID string) (printMsg *model.PrintMsg, err error)
|
|||||||
}
|
}
|
||||||
return printMsg, err
|
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
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,66 +1,9 @@
|
|||||||
package cms
|
package cms
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
"net"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
textChan chan string
|
textChan chan string
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestTemp() {
|
func TestTemp() {
|
||||||
server := "127.0.0.1:8000"
|
|
||||||
tcpAddr, err := net.ResolveTCPAddr("tcp4", server)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
fmt.Println("tcpaddr", utils.Format4Output(tcpAddr, true))
|
|
||||||
conn, err := net.DialTCP("tcp", nil, tcpAddr)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Dial err:", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
textChan = make(chan string, 10)
|
|
||||||
connHandler(conn)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestTemp2(data string) {
|
|
||||||
textChan <- data
|
|
||||||
}
|
|
||||||
|
|
||||||
func connHandler(c net.Conn) {
|
|
||||||
//接收终端输入
|
|
||||||
//reader := bufio.NewReader(os.Stdin)
|
|
||||||
//缓冲
|
|
||||||
//buf := make([]byte, 1024)
|
|
||||||
fmt.Println("Please input data...")
|
|
||||||
go func() {
|
|
||||||
for {
|
|
||||||
//读取终端输入直到读取到\n
|
|
||||||
//input, err := reader.ReadString('\n')
|
|
||||||
//if err != nil {
|
|
||||||
// fmt.Println("ReadString err:", err)
|
|
||||||
// return
|
|
||||||
//}
|
|
||||||
s := <-textChan
|
|
||||||
//写入数据
|
|
||||||
n, err := c.Write([]byte(s))
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Write err:", err, n)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
//服务器端返回的数据写入buf
|
|
||||||
//cnt, err := c.Read(buf)
|
|
||||||
//if err != nil {
|
|
||||||
// fmt.Println("Read err:", err)
|
|
||||||
// return
|
|
||||||
//}
|
|
||||||
//服务器端回传的信息
|
|
||||||
//fmt.Println("server response:", string(buf[0:cnt]))
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -340,3 +340,26 @@ func (c *ApiController) GetPrintMsg(dataMap map[string]interface{}) (data, errCo
|
|||||||
}
|
}
|
||||||
return data, errCode, err
|
return data, errCode, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//查询打印机状态
|
||||||
|
func (c *ApiController) GetPrinterStatus(dataMap map[string]interface{}) (data, errCode string, err error) {
|
||||||
|
var (
|
||||||
|
printNo string
|
||||||
|
appID int
|
||||||
|
)
|
||||||
|
globals.SugarLogger.Debugf("Begin API GetPrinterStatus data: [%v]", utils.Format4Output(dataMap, false))
|
||||||
|
if _, ok := dataMap[keyPrintNo].(string); !ok {
|
||||||
|
return buildParamErrCodeAndErr(keyPrintNo)
|
||||||
|
} else {
|
||||||
|
if printNo = dataMap[keyPrintNo].(string); printNo == "" {
|
||||||
|
return buildParamErrCodeAndErr(keyPrintNo)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
appID = dataMap[keyAppID].(int)
|
||||||
|
if status, err := cms.GetPrinterStatus(appID, printNo); err != nil {
|
||||||
|
return "", model.ErrCodeGeneralFailed, err
|
||||||
|
} else {
|
||||||
|
return utils.Int2Str(status), errCode, err
|
||||||
|
}
|
||||||
|
return data, errCode, err
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user