fonchain-container/cmd/internal/embedded/implement/tcp/message/common.go
2024-07-02 11:56:53 +08:00

55 lines
1.0 KiB
Go

// Package message -----------------------------
// @file : common.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2024/5/23 下午2:20
// -------------------------------------------
package message
type CommonType []byte
func (m CommonType) GetCmd() string {
return readStrNumber(m, 0, 3)
}
func (m CommonType) GetMchId() string {
return readStrNumber(m, 3, 8)
}
func (m CommonType) GetCtrID() string {
return readStrNumber(m, 8, 11)
}
func (m CommonType) GetBody() string {
return readString(m, 11, 512)
}
func (m CommonType) GetFull() string {
return readString(m, 0, 512)
}
func readString(msg []byte, start, end int) string {
var m string
for i := start; i < end; i++ {
if msg[i] == 0 {
continue
} else {
m += string(msg[i])
}
if len(msg) == i-1 {
break
}
}
return m
}
func readStrNumber(msg []byte, start, end int) string {
var m string
for i := start; i < end; i++ {
if msg[i] == 0 || msg[i] == 48 {
m += "0"
} else {
m += string(msg[i])
}
if len(msg) == i-1 {
break
}
}
return m
}