1 Star 0 Fork 0

liuxuezhan / mylib

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
oss.go 37.49 KB
一键复制 编辑 原始数据 按行查看 历史
liuxuezhan 提交于 2020-10-14 10:09 . 'new mylib'
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126
package oss
import (
"encoding/binary"
"encoding/json"
"fmt"
"time"
"gitee.com/liuxuezhan/mylib/Utils/wlog"
log "github.com/cihub/seelog"
)
var (
OSSEnable uint32 = 0
)
type OssNumberPair struct {
ID uint32
Num uint64
}
type MailOpType uint32
type ActionWorkType uint32
const (
AWT_ActionStart ActionWorkType = iota
AWT_ActionOver
AWT_ActionWork
AWT_ActionSpeed
)
const (
OSSShowLog bool = false
//>>>数据采集相关
TheDataType = 5001
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> AddCash|AddItem <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// srcType: 以下是添加物品/添加金钱的获取原因
AddCashSrcTypeTask = 1 // 主线任务
AddCashSrcTypeGM = 2 // GM
AddCashSrcTypeHeroTalent = 3 // 英雄天技能
AddCashSrcTypeProductionResource = 4 //
AddCashSrcTypeColonyProduce = 5 // 殖民生产
AddCashSrcTypePurchaseGift = 6 // 购买礼包
AddCashSrcTypeMail = 7 // 邮件
AddCashSrcTypeSignIn = 8 // 签到奖励
AddCashSrcTypeDispatchTask = 9 // 任务派遣
AddCashSrcTypeUseItem = 10 // 使用Item
AddCashSrcTypeMainCityEventReward = 11 // 主城事件奖励
AddCashSrcTypeDestroyStatue = 12 // 撤毁雕像
AddCashSrcTypeOpenBox = 13 // 开箱子
AddCashSrcTypeCancelBuild = 14 // 取消建筑
AddCashSrcTypeCancelProductUnit = 15 // 取消造兵
AddCashSrcTypeReceiveAllResource = 16 // 接收所有资源
AddCashSrcTypeCollectResource = 17 // 采集资源
AddCashSrcTypePVPResource = 18 // PVP掠夺资源
AddCashSrcTypeReleaseHero = 19 // release英雄
AddCashSrcTypeRequestRansom = 20 // 赎金
AddCashSrcTypeUseSkill = 21 // 使用技能
AddCashSrcTypeKillMonster = 22 // 杀野怪
AddCashSrcTypeBuyItem = 23 // 购买物品
AddCashSrcTypeBuyLeagueShopItem = 24 // 联盟商店购买物品
AddCashSrcTypeReceiveLeagueGift = 25 // 打开联盟礼包
AddCashSrcTypeExchangeMaterial = 26 // 兑换资源
AddCashSrcTypeStrollHeroEvent = 27 //英雄行走
AddCashSrcTypeDailyLoginReward = 28 // 每日签到
AddCashSrcTypeFirstBindAccount = 29 // 第一次绑定账号
AddCashSrcTypeMiracleWarGift = 30 // 王战赏赐礼包
AddCashSrcTypeJoinLeague = 31 // 王战赏赐礼包
AddCashSrcTypeBlackMarketExchange = 32 // 黑市兑换
AddCashSrcTypeBlackLeagueBox = 33 // 联盟宝箱
AddCashSrcTypeSupply = 34 // 后勤补给
AddCashSrcTypeChallenge = 35 //七日挑战奖励
AddCashSrcTypeCaptureCity = 36 //七日挑战奖励
AddCashSrcTypeAirdrop = 37 // 空投物资
AddCashSrcTypeHeroEquipmentComposite = 38 // 英雄装备合成
AddCashSrcTypeMapList = 39 // 副本推图
AddCashSrcTypeStrBoxReward = 40 // 副本星星宝箱奖励
AddCashSrcHeroDungeon = 41 // 挑战英雄副本
AddCashSrcActivity = 42 // 活动
AddCashSrcTypeOpenPack = 43 // 开包
AddCashSrcTypeExchange = 44 // 兑换得到物品
AddCashSrcMainCityLevel = 45 // 主城升级礼包
AddCashSrcActivityTask = 46 // 活跃度宝箱奖励
AddCashSrcStatueRecycle = 47 // 雕像回收
AddCashSrcMineGem = 48 // 钻石矿采矿
AddCashSrcMineTruck = 49 // 矿车收入
//AddCashSrcBoonCenter = 50 // 福利中心收入
AddCashSrcCardPool = 51 // 抽卡
AddCashSrcBoonPayfirst = 52 //首充福利
AddCashSrcBoonDuration = 53 //时限福利
AddCashSrcBoonSubScribe = 54 //订阅30天奖励
AddCashSrcBoonDayFree = 55 //日常免费
AddCashSrcBoonFunding = 56 //基金福利
AddCashSrcChapterTask = 57 //剧情引导奖励
AddCashSrcEquipCraft = 58 //制造装备
AddCashSrcMaterialCompose = 59 //合成装备材料
AddCashSrcMaterialDeComp = 60 //分解装备出材料
AddCashSrcBountyBack = 61 // 退还赏金
AddCashSrcBounty = 62 // 赏金
AddCashSrcLeagueCupTask = 63 // 联盟杯任务
AddCashSrcRecyclingBuilding = 64 //回收建筑
AddCashSrcLeagueCupScoreLevel = 65 //联盟杯积分段
AddCashSrcSevenDayTask = 66 //七日活动
AddCashSrcLordLevelUp = 67 //领主升级
AddCashFirBuyGiftReward = 68 //首次购买礼包的额外奖励
AddCashSrcNoviceTask = 69 // 七日任务
AddCashSrcRecove = 70 // 自动恢复
AddCashSrcDropActivity = 71 // 掉落活动
AddCashSrcExchangeActivity = 72 //兑换活动
AddCashSrcKillSummonMonster = 73 // 击杀召唤怪
AddCashSrcKillMonsterEx = 74 // 击杀单人野怪
AddCashSrcKillMutliMonster = 76 // 击杀多人怪
AddCashSrcTypeJewDeCompose = 77 // 宝石分解
AddCashSrcTypeStrongestCommander = 78 // 最强执政官
AddCashSrcExchangeHeroFragments = 79 // 对话英雄碎片
AddCashSrcTypeExpeditionShopBuy = 80 // 远征商店购买
AddCashSrcTypeInit = 81 // 初始化送
AddCashSrcTypeWorldSituation = 82 // 天下大势
AddCashSrcTypeLoginGift = 83 // 登陆有礼
AddCashSrcTypeDailyVIP = 84 // 每日VIP礼包
AddCashSrcTypeCollectLeagueMine = 85 // 采集联盟矿
AddVipStoreItem = 86 // vip商城
AddCashScrTypeLuckyStar = 87 //购买幸运星
DelVipStoreItem = 88 // vip商城
Activity_LogicTyep_10 = 89 // 活动任务奖励
GiftCode = 90 //兑换码
AddCumulativeGiftPage = 91 // 累计充值
AddCashSrcLeagueTask = 92 //联盟任务
Activity_LogicTyep_11 = 93 // 活动任务奖励
Activity_DailyTask = 94 //日常任务
Activity_Questionnaire = 95 //调查问卷
Activity_Gift = 96 //活动礼包
Activity_LotterCard = 97 //限定抽卡
CancelAtkRefond = 98 //取消攻击或集结返还体力
AddCashSrcTypeOfferGift = 99 // 购买折扣礼包
AddCashSrcTypePrepareForWar = 100 // 全力备战
AddCumulativeGiftPage2 = 101 // 累计充值2
AddCashSrcTypeTransferBattle = 102 // 最强执政官
AddCashSrcTypeExchangeCore = 103 // 跨服战兑换核心
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OssReduceCash|RemoveItem <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// srcType: 以下是扣除物品/扣除金钱的获取原因
ReduceCashSrcTypeSetCharName = 1000 // 玩家改名
ReduceCashSrcTypeRecruitHero = 1001 // 招募英雄
ReduceCashSrcTypeReviveHero = 1002 // 复活英雄
ReduceCashSrcTypeUpgradeHero = 1003 // 升级英雄
ReduceCashSrcTypeBuyItem = 1004 // 购买物品创建联盟
ReduceCashSrcTypeCreateLeague = 1005 // 创建联盟
ReduceCashSrcTypeSetLeague = 1006 // 配置联盟
ReduceCashSrcTypeStartMainCityEvent = 1007 // 开启主城事件
ReduceCashSrcTypeBuildStatue = 1008 // 建造雕像
ReduceCashSrcTypeExchangeMaterial = 1009 // 兑换资源
ReduceCashSrcTypeSpeedUpCash = 1010 // 使用资源加速
ReduceCashSrcTypeSpeedUpItem = 1011 // 使用道具加速
ReduceCashSrcTypeMiscResearch = 1012 // 秒研发
ReduceCashSrcTypeUpgradeBuilding = 1013 // 升级建筑
ReduceCashSrcTypeStartBuild = 1014 // 主城建造
ReduceCashSrcTypeMiscBuild = 1015 // 秒建造
ReduceCashSrcTypeMiscUpgradeBuild = 1016 // 秒升级建筑
ReduceCashSrcTypeMiscCure = 1017 // 秒治疗
ReduceCashScrTypeCure = 1018 // 治疗
ReduceCashScrTypeMiscProductUnit = 1019 // 秒造兵
ReduceCashScrTypeProductUnit = 1020 // 造兵
ReduceCashScrTypeStartResearch = 1021 // 开始研发
ReduceCashScrTypeLeagueTransport = 1022 // 联盟运输
ReduceCashScrTypePVPGrab = 1023 // PVP掠夺
ReduceCashSrcTypeRequestRansom = 1024 // 赎金
ReduceCashSrcTypeLeagueDevote = 1025 // 联盟捐赠
ReduceCashSrcTypeAddHeroExp = 1026 // 增加英雄经验
ReduceCashSrcTypeMoveMainCity = 1027 // 移动主城
ReduceCashSrcTypeGM = 1028 // GM
ReduceCashSrcTypeUseItem = 1029 // 使用道具
ReduceCashSrcTypeUnLockLand = 1030 // 解锁主城地块
ReduceCashSrcTypeOpenDepot = 1031 // 开仓库
ReduceCashSrcTypeRepairCityDenfense = 1032 // 修复城市防御
ReduceCashSrcTypeKillHero = 1033 // 修复城市防御
ReduceCashSrcTypeSpy = 1034 // 修复城市防御
ReduceCashSrcTypeChangeServe = 1035 // 迁服
ReduceCashSrcTypeOpenServerBuff = 1036 // 开全服buff
ReduceCashSrcTypeUploadAvatar = 1037 //上传头像
ReduceCashSrcTypeBlackMarketExchange = 1038 // 黑市兑换
ReduceCashSrcTypeLeagueBox = 1039 // 联盟宝箱
ReduceCashSrcTypeSupply = 1040 // 后勤补给
ReduceAirDrop = 1041 // 空投
ReduceCashSrcTypeUnitUpgrade = 1042 // 兵种升级
ReduceCashSrcTypeRecallLeagueOnwer = 1043 // 罢免盟主
ReduceCashSrcTypeHeroEquipmentComposite = 1044 // 英雄装备合成
ReduceCashSrcTypeHeroRankUp = 1045 // 英雄升阶
ReduceCashSrcTypeTrapConstruct = 1046 // 陷阱建造
ReduceCashSrcTypeDispatchTask = 1047 // 任务派遣
ReduceCashSrcTypeEnhanceStatue = 1048 // 雕像增幅[OLD]
ReduceCashSrcTypeEquipHero = 1049 // 英雄升级装备
ReduceCashSrcTypeExchange = 1050 // 兑换消耗物品
ReduceCashSrcTypeJewCompose = 1051 // 宝石合成
ReduceCashSrcTypeStatueBuild = 1052 // 雕像制造
ReduceCashSrcTypeStatueActive = 1053 // 雕像加成
ReduceCashSrcTypeStatueBuildSpeed = 1054 // 雕像制造加速
ReduceCashScrTypeAddSkillExp = 1055 // 英雄技能升级
ReduceCashScrTypeFactoryMake = 1056 // 合装备
ReduceCashScrTypeCardPool = 1057 // 抽卡
ReduceCashScrTypeMaterialDecomp = 1058 // 装备材料拆分
ReduceCashSrcTypeMaterialCompose = 1059 // 装备材料合成
ReduceCashSrcTypeRansomCommander = 1060 // 赎回指挥官
ReduceCashSrcTypeBounty = 1061 // 添加赏金
ReduceCashSrcTypeBlackMarketRefresh = 1062 // 刷新黑市
ReduceCashSrcTypeLeagueBoxRefresh = 1063 // 刷新联盟秘宝
ReduceCashSrcTypeLeagueCupTaskRefresh = 1064 // 联盟杯刷新任务
ReduceCashSrcTypeSpeedJoinMass = 1065 // 加速集结行军
ReduceCashSrcTypeKillMonster = 1067 // 杀血条单人野怪
ReduceCashSrcTypeNormalMap = 1068 // 普通副本
ReduceCashSrcTypeELITEMap = 1069 // 精英副本
ReduceCashSrcTypeExchangeActivity = 1070 // 兑换活动
ReduceCashSrcTypeSummonMonster = 1071 // 召唤野怪
ReduceCashSrcTypeJewDeCompose = 1072 // 宝石分解
ReduceWORLDMAP_IN = 1073 // 联盟仓库存取
ReduceCashSrcTypeHeroSkillUp = 1074 // 英雄技能升级
ReduceCashSrcTypeExchangeHeroFragments = 1075 // 对话英雄碎片
ReduceCashSrcTypeExpeditionShopRefreshItems = 1076 // 远征商店刷新
ReduceCashSrcTypeExpeditionShopBuy = 1077 // 远征商店购买
ReduceCashSrcTypeActivityEndRecycle = 1078 // 活动结束回收
ReduceCashSrcTypeKillMonsterEx = 1079 // 杀alpha单人野怪
ReduceCashSrcTypeKillMutiMonster = 1080 // 杀机械中枢
ReduceCashSrcTypeLotterCard = 1081 // 限定抽卡活动
ReduceCashSrcTypeTBCurDeathUnits = 1082 // 跨服决战 机械重建
ReduceCashSrcTypeExchangeCore = 1083 // 跨服决战 兑换核心
ReduceCashSrcTypeFoolsDay = 1084 // 愚人节活动
ReduceCashSrcTypeTBTransferServer = 1085 // 跨服决战跨服消耗道具
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TalentLevelUp <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// type: 使用具体的配置表里面的字符串(FuncType字段),不在这里做枚举
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> UserTrain|UserCancelTrain|UnitChange <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// object_id/object_type: 使用具体的配置表里面的字符串(ID),不在这里做枚举
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> UserGather <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// object_type: 使用(WorldEntryConfig.xlsx)里面的EntryID字段,不在这里做枚举
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> TaskFinish <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// taskid: 使用(DispatchTask.xlsx)里面的ID字段,不在这里做枚举
// tasktype: 使用(DispatchTask.xlsx)里面的Type字段,不在这里做枚举
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LeagueGift <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// type: 礼包的物品ID
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LeagueDevote <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// research_type: 科技ID
// devote_type: 货币类型
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> UserMarch <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// march_type: 行为类型,比如(行军/采集/探索)
// land_type: WorldEntryConfig配置表的EntryType字段
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Spy <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// distination_type: 目标类型,直接用英语单词表示
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> UserPVP <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// pvp_type: 目标类型,如下
// const (
// targetUnUse uint32 = 0
// targetMainCity uint32 = 1
// targetMine uint32 = 3
// targetMonster uint32 = 4
// targetMutiMonster uint32 = 5
// targetCity uint32 = 6
// targetBestationed uint32 = 7
// targetRayolCity uint32 = 8
// targetUndergroundPalace uint32 = 9
// targetMineGem uint32 = 10 /// 钻石矿,埋点时有特殊需求
//
// trapTargetPos int64 = 4
// )
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> BuildingMove <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// building_type: 建筑类型,对应BuildingConfig的ID字段
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mail <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// mail_type: proto:enum MailType
// op_type: 如下
MailOpType_Read MailOpType = 1
MailOpType_Take MailOpType = 2
MailOpType_Dele MailOpType = 3
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> OssTaskAccept <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// 没找到?
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> UserLeagueAction <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// 如下
UserLeagueActionTypeCreate = 1 // 创建
UserLeagueActionTypeJoin = 2 // 加入
UserLeagueActionTypeExit = 3 // 退出
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DailyActive <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// 没找到?
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> AillianceTreature <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //
// treasure_type: 宝箱类型id
/// --------------------------------------- 其它 -------------------------------------- //
UnitChangeTypeProduct = 1 /// 造兵
UnitChangeTypePVP = 2 /// PVP
UnitChangeTypeStrollHeroEvent = 3 /// [OLD]未启用
UnitChangeTypeUpgrade = 4 /// 兵种升级
UnitChangeTypeCure = 5 /// 治疗修复
UnitChangeTypeItem = 6 /// 使用道具
UnitChangeTypeCityWar = 7 /// 城市战争
ChatTypeWorld = 1
ChatTypeLeague = 2
PlayerLevelUpSrcTypeMainCity = 1
PlayerLevelUpSrcTypeCommander = 2
MarchTypeOccupy = 1 //占领
MarchTypeAttack = 2 //进攻
MarchTypeCollect = 3 //采集
MarchTypeGarrison = 4 //驻守
MarchTypeMass = 5 //集结
MarchTypeCollectReturn = 6 //采集返回
MarchTypeGarrisonReturn = 7 //驻守返回
MarchTypeMassReturn = 8 //集结返回
MarchDestinationTypeMainCity = 1
MarchDestinationTypeMine = 2
MarchDestinationTypeWildMonster = 3
MarchDestinationTypeFort = 4
LeagueHelpTypeBuild = 1
LeagueHelpTypeResearch = 2
//>>>数据采集事件ID
LoginEventID = 1
LogoutEventID = 2
TaskFinishEventID = 3
ServerStateEventID = 19
AddCashEventID = 23
AddItemEventID = 31
RemoveItemEventID = 32
RegisterEventID = 40
OnlineTimeEventID = 41
UserTrainEventID = 49
ReduceCashEventID = 52
PlayerLevelUpdateEventID = 56
MoveMainCityEventID = 10001
LeagueDevoteEventID = 10002
UserMarchEventID = 10003
UserGatherEventID = 10004
ResearchUpgradeEventID = 10005
BuildingUpgradeEventID = 10006
LeagueHelpEventID = 10007
LeagueTransportEventID = 10008
TalentLevelUpEventID = 10009
UnitChangeEventID = 10010
ResourceRefreshEventID = 10011
LeagueDailyEventID = 10012
UserPVPEventID = 10013
CityDisputeEventID = 10014
ChatEventID = 10015
UserDailyEventID = 10016
UserSignEventID = 10017
UserLeagueActionEventID = 10018
UserCancelTrainEventID = 10019
LeagueSettingEventID = 10020
LeagueMemberManageEventID = 10021
LeagueGiftEventID = 10022
KillMonsterEventID = 10023
SpyEventID = 10024
LeagueInviteEventID = 10025
UserChangeInfoEventID = 10026
MainCityClickEventID = 10027
BuildingMoveEventID = 10028
MailEventID = 10029
FeedbackEventID = 10030
//2018-03-15新增
VIPChangeEventID = 10031
TopicEventID = 10032
HeroUpgradeEventID = 10033
AvatarChangeID = 10034
DailyActivity = 10035
MiracleBattleTime = 10036
KingdomManage = 10037
FcmMsg = 10038
//新增
Logistics = 10039
AllianceTreasure = 10040
BlackShop = 10041
SevenDayChallenge = 10042
Trap = 10043
Airdrop = 10044
Statue = 10045
SpecialResources = 10046
Quest = 10047
MineTruck = 10048 // 矿车活动记录, ossTruckSpy
Activity = 10049 // 活跃度系统, ossUserActivity
Prison = 10050 // 监狱日志, ossUserPrison
Extract = 10051 // 抽卡系统, ossUserDrawCard
CommanderEquipment = 10052 // 领主装备, ossLordEquips
ChapterTask = 10053 // 新手剧情,ossChapterTask
CommanderFashion = 10054 // 领主外观
Report = 10056 // 举报
LeagueCupActivity = 10057 // 联盟活动,联盟杯
Battle = 10058 // 战斗
PayEventID = 10059 // 购买礼包
CommanderEventID = 10060 //最强领主
LeagueBuilding = 10061 //联盟建筑
DailyTask = 10062 //日常任务
Questionnaire = 10063 //问卷调查
LuckyStarEventID = 10064 // 幸运星
Turntable = 10065 //限定抽卡
MonsterAtkCity = 10066 //怪物攻城
FoolsDay = 10067 //愚人节活动
CrossingEventID = 10068
)
var eventNameMap = map[uint32]string{
LoginEventID: "Login",
LogoutEventID: "Logout",
TaskFinishEventID: "TaskFinish",
ServerStateEventID: "ServerState",
AddCashEventID: "AddCash",
AddItemEventID: "AddItem",
RemoveItemEventID: "RemoveItem",
RegisterEventID: "Register",
OnlineTimeEventID: "OnlineTime",
UserTrainEventID: "UserTrain",
ReduceCashEventID: "ReduceCash",
PlayerLevelUpdateEventID: "PlayerLevelUp",
MoveMainCityEventID: "MoveMainCity",
LeagueDevoteEventID: "LeagueDevote",
UserMarchEventID: "UserMarch",
UserGatherEventID: "UserGather",
ResearchUpgradeEventID: "ResearchUpgrade",
BuildingUpgradeEventID: "BuildingUpgrade",
LeagueHelpEventID: "LeagueHelp",
LeagueTransportEventID: "LeagueTransport",
TalentLevelUpEventID: "TalentLevelUp",
UnitChangeEventID: "UnitChange",
ResourceRefreshEventID: "ResourceRefresh",
LeagueDailyEventID: "LeagueDaily",
UserPVPEventID: "UserPvp",
CityDisputeEventID: "CityDispute",
ChatEventID: "Chat",
UserDailyEventID: "UserDaily",
UserSignEventID: "UserSign",
UserLeagueActionEventID: "UserLeagueAction",
UserCancelTrainEventID: "UserCancelTrain",
LeagueSettingEventID: "LeagueSetting",
LeagueMemberManageEventID: "LeagueMemberManage",
LeagueGiftEventID: "LeagueGift",
KillMonsterEventID: "KillMonster",
SpyEventID: "Spy",
LeagueInviteEventID: "LeagueInvite",
UserChangeInfoEventID: "UserChangeInfo",
MainCityClickEventID: "MainCityClick",
BuildingMoveEventID: "BuildingMove",
MailEventID: "Mail",
FeedbackEventID: "FeedBack",
VIPChangeEventID: "VipChange",
TopicEventID: "Topic",
HeroUpgradeEventID: "HeroUpgrade",
AvatarChangeID: "AvatarChange",
DailyActivity: "DailyActivity",
MiracleBattleTime: "MiracleBattle",
KingdomManage: "KingdomManage",
FcmMsg: "FcmMsg",
Logistics: "Logistics",
AllianceTreasure: "AllianceTreasure",
BlackShop: "BlackShop",
SevenDayChallenge: "SevenDayChallenge",
Trap: "Trap",
Airdrop: "AirDrop",
Statue: "Statue",
SpecialResources: "SpecialResources",
Quest: "Quest",
MineTruck: "MineTruck",
Activity: "Activity",
Prison: "Prison",
Extract: "Extract",
CommanderEquipment: "CommanderEquipment",
ChapterTask: "ChapterTask",
CommanderFashion: "CommanderFashion",
Report: "Report",
LeagueCupActivity: "LeagueCupActivity",
Battle: "Battle",
PayEventID: "Pay",
CommanderEventID: "CommanderEvent",
LeagueBuilding: "AllianceLand",
DailyTask: "DailyTask",
Questionnaire: "Questionnaire",
LuckyStarEventID: "GoodLuck",
Turntable: "Turntable",
MonsterAtkCity: "Pirate",
FoolsDay: "battlepass",
CrossingEventID: "Crossing",
}
//VIP点来源
type VIPSource uint32
const (
GetVIPFromUnknown = VIPSource(0)
GetVIPFromDailyLogin = VIPSource(1)
GetVIPFromUseItem = VIPSource(2)
GetVIPFromGM = VIPSource(3)
)
const (
MRS_GiftPack = 1 // 购买礼包
MRS_DefeatRecoup = 2 // 战败补偿
MRS_MineTruck = 3 // 矿车活动
MRS_MonthGift = 4 // 月卡
MRS_City = 5 // 首次占领城市
MRS_Miracle = 6 // 占领奇迹
MRS_LeagueRank = 7 // 联盟排行活动
MRS_UserRank = 8 // 个人排行活动
MRS_DropActivity = 9 // 掉落活动
MRS_SingleActivity = 10 // 单人活动
MRS_HellActivity = 11 // 地狱活动
MRS_DropRank = 12 // 掉落活动排行榜奖励
MRS_CreateLeague = 13 // 创建联盟
MRS_StrongestCommanderRank = 14 // 最强执政官排行榜奖励
MRS_Questionaire = 15 // 问卷调查
MRS_Welcome = 16 // 欢迎邮件
MRS_JoinLeague = 17 // 加入联盟
MRS_BoonCenter = 18 // 福利中心
MRS_LuckStar = 19 // 幸运星礼包
MRS_MiracleWarGift = 20 // 奇迹战礼包
MRS_GM = 21 // GM后台发放
MRS_ActivityEndRecycle = 22 // 活动结束回收道具
MRS_ActivityGift = 23 // 活动礼包
MRS_CancelAtkRefond = 24 // 取消攻击alpha或集结返还
MRS_TBUserRank = 25 // 跨服决战玩家排行榜奖励
MRS_TBLeagueRank = 26 // 跨服决战联盟排行榜奖励
MRS_MonsterAtkCity = 27 // 怪物攻城
MRS_PrepareForWarRank = 28 // 全力备战活动排行榜
MRS_TBStageWinReward = 29 // 跨服决战阶段胜利奖励
MRS_TBWinReward = 30 // 跨服决战 备战期 胜利奖励
MRS_TBLoseReward = 31 // 跨服决战 备战期 失败奖励
MRS_GlobaRanking = 32 // 跨服排行榜
MRS_FeedBack = 33 // 反馈弹窗
MRS_MainCityLevelUp = 34 // 主城升级
)
//签到类型
type SignType uint32
const (
SignInTypeUnknown = SignType(0)
SignInTypeDaily = SignType(1)
SignInTypeOnline = SignType(2)
)
//Topic操作类型
type TopicOPType uint32
const (
TopicOPTypeUnknown = TopicOPType(0)
TopicOPTypeDianZhan = TopicOPType(1)
TopicOPTypeHuiFu = TopicOPType(2)
)
//英雄升级类型
type HeroUpgradeType uint32
const (
HUT_Unknown HeroUpgradeType = iota
HUT_ShengJi //升级
HUT_JinJie //升阶
HUT_Equip //装备
HUT_Rank //升星
HUT_Skill //技能
HUT_Garrison //驻防
HUT_Recuit //招募
)
var (
TheOSSObject *OSSObject
)
/**
@brief Map转换为Josn字符串
*/
func mapToJsonString(value map[interface{}]interface{}) (string, map[string]interface{}, error) {
_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 "", _value, err
}
return string(bytes), _value, nil
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
/**
@brief OSS上报基本参数
*/
type OSSParam struct {
EventID uint32 `json:"-"`
UserId uint32 `json:"-"`
UserCharId string `json:"-"`
UserLevel uint32 `json:"-"`
VipLevel uint32 `json:"-"`
Platform uint32 `json:"-"`
Version string `json:"-"`
DeviceId string `json:"-"`
DeviceMode string `json:"-"`
DeviceName string `json:"-"`
DeviceType string `json:"-"`
DeviceIp string `json:"-"`
DeviceVersion string `json:"-"`
SystemVersion string `json:"-"`
SystemName string `json:"-"`
IDFA string `json:"-"`
IDFV string `json:"-"`
MAC string `json:"-"`
CountryCode string `json:"-"`
NSFileSystemSize uint64 `json:"-"`
NSFileSystemFreeSize uint64 `json:"-"`
JailBroken uint32 `json:"-"`
MainCityLevel uint32 `json:"MainCityLV"`
Power uint64 `json:"-"`
CreateTime uint64 `json:"CreateTime"`
Channel string `json:"-"`
Language uint32 `json:"-"`
InsertTime uint64 `json:"-"`
}
const (
OssSpecialLandType_Truck = 3001 // 特殊类型,矿车
)
type OssActivityType uint32
const (
OATP_None OssActivityType = iota
OATP_Single
OATP_Multi
OATP_Daily
OATP_Kill
OATP_Speed
OATP_Monster
OATP_Mine
OATP_Truck
OATP_SevenDay
OATP_LeagueCup
OATP_DROP
OATP_StrongestCommander
OATP_UserRank
OATP_LeagueRank
)
type LeagueBoxOpType uint32
const (
LeagueBox_Open_Self LeagueBoxOpType = 1
LeagueBox_Open_Help LeagueBoxOpType = 2
LeagueBox_Take_Self LeagueBoxOpType = 3
LeagueBox_Take_Help LeagueBoxOpType = 4
LeagueBox_Speed LeagueBoxOpType = 5
)
type WeekChallengeOpType uint32
const (
WCOP_Error WeekChallengeOpType = iota
WCOP_Task
WCOP_Reward
WCOP_Target
WCOP_Task2
WCOP_Reward2
WCOP_Target2
)
type AirDropCostType uint32
type AirDropReward int32
const (
AirDropCostType_Gem AirDropCostType = 1
AirDropCostType_Item AirDropCostType = 2
AirDropCostType_Free AirDropCostType = 3
AirDropReward_Items AirDropReward = 1
AirDropReward_Gem AirDropReward = 2
AirDropReward_Extra AirDropReward = 3
)
type OssStatueOpType uint32
const (
OSOP_Build OssStatueOpType = 1 //制造
OSOP_Hurry OssStatueOpType = 2 //加速
OSOP_Place OssStatueOpType = 3 //放置
OSOP_Recycle OssStatueOpType = 4 //回收
OSOP_Buff OssStatueOpType = 5 //加成
)
type OssSpecialResourceType uint32
type OssSrcGotType uint32
type OssSrcActionType uint32
const (
OSRTP_STAMINA OssSpecialResourceType = 1
OSRTP_ENERGY OssSpecialResourceType = 2
OSGT_None OssSrcGotType = 0
OSGT_Item OssSrcGotType = 1
OSGT_Skill OssSrcGotType = 2
OSGT_GM OssSrcGotType = 3
OSGT_Refond OssSrcGotType = 4
OSATP_COST OssSrcActionType = 1
OSACV_Monster = 1
OSACV_Dungeon = 2
OSACV_DungeonH = 3
OSATP_EARN OssSrcActionType = 2
OSAGV_UseItem = 1
OSAGV_MainQuest = 2
)
type OssQuestOpType uint32 //操作类型
type OssQuestBattleType uint32 //战斗类型
const (
OQOP_Challenge OssQuestOpType = 1
OQOP_Reward OssQuestOpType = 2
OQBTP_Normal OssQuestBattleType = 1
OQBTP_Rush OssQuestBattleType = 2
)
/**
@brief OSS活跃度任务
*/
type UserActivityOpType uint32
const (
UAOP_Task UserActivityOpType = 1
UAOP_Box UserActivityOpType = 2
)
type Prisoner struct {
VicOwner uint64
Villian uint64
}
func (p *Prisoner) ToString() string {
res := "["
res += fmt.Sprint(p.VicOwner)
res += ","
res += fmt.Sprint(p.Villian)
res += "]"
return res
}
type PrisonBBS struct {
Prisoner
Content string
}
func (p *PrisonBBS) ToString() string {
res := p.Prisoner.ToString()
res += ":"
res += p.Content
return res
}
type PrisonRansom struct {
Prisoner
ItemID uint32
ItemNum uint32
}
func (p *PrisonRansom) ToString() string {
res := p.Prisoner.ToString()
res += ":["
res += fmt.Sprint(p.ItemID)
res += ","
res += fmt.Sprint(p.ItemNum)
res += "]"
return res
}
func (p *PrisonBounty) ToString() string {
res := fmt.Sprint(p.ItemID)
res += ":"
res += fmt.Sprint(p.ItemNum)
res += ","
res += fmt.Sprint(p.Tp)
return res
}
func (p *PrisonHijacker) ToJson() string {
res := "["
res += fmt.Sprint(p.Publisher)
res += ","
res += fmt.Sprint(p.Recipient)
res += ":"
res += fmt.Sprint(p.ItemID)
res += ","
res += fmt.Sprint(p.ItemNum)
return res
}
type PrisonBattleInfo struct {
Attacker []uint64
Defender []uint64
Result uint32
}
func (p *PrisonBattleInfo) ToJson() string {
res := "["
attStr, _ := json.Marshal(p.Attacker)
res += string(attStr)
res += "]:["
defStr, _ := json.Marshal(p.Defender)
res += string(defStr)
res += "],"
res += fmt.Sprint(p.Result)
return res
}
type PrisonActionType uint32
const (
PAT_Catch PrisonActionType = iota + 1
PAT_Free
PAT_Slay
PAT_BBS
PAT_Bounty
PAT_Hijack
PAT_Ransom
PAT_SetRansom
PAT_BeCatch
)
type CardPoolType uint32
type CardDrawType uint32
const (
CPT_Normal CardPoolType = 1
CPT_Super CardPoolType = 2
CDT_Free CardDrawType = 1
CDT_Once CardDrawType = 2
//CDT_Decade CardDrawType = 3
)
type EquipActionType uint32
const (
EAT_Craft EquipActionType = 1
EAT_UnWear EquipActionType = 2
EAT_Wear EquipActionType = 3
)
type LeagueCupAction uint32
const (
LCA_Accept LeagueCupAction = iota + 1
LCA_Abadon
LCA_Delete
LCA_BuyTask
LCA_Reward
LCA_Failed
)
type OSSBattleType uint32
const (
OBT_PVP OSSBattleType = 1
OBT_Monster OSSBattleType = 2
OBT_Dungeon OSSBattleType = 3
)
type SSData struct {
AppID string `json:"AppID"`
Source string `json:"Source"`
IP string `json:"IP"`
Country string `json:"Country"`
Time uint64 `json:"Time"`
ServerID uint32 `json:"ServerID"`
Uid string `json:"UserID"`
CharID uint32 `json:"charID"`
VIPLevel uint32 `json:"VIPLevel"`
Version string `json:"Version"`
Channel string `json:"Channel"`
Level uint32 `json:"Level"`
Platform uint32 `json:"Platform"`
EventName string `json:"EventName"`
Power uint64 `json:"Power"`
DeviceID string `json:"DeviceID"`
Properties map[string]string `json:"Properties"`
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
/**
@brief OSS对象
*/
type OSSObject struct {
//>>>重连标志
retryFlag bool
//>>>上报目的地
// postIP string //>>>上报IP地址
// postPort uint32 //>>>上报端口
// conn net.Conn //>>>上报连接
//>>>上报数据
serverId uint32 //>>>服务器id
productId uint32 //>>>产品id
region string //>>>区域
stopSend bool
//exit chan struct{}
//receiveChan chan *Protocol.MG_LC_OSS_PB
//receiveSSChan chan *SSData
//exitSS chan struct{}
location *time.Location
ossLogger log.LoggerInterface
}
/**
@brief 初始化
@param ip 上报服务器ip
@param port 上报服务器端口
@param serverId 上报服务器id
@param productId 产品id
@param region 区域
*/
func OSSInitialize(ip string, port, serverId, productId uint32, region, channel string) {
ossLogger, err := log.LoggerFromConfigAsFile("conf/seelog.xml")
if err != nil {
panic(err.Error())
}
TheOSSObject = &OSSObject{
//postIP: ip,
//postPort: port,
//serverId: serverId,
//productId: productId,
//region: region,
ossLogger: ossLogger,
}
//location, err := time.LoadLocation("PRC")
//if nil == err {
// TheOSSObject.location = location
//}
//TheOSSObject.retryFlag = true
//TheOSSObject.stopSend = false
//TheOSSObject.exit = make(chan struct{}, 1)
//TheOSSObject.exitSS = make(chan struct{}, 1)
//TheOSSObject.receiveChan = make(chan *Protocol.MG_LC_OSS_PB, 10000)
//TheOSSObject.receiveSSChan = make(chan *SSData, 10000)
//go TheOSSObject.run()
/*for i := 0; i < 16; i++ {
go TheOSSObject.run1()
}*/
}
/**
@brief uint16转换为byte[]
*/
func (object *OSSObject) uint16ToBytes(value uint16) []byte {
bytes := make([]byte, 2)
binary.BigEndian.PutUint16(bytes, value)
return bytes
}
/**
@brief byte[]转换为uint16
*/
func (object *OSSObject) bytesToUint16(bytes []byte) uint16 {
return binary.BigEndian.Uint16(bytes)
}
/**
@brief uint32转换为byte[]
*/
func (object *OSSObject) uint32ToBytes(value uint32) []byte {
bytes := make([]byte, 4)
binary.BigEndian.PutUint32(bytes, value)
return bytes
}
/**
@brief byte[]转换为uint32
*/
func (object *OSSObject) bytesToUint32(bytes []byte) uint32 {
return binary.BigEndian.Uint32(bytes)
}
/*func (object *OSSObject) postToSS(param *OSSParam, jsonStr string, jsonMap map[string]interface{}) {
if !JsonConfig.GlobalConfig.SSData.Enable {
return
}
eventName, ok := eventNameMap[param.EventID]
if !ok {
wlog.Warning("post to ss event id err", param.EventID)
return
}
data := &SSData{
AppID: common.Uint32ToString(object.productId),
Source: "Server",
IP: param.DeviceIp,
Time: wtime.GetNow(),
ServerID: JsonConfig.GlobalConfig.Basic.ServerID,
Uid: common.Uint32ToString(param.UserId),
CharID: param.UserId,
VIPLevel: param.VipLevel,
Version: param.Version,
Channel: param.Channel,
Level: param.UserLevel,
Platform: param.Platform,
Power: param.Power,
DeviceID: param.DeviceId,
EventName: eventName,
Properties: jsonMap,
}
tmpData, err := json.Marshal(data)
if err == nil && object.ossLogger != nil {
object.ossLogger.Info(string(tmpData))
}
if len(object.receiveSSChan) >= cap(object.receiveSSChan) {
wlog.Warning("oss buffer full ")
return
}
if object.stopSend {
return
}
//object.receiveSSChan <- data
}
func (object *OSSObject) sendMsgToSS(data string) {
request := fasthttp.AcquireRequest()
defer fasthttp.ReleaseRequest(request)
request.Header.SetRequestURI(JsonConfig.GlobalConfig.SSData.Url)
request.Header.SetMethod("POST")
var args = request.PostArgs()
args.Add("appid", JsonConfig.GlobalConfig.SSData.AppId)
if JsonConfig.GlobalConfig.SSData.Debug {
args.Add("debug", "1")
}
args.Add("data_list", data)
fmt.Println(data)
request.SetBodyString(args.String())
response := fasthttp.AcquireResponse()
defer fasthttp.ReleaseResponse(response)
err := fasthttp.DoTimeout(request, response, time.Duration(time.Second*5))
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(string(response.Body()))
}
*/
/*
func (object *OSSObject) run() {
object.connectToPostServer()
for v := range object.receiveChan {
object.connectToPostServer()
object.processMsg(v)
}
close(object.exit)
}*/
/*
func (object *OSSObject) run1() {
var count = 0
msgList := make([]*SSData, 0)
for v := range object.receiveSSChan {
if count >= 5 {
tmpData, err := json.Marshal(msgList)
if err != nil {
wlog.Warning(err.Error())
continue
}
object.sendMsgToSS(string(tmpData))
msgList = make([]*SSData, 0)
count = 0
} else {
msgList = append(msgList, v)
count++
}
}
// 如果停止发送了,清除缓存的oss数据
if len(msgList) > 0 {
tmpData, err := json.Marshal(msgList)
if err == nil {
object.sendMsgToSS(string(tmpData))
} else {
wlog.Warning(err.Error())
}
msgList = make([]*SSData, 0)
}
object.exitSS <- struct{}{}
}
*/
/**
@brief 退出
*/
func (object *OSSObject) Exit() {
//object.stopSend = true
object.ossLogger.Flush()
//close(object.receiveChan)
//close(object.receiveSSChan)
//<-object.exit
//<-object.exitSS
wlog.Info("oss existed....")
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/liuxuezhan/mylib.git
git@gitee.com:liuxuezhan/mylib.git
liuxuezhan
mylib
mylib
v1.1.0

搜索帮助

344bd9b3 5694891 D2dac590 5694891