尝试打印
This commit is contained in:
1
business/model/dao/dao_print.go
Normal file
1
business/model/dao/dao_print.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package dao
|
||||||
@@ -1,18 +1,15 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"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/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"github.com/astaxie/beego/server/web"
|
"github.com/astaxie/beego/server/web"
|
||||||
"net"
|
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ApiController struct {
|
type ApiController struct {
|
||||||
@@ -110,7 +107,6 @@ func (c *ApiController) CallOpenAPI() {
|
|||||||
//call
|
//call
|
||||||
urls, _ = c.Input()
|
urls, _ = c.Input()
|
||||||
dataMap = utils.URLValues2Map(urls)
|
dataMap = utils.URLValues2Map(urls)
|
||||||
delete(dataMap, keyAppID)
|
|
||||||
delete(dataMap, keyMethod)
|
delete(dataMap, keyMethod)
|
||||||
delete(dataMap, keyTimestamp)
|
delete(dataMap, keyTimestamp)
|
||||||
parms = []reflect.Value{reflect.ValueOf(dataMap)}
|
parms = []reflect.Value{reflect.ValueOf(dataMap)}
|
||||||
@@ -155,62 +151,21 @@ func (c *ApiController) AddPrint(dataMap map[string]interface{}) (data string, e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *ApiController) DoPrint(dataMap map[string]interface{}) (data string, err error) {
|
func (c *ApiController) DoPrint(dataMap map[string]interface{}) (data string, err error) {
|
||||||
data = dataMap["data"].(string)
|
var (
|
||||||
server := "print.jxcs.net:8000"
|
content = dataMap["data"].(string)
|
||||||
tcpAddr, err := net.ResolveTCPAddr("tcp4", server)
|
printNo = dataMap["print_no"].(string)
|
||||||
if err != nil {
|
orderNo = utils.Interface2Int64WithDefault(dataMap["order_no"], 0)
|
||||||
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
|
db = dao.GetDB()
|
||||||
os.Exit(1)
|
)
|
||||||
|
if orderNo == 0 {
|
||||||
|
return data, fmt.Errorf("订单序号不能为0")
|
||||||
}
|
}
|
||||||
conn, err := net.DialTCP("tcp", nil, tcpAddr)
|
printMsg := &model.PrintMsg{
|
||||||
if err != nil {
|
PrintNo: printNo,
|
||||||
return
|
Content: content,
|
||||||
|
OrderNo: int(orderNo),
|
||||||
}
|
}
|
||||||
textChan = make(chan string, 10)
|
dao.WrapAddIDCULDEntity(printMsg, "")
|
||||||
textChan <- data
|
dao.CreateEntity(db, printMsg)
|
||||||
go connHandler(conn)
|
|
||||||
return data, err
|
return data, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func connHandler(c net.Conn) {
|
|
||||||
str := "1e"
|
|
||||||
const1 := "0200ff50"
|
|
||||||
orderNo := "0001" //订单序列号
|
|
||||||
printInit := "1b40" //打印机初始化
|
|
||||||
voice := "1b59415501" //语音响一次
|
|
||||||
check := "ff"
|
|
||||||
select {
|
|
||||||
case s := <-textChan:
|
|
||||||
//写入数据
|
|
||||||
printData := hex.EncodeToString([]byte(s))
|
|
||||||
lenData := int64(len(str) + len(const1) + len(orderNo) + len(printInit) + len(voice) + 1 + 2 + len(printData))
|
|
||||||
x1, x2 := int2h8l8(lenData / 2)
|
|
||||||
data := str + x1 + x2 + const1 + orderNo + printInit + voice + printData + check
|
|
||||||
n, err := c.Write([]byte(data))
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Write err:", err, n)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func int2h8l8(i int64) (h, l string) {
|
|
||||||
origin2 := fmt.Sprintf("%b", i)
|
|
||||||
flag := 16 - len(origin2)
|
|
||||||
for i := 0; i < flag; i++ {
|
|
||||||
origin2 = "0" + origin2
|
|
||||||
}
|
|
||||||
begin8 := origin2[:8]
|
|
||||||
end8 := origin2[8:]
|
|
||||||
r1, _ := strconv.ParseInt(begin8, 2, 32)
|
|
||||||
r2, _ := strconv.ParseInt(end8, 2, 32)
|
|
||||||
h = fmt.Sprintf("%x", r1)
|
|
||||||
l = fmt.Sprintf("%x", r2)
|
|
||||||
if len(h) < 2 {
|
|
||||||
h = "0" + h
|
|
||||||
}
|
|
||||||
if len(l) < 2 {
|
|
||||||
l = "0" + l
|
|
||||||
}
|
|
||||||
return h, l
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user