fix: adjustment directory structure

This commit is contained in:
zhangsz
2025-03-25 09:46:16 +08:00
parent e9b29a109d
commit 63ec6e5b14
167 changed files with 374 additions and 21127 deletions

View File

@@ -0,0 +1,575 @@
package Nrestful
import (
"time"
"encoding/binary"
_ "strings"
"strconv"
l4g "proxy/logger"//"github.com/sirupsen/logrus"
)
func decode_authcode_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.AuthCodeRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.AuthCodeRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.AuthCodeRsp.Code = strconv.Itoa(int(err_code))
rsp.AuthCodeRsp.Message = Rest_proxy_errcodemsg(err_code)
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_authcode_rsp: %#v", rsp.AuthCodeRsp)
return 0;
}
func decode_query_userData_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.QueryUserDataRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.QueryUserDataRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.QueryUserDataRsp.Code = strconv.Itoa(int(err_code))
rsp.QueryUserDataRsp.Message = Rest_proxy_errcodemsg(err_code)
case IE_MSISDN:
rsp.QueryUserDataRsp.TelNumber = string(buf[offset:offset+int(vallen)])
case IE_REMARK:
rsp.QueryUserDataRsp.Remark = string(buf[offset:offset+int(vallen)])
case IE_GROUP_NAME:
rsp.QueryUserDataRsp.UserGroupName = string(buf[offset:offset+int(vallen)])
case IE_STATUS:
rsp.QueryUserDataRsp.Status = strconv.Itoa(int(buf[offset]))
case IE_BALANCE:
rsp.QueryUserDataRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
case IE_EXPIRY_TIME:
tm := time.Unix(int64(binary.BigEndian.Uint64(buf[offset:offset+8])), 0)
rsp.QueryUserDataRsp.ExpireDate = tm.Format("2006-01-02 15:04:05")
case IE_REMAIN_MO_VOICE_MIN:
rsp.QueryUserDataRsp.RemainMoVoiceMinute = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
case IE_REMAIN_MT_VOICE_MIN:
rsp.QueryUserDataRsp.RemainMtVoiceMinute = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
case IE_REMAIN_SMS_NUM:
rsp.QueryUserDataRsp.RemainSmsVolume = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
case IE_REMAIN_DATA_VOL_MB:
rsp.QueryUserDataRsp.RemainDataVolume = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_query_userData_rsp: %#v", rsp.QueryUserDataRsp)
return 0;
}
func decode_bundleSubs_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.BundleSubsRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.BundleSubsRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.BundleSubsRsp.Code = strconv.Itoa(int(err_code))
rsp.BundleSubsRsp.Message = Rest_proxy_errcodemsg(err_code)
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_bundleSubs_rsp: %#v", rsp.BundleSubsRsp)
return 0
}
func decode_query_balance_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.QueryBalanceRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.QueryBalanceRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
err_code := binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.QueryBalanceRsp.Code = strconv.Itoa(int(err_code))
rsp.QueryBalanceRsp.Message = Rest_proxy_errcodemsg(err_code)
case IE_STATUS:
rsp.QueryBalanceRsp.Status = strconv.Itoa(int(buf[offset]))
case IE_BALANCE:
rsp.QueryBalanceRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
case IE_MO_EXPIRY:
tm := time.Unix(int64(binary.BigEndian.Uint32(buf[offset:offset+4])), 0)
rsp.QueryBalanceRsp.ExpireDate = tm.Format("2006-01-02 15:04:05")
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_query_balance_rsp: %#v", rsp.QueryBalanceRsp)
return 0
}
func decode_recharge_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.RechargeRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.RechargeRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
var err_code uint32
if vallen == 1 {
err_code = uint32(buf[offset])
} else {
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
}
rsp.RechargeRsp.Code = strconv.Itoa(int(err_code))
rsp.RechargeRsp.Message = Rest_proxy_errcodemsg(err_code)
case IE_STATUS:
rsp.RechargeRsp.Status = strconv.Itoa(int(buf[offset]))
case IE_BALANCE:
rsp.RechargeRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
case IE_MO_EXPIRY:
tm := time.Unix(int64(binary.BigEndian.Uint32(buf[offset:offset+4])), 0)
rsp.RechargeRsp.ExpiredTimestamp = tm.Format("2006-01-02 15:04:05")
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_recharge_rsp: %#v", rsp.RechargeRsp)
return 0
}
func decode_transfer_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.TransferRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.TransferRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
var err_code uint32
if vallen == 1 {
err_code = uint32(buf[offset])
} else {
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
}
rsp.TransferRsp.Code = strconv.Itoa(int(err_code))
rsp.TransferRsp.Message = Rest_proxy_errcodemsg(err_code)
case IE_AMOUNT:
rsp.TransferRsp.Balance = strconv.Itoa(int(binary.BigEndian.Uint32(buf[offset:offset+4])))
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_transfer_rsp: %#v", rsp.TransferRsp)
return 0
}
func decode_create_acct_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.CreateAccountRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.CreateAccountRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
var err_code uint32
if vallen == 1 {
err_code = uint32(buf[offset])
} else {
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
}
rsp.CreateAccountRsp.Code = strconv.Itoa(int(err_code))
rsp.CreateAccountRsp.Message = Rest_proxy_errcodemsg(err_code)
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_create_acct_rsp: %#v", rsp.CreateAccountRsp)
return 0
}
func decode_update_subs_req(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
rsp.UpdateSubsReq.OptFlag = 0
for {
if offset >= msglen {
break
}
tag = buf[offset]
offset++
vallen = buf[offset]
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_MSISDN:
rsp.UpdateSubsReq.TelNumber = string(buf[offset:offset+int(vallen)])
case IE_ACCOUNT_ID:
rsp.UpdateSubsReq.AccountIdU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
case IE_STATUS:
rsp.UpdateSubsReq.StatusU8 = buf[offset]
rsp.UpdateSubsReq.OptFlag |= 0x01
case IE_BALANCE:
rsp.UpdateSubsReq.BalanceU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.UpdateSubsReq.OptFlag |= 0x02
case IE_EXPIRY_TIME:
rsp.UpdateSubsReq.ExpDateU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.UpdateSubsReq.OptFlag |= 0x04
case IE_PLAN_ID:
rsp.UpdateSubsReq.PackageIdU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.UpdateSubsReq.OptFlag |= 0x08
case IE_RENT_CHARGE:
rsp.UpdateSubsReq.RentChargeU32 = binary.BigEndian.Uint32(buf[offset:offset+4])
rsp.UpdateSubsReq.OptFlag |= 0x10
case IE_VAS_CUG_STATUS:
rsp.UpdateSubsReq.VasCugStatusU8 = buf[offset]
rsp.UpdateSubsReq.OptFlag |= 0x20
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_update_subs_req: %#v", rsp.UpdateSubsReq)
return 0
}
func decode_update_subs_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset];
offset++
vallen = buf[offset];
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
if result == 0 {
rsp.UpdateSubsRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.UpdateSubsRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
var err_code uint32
if vallen == 1 {
err_code = uint32(buf[offset])
} else {
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
}
rsp.UpdateSubsRsp.Code = strconv.Itoa(int(err_code))
rsp.UpdateSubsRsp.Message = Rest_proxy_errcodemsg(err_code)
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_update_subs_rsp: %#v", rsp.UpdateSubsRsp)
return 0
}
func decode_delete_subs_rsp(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
var result byte = 1
for {
if offset >= msglen {
break
}
tag = buf[offset]
offset++
vallen = buf[offset]
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_RESULT:
result = buf[offset]
rsp.DeleteSubsRsp.Result = result
if result == 0 {
rsp.DeleteSubsRsp.Code = strconv.Itoa(int(ERRCODE_SUCCESS))
rsp.DeleteSubsRsp.Message = Rest_proxy_errcodemsg(ERRCODE_SUCCESS)
}
case IE_ERROR_CODE:
var err_code uint32
if vallen == 1 {
err_code = uint32(buf[offset])
} else {
err_code = binary.BigEndian.Uint32(buf[offset:offset+4])
}
rsp.DeleteSubsRsp.ErrorCode = err_code
rsp.DeleteSubsRsp.Code = strconv.Itoa(int(err_code))
rsp.DeleteSubsRsp.Message = Rest_proxy_errcodemsg(err_code)
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decode_update_subs_rsp: %#v", rsp.UpdateSubsRsp)
return 0
}
func decodeUpdateBundleUsageReq(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
var tag byte = 0
var vallen byte = 0
for {
if offset >= msglen {
break
}
tag = buf[offset]
offset++
vallen = buf[offset]
offset++
switch tag {
case IE_SRC_REF:
rsp.Src_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_DST_REF:
rsp.Dst_id = binary.BigEndian.Uint16(buf[offset:offset+2])
case IE_MSISDN:
rsp.UpdateBundleUsageReq.Msisdn = string(buf[offset:offset+int(vallen)])
case IE_SERVICE_TYPE:
rsp.UpdateBundleUsageReq.ServiceType = buf[offset]
case IE_ACCOUNT_ID:
rsp.UpdateBundleUsageReq.AccountId = binary.BigEndian.Uint32(buf[offset:offset+4])
case IE_PLAN_ID:
rsp.UpdateBundleUsageReq.PlanId = binary.BigEndian.Uint32(buf[offset:offset+4])
case IE_BUNDLE_ID:
rsp.UpdateBundleUsageReq.BundleId = binary.BigEndian.Uint32(buf[offset:offset+4])
case IE_PLAN_VALUE:
rsp.UpdateBundleUsageReq.PlanValue = binary.BigEndian.Uint64(buf[offset:offset+8])
case IE_PLAN_USED_VALUE:
rsp.UpdateBundleUsageReq.PlanUsedValue = binary.BigEndian.Uint64(buf[offset:offset+8])
case IE_SESS_UPDATE_TIME:
rsp.UpdateBundleUsageReq.SessUpdateTime = binary.BigEndian.Uint32(buf[offset:offset+4])
case IE_PLAN_VALUE_ADD_THIS_TIME:
rsp.UpdateBundleUsageReq.PlanValueAddThisTime = binary.BigEndian.Uint64(buf[offset:offset+8])
default:
}
offset += int(vallen)
}
l4g.RestLog.Debugf("decodeUpdateBundleUsageReq: %#v", rsp.UpdateSubsRsp)
return 0
}
func Decode_udp_msg(buf []byte, msglen int, rsp *RestRsp) int {
var offset int = 0
if msglen <= 9 {
return -1
}
rsp.MsgType = buf[offset]
offset++
switch (rsp.MsgType) {
case REST_SEND_AUTHCODE_RSP:
return decode_authcode_rsp(buf[1:], msglen-1, rsp)
case REST_QUERY_USERDATA_RSP:
return decode_query_userData_rsp(buf[1:], msglen-1, rsp)
case REST_BUNDLE_SUBS_RSP:
return decode_bundleSubs_rsp(buf[1:], msglen-1, rsp)
case REST_RECHARGE_RSP:
return decode_recharge_rsp(buf[1:], msglen-1, rsp)
case REST_TRANSFER_RSP:
return decode_transfer_rsp(buf[1:], msglen-1, rsp)
case REST_QUERY_BALANCE_RSP:
return decode_query_balance_rsp(buf[1:], msglen-1, rsp)
case REST_CRM_CREATE_ACCT_RES:
return decode_create_acct_rsp(buf[1:], msglen-1, rsp)
case REST_CRM_UPDATE_SUBS_REQ:
return decode_update_subs_req(buf[1:], msglen-1, rsp)
case REST_CRM_UPDATE_SUBS_RES:
return decode_update_subs_rsp(buf[1:], msglen-1, rsp)
case REST_CRM_DELETE_SUBS_RES:
return decode_delete_subs_rsp(buf[1:], msglen-1, rsp)
case REST_CRM_UPDATE_PLAN_INFO_REQ:
return decodeUpdateBundleUsageReq(buf[1:], msglen-1, rsp)
default:
return -1
}
}