diff --git a/business/jxstore/event/event_tcp_utils.go b/business/jxstore/event/event_tcp_utils.go index c0355e982..d71554eb9 100644 --- a/business/jxstore/event/event_tcp_utils.go +++ b/business/jxstore/event/event_tcp_utils.go @@ -41,57 +41,58 @@ const ( //标签 const ( - signBR = "
" //换行 - signCenter = "
" //居中 - signLeft = "" //居左 - signRight = "" //居右 - signBig = "" //字体放大 - signHighBig = "" //字体纵向放大 - signWideBig = "" //字体横向放大 - signQrCenter = "" //二维码居中 - signQrLeft = "" //二维码居左 - signQrRight = "" //二维码居右 - signSound, signSoundEnd = "", "" + signBR = "
" //换行 + signCenter = "
" //居中 + signLeft = "" //居左 + signRight = "" //居右 + signBig = "" //字体放大 + signHighBig = "" //字体纵向放大 + signWideBig = "" //字体横向放大 + signQrCenter = "" //二维码居中 + signQrLeft = "" //二维码居左 + signQrRight = "" //二维码居右 + signSound, signSoundEnd = "", "" // 声音结束标签 + // GPRS通讯说明,打印机识别二进制码 hexSignBROrEXE = "0a" - hexSignCenter = "1b6101" - hexSignLeft = "1b6100" - hexSignRight = "1b6102" + hexSignCenter = "1b6101" // 居中打印 + hexSignLeft = "1b6100" // 恢复居左打印 + hexSignRight = "1b6102" // 居右打印 hexSignNormal = "1b2100" - hexSignBig = "1b2130" - hexSignHighBig = "1b2110" - hexSignWideBig = "1b2120" - hexSignQrCenter = "1d5802" - hexSignQrLeft = "1d5800" - hexSignQrRight = "1d5804" - hexSignQr = "1b5a000106" //"1b5a000106" 0600 : 后面二维码的字节数 - hexSignQrEnd = "000a1b40" //000a0a0a1b40 - hexSignSound = "1d6b40" + hexSignBig = "1b2130" // 横向及纵向都放大 + hexSignHighBig = "1b2110" // 倍高 + hexSignWideBig = "1b2120" // 倍宽 + hexSignQrCenter = "1d5802" // 二维码居中 + hexSignQrLeft = "1d5800" // 二维码居左 + hexSignQrRight = "1d5804" // 二维码居右 + hexSignQr = "1b5a000106" // "1b5a000106" 0600 : 后面二维码的字节数 + hexSignQrEnd = "000a1b40" // 000a0a0a1b40 + hexSignSound = "1d6b40" // 音频指令 - //起始标签 - byteSignBR = "3c62723e" //换行 - byteSignCenter = "3c63656e7465723e" //居中 - byteSignLeft = "3c6c6566743e" //居左 - byteSignRight = "3c72696768743e" //居右 - byteSignBig = "3c623e" //字体放大 - byteSignHighBig = "3c68623e" //字体纵向放大 - byteSignWideBig = "3c77623e" //字体横向放大 - byteSignQrCenter = "3c7172633e" - byteSignQrLeft = "3c71726c3e" - byteSignQrRight = "3c7172723e" - byteSignSound = "3c736f756e643e" + //起始标签 -- 自定义标签utf8转码为gbk字符集 + byteSignBR = "3c62723e" // 换行 + byteSignCenter = "3c63656e7465723e" // 居中 + byteSignLeft = "3c6c6566743e" // 居左 + byteSignRight = "3c72696768743e" // 居右 + byteSignBig = "3c623e" // 字体放大 + byteSignHighBig = "3c68623e" // 字体纵向放大 + byteSignWideBig = "3c77623e" // 字体横向放大 + byteSignQrCenter = "3c7172633e" // 二维码居中 + byteSignQrLeft = "3c71726c3e" // 二维码居左 + byteSignQrRight = "3c7172723e" // 二维码居右 + byteSignSound = "3c736f756e643e" // 声音 //结束标签 - byteSignCenterE = "3c2f63656e7465723e" //居中 - byteSignLeftE = "3c2f6c6566743e" //居左 - byteSignRightE = "3c2f72696768743e" //居右 - byteSignBigE = "3c2f623e" //字体放大 - byteSignHighBigE = "3c2f68623e" //字体纵向放大 - byteSignWideBigE = "3c2f77623e" //字体横向放大 - byteSignQrCenterE = "3c2f7172633e" - byteSignQrLeftE = "3c2f71726c3e" - byteSignQrRightE = "3c2f7172723e" - byteSignSoundE = "3c2f736f756e643e" + byteSignCenterE = "3c2f63656e7465723e" // 居中 + byteSignLeftE = "3c2f6c6566743e" // 居左 + byteSignRightE = "3c2f72696768743e" // 居右 + byteSignBigE = "3c2f623e" // 字体放大 + byteSignHighBigE = "3c2f68623e" // 字体纵向放大 + byteSignWideBigE = "3c2f77623e" // 字体横向放大 + byteSignQrCenterE = "3c2f7172633e" // 二维码居中 + byteSignQrLeftE = "3c2f71726c3e" // 二维码居左 + byteSignQrRightE = "3c2f7172723e" // 二维码居右 + byteSignSoundE = "3c2f736f756e643e" // 声音 ) var ( @@ -405,30 +406,37 @@ func replaceContent(content string, printMsg *model.PrintMsg) (result string) { result = strings.ReplaceAll(result, k, v) } } + // 居中标签 if strings.Contains(result, byteSignCenter) && strings.Contains(result, byteSignCenterE) { result = strings.ReplaceAll(result, byteSignCenter, hexSignCenter) result = strings.ReplaceAll(result, byteSignCenterE, hexSignBROrEXE+hexSignLeft) } + // 居左标签 if strings.Contains(result, byteSignLeft) && strings.Contains(result, byteSignLeftE) { result = strings.ReplaceAll(result, byteSignLeft, hexSignLeft) result = strings.ReplaceAll(result, byteSignLeftE, hexSignBROrEXE+hexSignLeft) } + // 居右标签 if strings.Contains(result, byteSignRight) && strings.Contains(result, byteSignRightE) { result = strings.ReplaceAll(result, byteSignRight, hexSignRight) result = strings.ReplaceAll(result, byteSignRightE, hexSignBROrEXE+hexSignLeft) } + // 字体放大 if strings.Contains(result, byteSignBig) && strings.Contains(result, byteSignBigE) { result = strings.ReplaceAll(result, byteSignBig, hexSignBig) result = strings.ReplaceAll(result, byteSignBigE, hexSignBROrEXE+hexSignNormal) } + // 字体高大 if strings.Contains(result, byteSignHighBig) && strings.Contains(result, byteSignHighBigE) { result = strings.ReplaceAll(result, byteSignHighBig, hexSignHighBig) result = strings.ReplaceAll(result, byteSignHighBigE, hexSignBROrEXE+hexSignNormal) } + // 字体宽大 if strings.Contains(result, byteSignWideBig) && strings.Contains(result, byteSignWideBigE) { result = strings.ReplaceAll(result, byteSignWideBig, hexSignWideBig) result = strings.ReplaceAll(result, byteSignWideBigE, hexSignBROrEXE+hexSignNormal) } + // 二维码居中 if strings.Contains(result, byteSignQrCenter) && strings.Contains(result, byteSignQrCenterE) { if qrs := regexpQrc.FindStringSubmatch(result); len(qrs) > 0 { lenqr = len(qrs[1]) / 2 @@ -440,6 +448,7 @@ func replaceContent(content string, printMsg *model.PrintMsg) (result string) { result = strings.ReplaceAll(result, byteSignQrCenter, hexSignQrCenter+hexSignQr+hexLenqr+"00") result = strings.ReplaceAll(result, byteSignQrCenterE, hexSignQrEnd) } + // 二维码局左 if strings.Contains(result, byteSignQrLeft) && strings.Contains(result, byteSignQrLeftE) { if qrs := regexpQrl.FindStringSubmatch(result); len(qrs) > 0 { lenqr = len(qrs[1]) / 2 @@ -451,6 +460,7 @@ func replaceContent(content string, printMsg *model.PrintMsg) (result string) { result = strings.ReplaceAll(result, byteSignQrLeft, hexSignQrLeft+hexSignQr+hexLenqr+"00") result = strings.ReplaceAll(result, byteSignQrLeftE, hexSignQrEnd) } + // 二维码居右 if strings.Contains(result, byteSignQrRight) && strings.Contains(result, byteSignQrRightE) { if qrs := regexpQrr.FindStringSubmatch(result); len(qrs) > 0 { lenqr = len(qrs[1]) @@ -462,6 +472,7 @@ func replaceContent(content string, printMsg *model.PrintMsg) (result string) { result = strings.ReplaceAll(result, byteSignQrRight, hexSignQrRight+hexSignQr+hexLenqr+"00") result = strings.ReplaceAll(result, byteSignQrRightE, hexSignQrEnd) } + // 声音 if strings.Contains(result, byteSignSound) && strings.Contains(result, byteSignSoundE) { if sounds := regexpSound.FindStringSubmatch(result); len(sounds) > 0 { sound := sounds[1] diff --git a/business/jxstore/event/print_test.go b/business/jxstore/event/print_test.go new file mode 100644 index 000000000..194d0159d --- /dev/null +++ b/business/jxstore/event/print_test.go @@ -0,0 +1,24 @@ +package event + +import ( + "fmt" + "git.rosy.net.cn/jx-callback/business/model" + "testing" +) + +func TestPrintMsg(t *testing.T) { + + msg := &model.PrintMsg{ + ModelIDCULD: model.ModelIDCULD{}, + PrintNo: "1111", + Content: "\t您有新订单啦!\t\t
京西果园


\t\t
手机买菜上京西

极速到家送惊喜

--------------------------------
下单时间: 2021-08-27 21:57:26
预计送达: 2021-08-27 22:57:26
订单编号: 93154441730211100

美团外卖#19
93154441730211100
客户: 李大梦(先生)
电话: 15987200340
地址: 北浦伟业广场-2号楼 (伟业广场B区)@#云南省楚雄彝族自治州楚雄市鹿城镇伟业广场

客户备注:
【如遇缺货】: 缺货时电话与我沟通


商品明细:
品名 数量 单价 小计
--------------------------------
【自由拼】洗净红提160g/盒
x1 ¥9.20 ¥9.20
【果切】 牛奶木瓜约300g/份
x1 ¥9.70 ¥9.70
【自由拼】严选香蕉果切180g/盒
x1 ¥8.80 ¥8.80
[网红果切]乌梅小番茄25g/个
x10 ¥0.80 ¥8.00
[现剥]甜石榴籽约250g/份(1个)
x1 ¥3.50 ¥3.50
【爆品特惠】新鲜脆甜半斤哈密瓜 哈蜜瓜果切一盒250g/盒(230~260g)
x1 ¥0.01 ¥0.01
【爆品特惠】新鲜脆甜半斤哈密瓜 哈蜜瓜果切一盒250g/盒(230~260g)
x1 ¥8.60 ¥8.60

共7种16件商品
--------------------------------
商品质量问题请联系:

京西果园·果切·水果捞(果果屋店):15841011397


更多信息请关注官方微信: 京西菜市


--------------------------------
--------------------------------

\n", + OrderNo: 2022071109, + Status: 0, + Comment: "", + MsgID: "1", + } + + data, err := buildMsg(msg) + fmt.Println("data=", string(data)) + fmt.Println("err=", err) +} diff --git a/business/jxutils/jxutils_test.go b/business/jxutils/jxutils_test.go index 5290acd36..2852010fe 100644 --- a/business/jxutils/jxutils_test.go +++ b/business/jxutils/jxutils_test.go @@ -90,7 +90,6 @@ func TestSplitUniversalOrderID(t *testing.T) { []interface{}{ "3022716176275221584", "3022716176275221584", - model.VendorIDELM, }, []interface{}{ "15380342248732", @@ -105,7 +104,6 @@ func TestSplitUniversalOrderID(t *testing.T) { []interface{}{ "5287873015048", "5287873015048", - model.VendorIDWSC, }, } for _, v := range testData { @@ -151,7 +149,6 @@ func TestGetPossibleVendorIDFromVendorOrderID(t *testing.T) { }, []interface{}{ "5287873015048", - model.VendorIDWSC, }, } for _, v := range testData {