Create & Init Project...
This commit is contained in:
88
app/interface/main/kvo/model/module/module.go
Normal file
88
app/interface/main/kvo/model/module/module.go
Normal file
@ -0,0 +1,88 @@
|
||||
package module
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"hash/crc32"
|
||||
)
|
||||
|
||||
// Setting ModuleConf
|
||||
type Setting struct {
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
CheckSum int64 `json:"check_sum"`
|
||||
Data json.RawMessage `json:"data"`
|
||||
}
|
||||
|
||||
const (
|
||||
_playerID = 1
|
||||
_playerKey = "player"
|
||||
_webPlayerID = 2
|
||||
_webPlayerKey = "web_player"
|
||||
)
|
||||
|
||||
var _moduleMap = map[string]int{
|
||||
_playerKey: _playerID,
|
||||
_webPlayerKey: _webPlayerID,
|
||||
}
|
||||
|
||||
// VerifyModuleKey verify key
|
||||
func VerifyModuleKey(key string) int {
|
||||
return _moduleMap[key]
|
||||
}
|
||||
|
||||
// Result get module message
|
||||
func Result(moduleKeyID int, data string) (rm json.RawMessage, checkSum int64, err error) {
|
||||
var (
|
||||
bs []byte
|
||||
)
|
||||
switch moduleKeyID {
|
||||
case _playerID:
|
||||
player := &Player{}
|
||||
playerSha1 := &PlayerSha1{}
|
||||
err = json.Unmarshal([]byte(data), player)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
bs, err = json.Marshal(player)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
rm = json.RawMessage(bs)
|
||||
// check_sum
|
||||
err = json.Unmarshal([]byte(data), playerSha1)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
bs, err = json.Marshal(playerSha1)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
checkSum = int64(crc32.ChecksumIEEE(bs))
|
||||
return
|
||||
case _webPlayerID:
|
||||
player := &WebPlayer{}
|
||||
playerSha1 := &WebPlayerSha1{}
|
||||
err = json.Unmarshal([]byte(data), player)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
bs, err = json.Marshal(player)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
rm = json.RawMessage(bs)
|
||||
// check_sum
|
||||
err = json.Unmarshal([]byte(data), playerSha1)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
bs, err = json.Marshal(playerSha1)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
checkSum = int64(crc32.ChecksumIEEE(bs))
|
||||
return
|
||||
}
|
||||
err = fmt.Errorf("module_key_id not found: %v", moduleKeyID)
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user