// 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
}