f5/sysutils.go
aozhiwei 3a39acfd9b 1
2020-10-30 14:57:14 +08:00

84 lines
1.9 KiB
Go

package f5
import (
"os"
"strings"
"q5"
)
const (
ONLINE_ENV = 0
TEST_ENV = iota
DEV_ENV = iota
)
var serverEnv int32
func IsTestEnv() bool {
return serverEnv == TEST_ENV
}
func IsOnlineEnv() bool {
return serverEnv == ONLINE_ENV
}
func IsDevEnv() bool {
return serverEnv == DEV_ENV
}
func IsValidSessionId(accountId string, sessionId string, key string) bool {
tmpStrings := strings.Split(sessionId, "_")
if len(tmpStrings) < 4 {
return false
}
sessionCreateTime := new(q5.XValue).SetString(tmpStrings[0]).GetString()
registerTime := new(q5.XValue).SetString(tmpStrings[1]).GetString()
md5Str := new(q5.XValue).SetString(tmpStrings[2]).GetString()
//SysLog().Debug("%s", accountId + key + registerTime + sessionCreateTime)
//SysLog().Debug("md51=%s md52=%s", q5.Md5Str(accountId + key + registerTime + sessionCreateTime), md5Str)
return q5.Md5Str(accountId + key + registerTime + sessionCreateTime) == md5Str
}
func ExtractRegisterTimeFromSessionId(sessionId string) int64 {
tmpStrings := strings.Split(sessionId, "_")
if len(tmpStrings) < 4 {
return 0
}
return new(q5.XValue).SetString(tmpStrings[1]).GetInt64()
}
func ExtractGameIdFromAccountId(accountId string) int32 {
tmpStrings := strings.Split(accountId, "_")
if len(tmpStrings) < 2 {
return 0
}
return new(q5.XValue).SetString(tmpStrings[1]).GetInt32()
}
func ExtractChannelFromAccountId(accountId string) int32 {
tmpStrings := strings.Split(accountId, "_")
if len(tmpStrings) < 2 {
return 0
}
return new(q5.XValue).SetString(tmpStrings[0]).GetInt32()
}
func ExtractOpenIdFromAccountId(accountId string) string {
tmpStrings := strings.Split(accountId, "_")
if len(tmpStrings) < 3 {
return ""
}
return strings.Join(tmpStrings[2:], "_")
}
func init() {
switch os.Getenv("SERVER_ENV") {
case "TEST":
serverEnv = TEST_ENV
case "DEBUG":
serverEnv = DEV_ENV
default:
serverEnv = ONLINE_ENV
}
}