1 Star 0 Fork 0

liuxuezhan / mylib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
NewOss.go 16.34 KB
一键复制 编辑 原始数据 按行查看 历史
liuxuezhan 提交于 2020-12-19 16:15 . 'ok'
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
package oss
import (
"fmt"
"gitee.com/liuxuezhan/mylib/GameServer/JsonConfig"
"gitee.com/liuxuezhan/mylib/Protocol"
"gitee.com/liuxuezhan/mylib/Utils/wlog"
"gitee.com/liuxuezhan/mylib/common"
"gitee.com/liuxuezhan/mylib/wtime"
"github.com/cihub/seelog"
"gopkg.in/square/go-jose.v1/json"
)
var NewOssInstance *NewOss
type NewOss struct {
ossLogger seelog.LoggerInterface
}
func initNewOss() {
NewOssInstance = &NewOss{}
ossLogger, err := seelog.LoggerFromConfigAsFile("conf/seelog.xml")
if err != nil {
panic(err.Error())
}
NewOssInstance.ossLogger = ossLogger
}
func ExitNewOss() {
NewOssInstance.ossLogger.Flush()
NewOssInstance.ossLogger.Close()
}
func (this *NewOss) ProcessOssMsg(param *OSSParam, ossData interface{}) {
if !JsonConfig.GlobalConfig.SSData.Enable {
return
}
eventName, ok := eventNameMap[param.EventID]
if !ok {
wlog.Warning("post to ss event id err", param.EventID)
data, err := json.Marshal(ossData)
if err == nil {
wlog.Error(string(data))
}
return
}
tmpData, err := json.Marshal(ossData)
if err != nil {
wlog.Error(err.Error())
return
}
tmpMap := make(map[string]interface{})
err = json.Unmarshal(tmpData, &tmpMap)
if err != nil {
wlog.Error(err.Error())
return
}
dataMap := make(map[string]string)
for k, v := range tmpMap {
_v, ok := v.(string)
if ok {
dataMap[k] = _v
} else {
dataMap[k] = common.ConvertToString(v)
}
}
if param.InsertTime == 0 {
param.InsertTime = wtime.GetNow()
}
data := &SSData{
AppID: "1006",
Source: "Server",
IP: param.DeviceIp,
Time: param.InsertTime,
ServerID: JsonConfig.GlobalConfig.Basic.ServerID,
Uid: common.Uint32ToString(param.UserId),
CharID: common.StringToUint32(param.UserCharId),
VIPLevel: param.VipLevel,
Version: param.Version,
Channel: param.Channel,
Level: param.UserLevel,
Platform: param.Platform,
Power: param.Power,
DeviceID: param.DeviceId,
EventName: eventName,
Properties: dataMap,
}
this.SendOssMsg(data)
}
func (this *NewOss) SendOssMsg(data *SSData) {
tmpData, err := json.Marshal(data)
if err == nil && this.ossLogger != nil {
this.ossLogger.Info(string(tmpData))
}
}
func GetCodString(tileId int32) string {
x, y, s := common.ConvertIdToCoordinate(tileId)
return fmt.Sprintf("{x:%d, y:%d, s:%d}", x, y, s)
}
func ConvertCashToString(cashAsset *Protocol.ST_CashAsset_PB) string {
if nil == cashAsset {
return ""
}
tmpMap := make(map[string]uint64)
if cashAsset.GetCash1() > 0 {
tmpMap["1"] = cashAsset.GetCash1()
}
if cashAsset.GetCash2() > 0 {
tmpMap["2"] = cashAsset.GetCash2()
}
if cashAsset.GetCash3() > 0 {
tmpMap["3"] = cashAsset.GetCash3()
}
if cashAsset.GetCash4() > 0 {
tmpMap["4"] = cashAsset.GetCash4()
}
if cashAsset.GetCash5() > 0 {
tmpMap["5"] = cashAsset.GetCash5()
}
if cashAsset.GetCash100() > 0 {
tmpMap["100"] = cashAsset.GetCash100()
}
data, err := json.Marshal(tmpMap)
if err == nil {
return string(data)
}
return ""
}
func ConvertUnitsToString(units *Protocol.ST_UnitAsset_PB) string {
if nil == units {
return ""
}
tmpMap := make(map[string]uint64)
for _, v := range units.Units {
tmpMap[common.ConvertToString(v.GetUnitid())] = v.GetUnitnum()
}
data, err := json.Marshal(tmpMap)
if err == nil {
return string(data)
}
return ""
}
func NewOssMapToJson(value map[interface{}]interface{}) string {
_value := make(map[string]interface{})
for k, v := range value {
if _k, ok := (k).(string); ok {
_value[_k] = v
} else {
_value[fmt.Sprint(k)] = v
}
}
bytes, err := json.Marshal(_value)
if nil != err {
return ""
}
return string(bytes)
}
type NewOssRegister struct {
*OSSParam
Did string `json:"Did"`
DeviceIDFA string `json:"DeviceIDFA"`
DeviceIDFV string `json:"DeviceIDFV"`
Mac string `json:"Mac"`
DeviceModel string `json:"DeviceModel"`
DeviceType string `json:"DeviceType"`
SystemVersion string `json:"SystemVersion"`
SystemName string `json:"SystemName"`
TimeRegion string `json:"TimeRegion"`
Network string `json:"Network"`
Platform uint32 `json:"Platform"`
Language uint32 `json:"Language"`
}
type NewOssLogin struct {
*OSSParam
LastLogout uint64 `json:"LastLogout"`
Hrank uint64
Rank uint64
Srank uint64
Cod string `json:"Cod"`
League uint64 `json:"League"`
Mac string `json:"Mac"`
Resolution string `json:"Resolution"`
Did string `json:"Did"`
DeviceIDFA string `json:"DeviceIDFA"`
DeviceIDFV string `json:"DeviceIDFV"`
TimeRegion string `json:"TimeRegion"`
Network string `json:"Network"`
Platform uint32 `json:"Platform"`
UserName string `json:"UserName"`
Language uint32 `json:"Language"`
SystemVersion string `json:"SystemVersion"`
DeviceModel string `json:"DeviceModel"`
}
type NewOssLogout struct {
*OSSParam
Cod string `json:"Cod"`
OnlineTime uint64 `json:"OnlineTime"`
League uint64 `json:"League"`
Did string `json:"Did"`
DeviceIDFA string `json:"DeviceIDFA"`
Mac string `json:"Mac"`
DeviceIDFV string `json:"DeviceIDFV"`
TimeRegion string `json:"TimeRegion"`
Network string `json:"Network"`
UserName string `json:"UserName"`
Platform uint32 `json:"Platform"`
Language uint32 `json:"Language"`
}
type NewOssServerState struct {
*OSSParam
Count uint64
}
type NewOssOnlineTime struct {
*OSSParam
DeviceIDFA string
OnlineTime uint64
Did string
Platform uint32
}
type NewOssPay struct {
*OSSParam
DeviceIDFA string
Did string
Platform uint32
GoodsID int64
GoodsPrice string
OrderID string
THOrderID string
Status uint32
AllPrice string
League string
UserName string
Hrank uint64
Rank uint64
Srank uint64
Lasttime uint64
}
type NewOssLuckyStar struct {
*OSSParam
DeviceIDFA string
LuckID uint32
GoodsID int64
GoodsPrice string
OrderID string
THOrderID string
Status uint32
}
// addCash, reduceCash, addItem, removeItem 共用此结构体
type NewOssAddCash struct {
*OSSParam
SrcType uint32
Type uint32
TotalCount uint64
Count uint64
Effect int64
}
// buildingUpgrade 和 researchUpgrade 共用此结构体
type NewOssBuildingUpgrade struct {
*OSSParam
ObjectID uint32
ObjectLV uint32
ComsumeRorTime string
Comsume string
SubTime uint64
RemainTime uint64
Status uint32
}
type NewOssUserTrain struct {
*OSSParam
ObjectID uint32
Count uint64
TotalCount uint64
ComsumeRorTime string
Comsume string
SubTime uint64
Remain uint64
Status uint32
}
type NewOssUserGather struct {
*OSSParam
ObjectID uint32
ObjectLV uint32
Status uint32
Count uint32
Time uint64
Remain uint32
Cod string
Unit string
}
type NewOssBattle struct {
*OSSParam
Type uint32
Xtype uint32
Cod string
SquareID uint32
Hero string
Unit string
IsWin uint32
BattleType uint32
}
type NewOssMonsterBattle struct {
*OSSParam
League uint64
Count uint64
Type uint32
MonsterID int64
MonsterLV int64
Presbyter uint64
Partner string
Exp uint64
Hero string
Unit string
IsWin int
AttackHP uint64
LeftHP uint64
ItemList string
Num uint32
LanguageName string
Name string
}
type NewOssUnitChange struct {
*OSSParam
Type uint32
UnitType uint32
ChangeNum int32
Count int32
TotalCount uint64
}
type NewOssQuest struct {
*OSSParam
Type uint32
Chapter uint32
Level uint32
Star uint32
TaskType int64
BattleType uint32
Num uint32
IsWin uint32
Hero string
Unit string
ItemList string
}
type NewOssTaskFinish struct {
*OSSParam
Type uint32
TaskID uint32
ItemList string
}
type NewOssActivity struct {
*OSSParam
TaskID uint32
Type uint32
Score uint32
BoxLevel uint32
TaskScore uint32
TotalCount uint32
Count uint32
}
type NewOssExtract struct {
*OSSParam
Type uint32
TaskType uint32
ItemList string
}
type NewOssHero struct {
*OSSParam
HeroID uint32
Type uint32
Skill uint32
BeforeLevel uint32
AfterLevel uint32
Hero string
DeHeroNum int
}
type NewOssEquipment struct {
*OSSParam
ObjectID uint32
Count uint32
TotalCount uint32
Type uint32
}
type NewOssBlackStore struct {
*OSSParam
Renovate uint32
Type uint32
Count uint32
CostType uint32
CostCount uint32
Discount float32
}
type NewOssPrison struct {
*OSSParam
Type uint32
Count uint32
Information string
Words string
SelfRescue string
Post string
PVP string
RescueList string
}
type PrisonBounty struct {
ItemID uint32
ItemNum uint32
Tp uint32 // 1:设置悬赏 2:追加悬赏
}
type PrisonHijacker struct {
Publisher uint64
Recipient uint64
ItemID uint32
ItemNum uint32
}
type NewOssStatue struct {
*OSSParam
Type uint32
OpNum uint32
Quality uint32
SrcType uint32
Attributes string
Gems uint32
ItemList string
Cod string
StatueList string
TotalNum uint32
}
type NewOssTalentLevelUp struct {
*OSSParam
Type uint32
ObjectID uint32
Count uint32
TotalCount uint32
TalentLevel uint32
}
type NewOssLeagueGift struct {
*OSSParam
League uint64
GiftLV uint32
Type uint32
OpType uint32
}
type NewOssLeagueDevote struct {
*OSSParam
League uint64
ObjectID uint32
ObjectLV uint32
Type uint32
Count uint32
Point uint32
LeftPoint uint32
Time uint32
FundsAdd uint32
Funds uint64
Exp uint32
UserLX int32
}
type NewOssLeagueTreasure struct {
*OSSParam
League uint64
Type uint32
PType uint32
Gems uint32
ItemCost string
ItemList string
Count uint32
}
type NewOssLeagueHelp struct {
*OSSParam
League uint64
Type uint32
LeagueHelp uint64
DefID uint64
LeaguePoint uint32
LeaguePointLeft uint32
UserLX int32
}
type NewOssLeagueTransport struct {
*OSSParam
ReceiverId uint64
TransportList string
}
type NewOssMail struct {
*OSSParam
Type uint32
Id uint64
Title string
Content string
Sender uint64
Reward string
OpType uint32
RewardSource int32
}
type NewOssVip struct {
*OSSParam
League uint64
Point uint32
LeftPoint uint32
Type uint32
PType uint32
Count uint32
}
type NewOssDailyActive struct {
*OSSParam
League uint64
LeagueName string
LogicType int64
ActivityType int64
ActivityID int
Type uint32
Item string
}
type NewOssLeagueCupActivity struct {
*OSSParam
League uint64
Group uint32
UserLX int32
Type uint32
MaxType uint32
MinType uint32
RewardType uint32
Time uint32
ObjectNum uint32
TaskScore uint32
PlayerScore uint32
LeagueScore uint32
Num uint32
Rank uint32
ItemList string
}
type NewOssMineTruck struct {
*OSSParam
ItemList string
}
type NewOssSevenDayChallenge struct {
*OSSParam
Type uint32
TaskType uint32
TaskID uint32
TotalCount uint32
ItemList string
}
type NewOssDailyTask struct {
*OSSParam
Type uint32
ActivityType uint32
TaskID uint32
Score uint32
ItemList string
}
type FoolsDayTask struct {
*OSSParam
League uint64
ActiveID uint64
LogicType uint64
ActivityType uint32
Type uint32
Item string
}
type NewOssMonsterAtkCity struct {
*OSSParam
Number uint32
Name string
League string
Score uint32
LeagueScore uint32
LeagueHelp string
Type uint32
HeroID string
Unit string
}
type NewLotterCard struct {
*OSSParam
Type uint32
Count uint32
Btype string
ItemList string
}
type NewOssQuestionaire struct {
*OSSParam
ActivityId uint32
ItemList string
}
type NewOssLeagueBuilding struct {
*OSSParam
Allianceid uint64
Type uint64
Action uint64
Rsslist string
Cod string
Baselist string
}
type NewOssTrap struct {
*OSSParam
Type uint32
ObjectID uint32
Count uint64
TotalCount uint64
}
type NewOssUserSign struct {
*OSSParam
ID uint32
Type uint32
Num uint32
ItemList string
}
type NewOssSpy struct {
*OSSParam
League uint64
Cod string
Type string
ID uint64
ALevel uint32
Owner uint64
DefLeague uint64
}
type NewOssLogistics struct {
*OSSParam
Gems uint32
Type uint32
QuantityBase uint32
QuantityExtra uint32
Quantity uint32
Crit uint32
}
type NewOssUserMarch struct {
*OSSParam
Type uint32
Status uint32
Hero string
Unit string
Cod string
ToCod string
PType int64
Time uint64
Item string
}
type NewOssChat struct {
*OSSParam
Type uint32
Title string
Content string
OPType uint32
Language uint32
}
type NewOssUserChangeInfo struct {
*OSSParam
Type uint32
Old string
New string
}
type NewOssKingdomManage struct {
*OSSParam
League uint64
GiftLV uint32
LeaguePower uint64
LeagueNum uint32
UserLX int32
Type int32
Content string
ToUser string
}
type NewOssMoveMainCity struct {
*OSSParam
Type uint32
Old string
New string
ServerIDNew int32
}
type NewOssUserDaily struct {
*OSSParam
Username string
League uint64
LeagueName string
Cod string
Hero string
HeroNum int
Gems uint64
Metal uint64
Crystal uint64
Deuterium uint64
Gas uint64
Cola uint64
ForgingFactoryLevel uint32
RecruitmentCenterLevel uint32
LeagueCenterLevel uint32
TradingPostLevel uint32
ResearchCenterLevel uint32
DefenseSystemLevel uint32
DepotLevel uint32
BarracksLevel uint32
MechFactoryLevel uint32
TankFactoryLevel uint32
AircraftFactoryLevel uint32
MaintenanceStationLevel uint32
WarSquareLevel uint32
PrisonLevel uint32
RadarLevel uint32
GemMineLevel uint32
MetalMineLevel uint32
CrystalOreLevel uint32
DeuteriumSynthesizerLevel uint32
VespeneGasLevel uint32
ColaFactoryLevel uint32
PrisonerList string
}
type NewOssMiracleBattleTime struct {
*OSSParam
Status int32
City int
}
type NewOssLeagueDaily struct {
*OSSParam
League uint64
LeagueName string
ShortName string
LeagueLV uint32
Date uint64
Leader uint64
MAX uint32
LeagueNum uint32
LeaguePower uint64
LeagueLg uint32
GiftLV uint32
Cityid string
Devotelist string
Recomtech uint32
RecomTechLV uint32
Rank string
ActiveNum uint32
TotalPoint uint64
MemberList string
BuildingList string
}
type NewOssUserPVP struct {
*OSSParam
PVPType uint32
Type uint32
Hero string
DeHero string
AttServerID uint32
AttUid uint64
AttLeague uint64
AttLeaguePower uint64
AttCod string
DefServerID uint32
DefUid uint64
DefLeague uint64
DefLeaguePower uint64
DefCod string
Cod string
IsWin uint32
AttPower int64
DefPower int64
AttUnit string
DefUnit string
AttType string
DefType string
AttSubPower int64
DefSubPower int64
AttSubUnit string
DefSubUnit string
AttInjuredUnit string
DefInjuredUnit string
WorldEntryId int64
AttTime uint32
DefTime uint32
}
type NewOssLeagueMemberManage struct {
*OSSParam
League uint64
LeagueName string
ShortName string
LeagueNum uint32
PType string
ToUser uint64
}
type NewOssCommanderEvent struct {
*OSSParam
RewardType uint32
BType uint32
SType uint32
Point uint32
Rank uint32
}
type NewOssCrossing struct {
*OSSParam
LogicType uint32
TaskID uint32
League uint64
Type uint32
Count uint64
AllianceCount uint64
AllianceRank uint32
PersonelRank uint32
Itemlist string
}
1
https://gitee.com/liuxuezhan/mylib.git
git@gitee.com:liuxuezhan/mylib.git
liuxuezhan
mylib
mylib
v1.1.3

搜索帮助