package model import ( "leafstalk/otherutils/deepcopy" "strconv" "xorm.io/xorm" ) const ( AcRewardStatusUnavailable = 0 // 不可领取 AcRewardStatusAvailable = 1 // 可领取 AcRewardStatusClaimed = 2 // 已领取 // 月卡类型 MonthCardTypeFreeAd = 1 // 观影月卡 MonthCardTypeSuper = 2 // 超值月卡 MonthCardTypeDouble = 3 // 双月卡 // 活跃战令增加积分 WarOrderActivePointFastPatrol = 15 // 快速巡逻15分 WarOrderActivePointPassMainSingle = 5 // 通关主线5分 todo WarOrderActivePointPassMainMulti = 80 // 通关精英80分 todo WarOrderActivePointPassCooperationGeneral = 150 // 通关合作模式普通150分 todo WarOrderActivePointPassCooperationDifficulty = 220 // 通关合作模式困难220分 todo WarOrderActivePointPassCooperationNightmare = 260 // 通关合作模式噩梦260分 todo WarOrderActivePointPassPVP = 200 // 竞技场200分 todo ) type PlayerAc struct { Id int64 PlayerId int64 `xorm:"BIGINT index 'playerid'"` // 活跃战令 ActiveWarOrder *ActiveWarOrder `xorm:"TEXT json 'activeWarOrder'"` // 等级战令 GradeWarOrder *GeneralWarOrder `xorm:"TEXT json 'gradeWarOrder'"` // 主线战令 LineWarOrder *GeneralWarOrder `xorm:"TEXT json 'lineWarOrder'"` // 7日签到 SevenDaySignIn *SevenDaySignInStatus `xorm:"TEXT json 'sevenDaySignIn'"` // 每日特惠 DailyDeal *DailyDealStatus `xorm:"TEXT json 'dailyDeal'"` // 特惠礼包-新手礼包 DiscountPack *DiscountPackStatus `xorm:"TEXT json 'discountPack'"` // 特惠礼包-每日礼包 DiscountDayPack *DiscountPackStatus `xorm:"TEXT json 'discountDayPack'"` // 特惠礼包-每周礼包 DiscountWeekPack *DiscountPackStatus `xorm:"TEXT json 'discountWeekPack'"` // 特惠礼包-每月礼包 DiscountMoonPack *DiscountPackStatus `xorm:"TEXT json 'discountMoonPack'"` DailyRecharges []*DayRecharge `xorm:"TEXT json 'dailyRecharges'"` CycleRecharge *CycleRecharge `xorm:"TEXT json 'cycleRecharge'"` TriggerGifts map[int64]int64 `xorm:"TEXT json 'triggerGifts'"` GateId int64 `xorm:"-"` // 开服活动-首充 FirstCharge map[int64]*FirstChargeStatus `xorm:"TEXT json 'firstCharge'"` // 计费点区分档位 {计费点Id:FirstChargeStatus{}} } type ActiveWarOrder struct { // 周期开始时间 StartTs int64 `json:"startTs"` // 是否开通高级战令 IsSenior bool `json:"isSenior"` // 是否开通豪华战令 IsLuxury bool `json:"isLuxury"` // 看广告获得双倍积分计数 AdCount int64 `json:"adCount"` // 看广告获得双倍积分标志 AdDoubleFlag bool `json:"adDoubleFlag"` // 今日获得积分统计 DayPointCount int64 `json:"dayCountPoint"` // 最后一次获取积分的时间 LastPointTs int64 `json:"lastPointTs"` // 周期内积分总数 PointTotal int64 `json:"totalPoint"` FreeLevel int64 `json:"freeLevel"` // 已领取的最大免费奖励等级 SeniorLevel int64 `json:"seniorLevel"` // 已领取的最大高级奖励等级 LuxuryLevel int64 `json:"luxuryLevel"` // 已领取的最大豪华奖励等级 // 最后一次领取奖励的时间 LastAwardTs int64 `json:"lastAwardTs"` } // 通用 type GeneralWarOrder struct { IsSenior bool `json:"isSenior"` // 是否开通高级战令 FreeLevel int64 `json:"freeLevel"` // 已领取的最大免费奖励等级 SeniorLevel int64 `json:"seniorLevel"` // 已领取的最大高级奖励等级 } // 7日签到状态 type SevenDaySignInStatus struct { // 当日活跃度 DayActive int64 `json:"dayActive"` // 最后一次获取活跃度的时间 LastActiveTs int64 `json:"lastActiveTs"` // 奖励状态 Award map[int64]*SignInAwardStatus `json:"award"` // 最后一次签到时间 LastSignInTs int64 `json:"lastSignInTs"` } // 签到奖励领取状态 type SignInAwardStatus struct { Free int64 `json:"free"` Active int64 `json:"active"` } // 每日特惠 type DailyDealStatus struct { // 每日特惠刷新时间 RefreshTs int64 `json:"refreshTs"` // {Uid:周期内购买次数} BuyStatus map[int64]int64 `json:"buyStatus"` } // 特惠礼包 type DiscountPackStatus struct { // 刷新时间 RefreshTs int64 `json:"refreshTs"` // {Uid:周期内购买次数} BuyStatus map[int64]int64 `json:"buyStatus"` } // 每日充值 type DayRecharge struct { Level int64 `json:"level"` // 档位 Cycle int64 `json:"cycle"` // 总轮数 OpenDaySum int64 `json:"openDay"` // 开放的天数 ProcessReward int64 `json:"prcsReward"` // 领取的进度奖励 LastTs int64 `json:"lastTs"` // 最后一次充值时间 LastRecharge int64 `json:"recharge"` // 最后一天充值金额 DayReward int64 `json:"dayReward"` // 领取的日奖励 } // 任务完成的天数 func (dr *DayRecharge) GetTaskSucessDay() int64 { if dr.LastRecharge >= dr.Level { return dr.OpenDaySum } return dr.OpenDaySum - 1 } // 循环充值 type CycleRecharge struct { Sum int64 `json:"sum"` // 总充值钻石数 Num int64 `json:"num"` // 本轮累计充值钻石数 Reward int64 `json:"reward"` // 领取的最后一个奖励的档位 } // 首充 type FirstChargeStatus struct { // 购买时间 BuyTs int64 `json:"buyTs"` // 已领取奖励的最后一个天数 Reward int64 `json:"reward"` } func (m PlayerAc) TableName() string { return "player_ac" } func (m *PlayerAc) QueryExist(eng *xorm.Engine) (bool, error) { player := new(PlayerAc) player.PlayerId = m.PlayerId return eng.Exist(player) } func (m *PlayerAc) UpdateDB(eng *xorm.Engine) (int64, error) { return eng.Where("playerid=?", m.PlayerId).AllCols().Update(m) } func (m *PlayerAc) GetUniqueKey() string { return strconv.FormatInt(m.PlayerId, 10) } func CopyPlayerAc(old *PlayerAc) *PlayerAc { nu := deepcopy.MustCopy(old).(*PlayerAc) return nu } func (m *PlayerAc) GetDailyRecharge(level int64) *DayRecharge { for _, v := range m.DailyRecharges { if v.Level == level { return v } } return nil } // 活跃战令-WarOrderActive exported from 活动-战令.xlsx type WarOrderActive struct { Lv int64 `json:"Lv"` // 等级 Exp int64 `json:"Exp"` // 升级经验 FreeFile [][]int64 `json:"FreeFile"` // 免费战令 SeniorFile [][]int64 `json:"SeniorFile"` // 高级战令 IuxuriousFile [][]int64 `json:"IuxuriousFile"` // 豪华战令 } // package model // 等级战令-WarOrderGrade exported from 活动-战令.xlsx type WarOrderGrade struct { Lv int64 `json:"Lv"` // 玩家等级 FreeFile [][]int64 `json:"FreeFile"` // 免费奖励 SeniorFile [][]int64 `json:"SeniorFile"` // 高级奖励 } // package model // 主线战令-WarOrderLine exported from 活动-战令.xlsx type WarOrderLine struct { Lv int64 `json:"Lv"` // 通过主线ID 关联关卡表ID FreeFile [][]int64 `json:"FreeFile"` // 免费奖励 SeniorFile [][]int64 `json:"SeniorFile"` // 高级奖励 } // package model // 战令配置-WarOrderValue exported from 活动-战令.xlsx type WarOrderValue struct { Uid int64 `json:"Uid"` // ID PriceId int64 `json:"PriceId"` // 参数 } // 7日签到-SevenDaySignIn exported from 活动-签到.xlsx type SevenDaySignIn struct { Uid int64 `json:"Uid"` // ID Days int64 `json:"Days"` // 天数 Reward [][]int64 `json:"Reward"` // 奖励 } // 签到双倍-SevenDaySignInDouble exported from 活动-7日签到.xlsx type SevenDaySignInDouble struct { Condition int64 `json:"Condition"` // 签到奖励再次领取要求 (日常任务活跃度) } // 月卡-MonthlyCard exported from 活动-月卡.xlsx type MonthlyCard struct { Type int64 `json:"Type"` // 月卡类型 1--观影月卡 2--超值月卡 3---双月卡特权 NoAd int64 `json:"NoAd"` // 免广告 0--无特权 1-有特权 InfinitePatrol int64 `json:"InfinitePatrol"` // 无限快速巡逻 0--无特权 1-有特权 BrawnUp int64 `json:"BrawnUp"` // 体力上限 0--无特权 数值-增加上限 EnergyUp int64 `json:"EnergyUp"` // 精力上限 0--无特权 数值-增加上限 BrawnNum int64 `json:"BrawnNum"` // 每日体力购买次数 0--无特权 数值-增加上限 EnergyNum int64 `json:"EnergyNum"` // 每日精力购买次数 0--无特权 数值-增加上限 BrawnreStore float64 `json:"BrawnreStore"` // 体力恢复速度 百分比值 0--无特权 数值-增加上限 Speed int64 `json:"Speed"` // 主线关卡开启3倍速 0--无特权 1-有特权 ActivationReward []int64 `json:"ActivationReward"` // 激活奖励 Reward [][]int64 `json:"Reward"` // 每日奖励 Price int64 `json:"Price"` // 计费点ID } // package model // 特权卡-PrivilegeCard exported from 活动-月卡.xlsx type PrivilegeCard struct { Type int64 `json:"Type"` // 月卡类型 1--永久钻石卡 2--永久巡逻卡 NoAd int64 `json:"NoAd"` // 巡逻钻石基础产出 0--无 数值-增加上限(数量/时) InfinitePatrol int64 `json:"InfinitePatrol"` // 快速点数 0--无 数值-增加上限 BrawnUp int64 `json:"BrawnUp"` // 快速时长增加值 0--无 数值-增加上限 Price int64 `json:"Price"` // 计费点ID } // package model // 月卡福利-MonthlyCardBenefit exported from 活动-月卡.xlsx type MonthlyCardBenefit struct { Reward [][]int64 `json:"Reward"` // 奖励 } const ( DailyDealFree = 1 // 免费 DailyDeal6Yuan = 2 // 6元礼包 DailyDeal12Yuan = 3 // 12元礼包 DailyDeal18Yuan = 4 // 18元礼包 DailyDealLucky = 5 // 特惠专属福袋 ) // 每日特惠-DailyDeal exported from 活动-每日特惠.xlsx type DailyDeal struct { Uid int64 `json:"Uid"` // ID Name string `json:"Name"` // 名称 GiftPack [][]int64 `json:"GiftPack"` // 礼包 Quota int64 `json:"Quota"` // 每日限购次数 Price []int64 `json:"Price"` // 价格 [支付方式,道具ID,数量] 1-现金 2-广告 3-道具 4-免费 PriceId int64 `json:"PriceId"` // 价格挡位 关联计费点CDRP中ID Video int64 `json:"Video"` // 广告点ID } // package model // 特惠价格-DailyDealPrice exported from 活动-每日特惠.xlsx type DailyDealPrice struct { Uid int64 `json:"Uid"` // ID Name string `json:"Name"` // 名称 Quota int64 `json:"Quota"` // 每日限购次数 PriceId int64 `json:"PriceId"` // 价格挡位 关联计费点CDRP中ID } // 新手特惠礼包-DiscountPack exported from 活动-特惠礼包.xlsx type DiscountPack struct { Uid int64 `json:"Uid"` // ID Name string `json:"Name"` // 名称 GiftPack []int64 `json:"GiftPack"` // 礼包 Quota int64 `json:"Quota"` // 限购次数 终身限购 Discount float64 `json:"Discount"` // 折扣 用于前端界面显示(百分比值) Price []int64 `json:"Price"` // 价格 [支付方式,道具ID,数量] 1-现金 2-广告 3-道具 4-免费 CdrpId int64 `json:"CdrpId"` // 计费点 Video int64 `json:"Video"` // 广告点ID } // package model // 每日特惠礼包-DiscountDayPack exported from 活动-特惠礼包.xlsx type DiscountDayPack struct { Uid int64 `json:"Uid"` // ID Name string `json:"Name"` // 名称 GiftPack []int64 `json:"GiftPack"` // 礼包 Quota int64 `json:"Quota"` // 限购次数 每日0点重置 Discount float64 `json:"Discount"` // 折扣 用于前端界面显示(百分比值) Price []int64 `json:"Price"` // 价格 [支付方式,道具ID,数量] 1-现金 2-广告 3-道具 4-免费 CdrpId int64 `json:"CdrpId"` // 计费点 Video int64 `json:"Video"` // 广告点ID } // package model // 每周特惠礼包-DiscountWeekPack exported from 活动-特惠礼包.xlsx type DiscountWeekPack struct { Uid int64 `json:"Uid"` // ID Name string `json:"Name"` // 名称 GiftPack []int64 `json:"GiftPack"` // 礼包 Quota int64 `json:"Quota"` // 限购次数 每周一0点重置 Discount float64 `json:"Discount"` // 折扣 用于前端界面显示(百分比值) Price []int64 `json:"Price"` // 价格 [支付方式,道具ID,数量] 1-现金 2-广告 3-道具 4-免费 CdrpId int64 `json:"CdrpId"` // 计费点 Video int64 `json:"Video"` // 广告点ID } // package model // 每月特惠礼包-DiscountMoonPack exported from 活动-特惠礼包.xlsx type DiscountMoonPack struct { Uid int64 `json:"Uid"` // ID Name string `json:"Name"` // 名称 GiftPack []int64 `json:"GiftPack"` // 礼包 Quota int64 `json:"Quota"` // 限购次数 每月1号0点重置 Discount float64 `json:"Discount"` // 折扣 用于前端界面显示(百分比值) Price []int64 `json:"Price"` // 价格 [支付方式,道具ID,数量] 1-现金 2-广告 3-道具 4-免费 CdrpId int64 `json:"CdrpId"` // 计费点 Video int64 `json:"Video"` // 广告点ID } // 首充-FirstCharge exported from 活动-首充.xlsx type FirstCharge struct { Uid int64 `json:"Uid"` // ID PriceId int64 `json:"PriceId"` // 价格挡位 关联计费点CDRP中ID Day int64 `json:"Day"` // 天数 Reward [][]int64 `json:"Reward"` // 奖励 }