123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- package model
- import (
- "errors"
- "leafstalk/otherutils/deepcopy"
- "time"
- "xorm.io/xorm"
- )
- const (
- PayTypeMoney = 1 //现金支付
- PayTypeAd = 2 //广告获得
- PayTypeItem = 3 //道具兑换
- PayTypeFree = 4 //免费
- )
- // 购买信息
- type WxPayPlayer struct {
- Id int64
- PlayerID int64 `xorm:"BIGINT 'playerid'"`
- Buys map[int64]*PeriodBuys `xorm:"BIGINT 'buys'"`
- Refreshs map[int64]*RefreshGoods `xorm:"varchar(255) json 'refresh'"`
- // LevelGoods map[int64]struct{} `xorm:"TEXT 'lvGoods'"`
- // DailyGoods *RefreshBuys `xorm:"TEXT json'dailys'"`
- // CoinGoods *PeriodBuys `xorm:"TEXT json 'coins'"`
- // DiamondGoods map[int64]int `xorm:"TEXT json 'diamonds'"`
- // BuyStatis map[int64]uint `xorm:"TEXT 'buyStatis'"`
- // NewerBox map[int64]int `xorm:"TEXT json 'orderBox'"`
- // VipGoods []*LastBuyItem `xorm:"TEXT 'vipGoods'"`
- // DailyDiscount *TickBuys `xorm:"TEXT json 'dailyDiscount'"`
- // RoleGift *RoleGiftBuys `xorm:"TEXT json 'roleGift'"`
- // Invite *InviteGift `xorm:"TEXT json 'invite'"`
- // AccPay *AccPayGift `xorm:"TEXT json 'accPay'"`
- // Balance int `xorm:"int 'balance'"`
- // LuckDraw *PlayerLuckDraw `xorm:"TEXT json 'luckDraw'"`
- // Growth *GrowthGift `xorm:"TEXT json 'growth'"`
- // BoxKeyGift *TickBuys2 `xorm:"TEXT json 'boxKeyGift'"` // 装备钥匙礼包
- // NewYearGift *TickBuys2 `xorm:"TEXT json 'newYearGift'"`
- // Fifteen *TickBuys2 `xorm:"TEXT json 'fifteen'"` // NewFifteen *TickBuys2 `xorm:"TEXT json 'newFifteen'"`
- // TombSweep *TickBuys2 `xorm:"TEXT json 'tombSweep'"`
- // Lady38 *TickBuys2 `xorm:"TEXT json 'lady38'"`
- // SpecialGift *SpecialGift `xorm:"TEXT json 'specialGift'"`
- // RichManGift *TickBuys2 `xorm:"TEXT json 'richMan'"` // 51劳动节
- // DragonBoat *TickBuys2 `xorm:"TEXT json 'dragonBoat'"` // 端午节
- // WeekendGift *TickBuys `xorm:"TEXT json 'weekendGift'"` // 周末礼包
- // QiXiGift *TickBuys2 `xorm:"TEXT json 'qiXiGift'"` // 七夕礼包
- // MoonFestivalGift *TickBuys2 `xorm:"TEXT json 'moonFestivalGift'"` // 中秋礼包
- // YuanDanGift *TickBuys2 `xorm:"TEXT json 'yuanDanGift'"` // 元旦礼包
- // ReturneGift *ReturneTickBuys `xorm:"TEXT json 'returneGift'"` // 回归礼包
- // EndLessPass *EndLessPassGift `xorm:"TEXT json 'endLessPassGift'"` // 无尽通行证
- // PuzzlePass *PuzzlePassGift `xorm:"TEXT json 'puzzlePassGift'"` // 拼图通行证
- // WinterJonesPass *PuzzlePassGift `xorm:"TEXT json 'winterjonesPassGift'"` // 冬日夺宝通行证
- // AccCostDiamond *AccCostDiamond `xorm:"TEXT json 'accCostDiamond'"` // 累计花费钻石
- // NewServerAct *NewServerActTickBuys `xorm:"TEXT json 'newServerAct'"` // 新服活动
- // NewerBox2 *NewerBox2 `xorm:"TEXT json 'orderBox2'"` //
- // ChanceBoxGift *GiftInfo `xorm:"TEXT json 'chanceBoxGift'"` // 机缘宝盒
- // NationalGift *TickBuys2 `xorm:"TEXT json 'nationalGift'"` // 国庆礼包
- // Holiday12Gift *TickBuys2 `xorm:"TEXT json 'holiday12Gift'"` // 双11礼包
- // MonarchGift *MonarchGift `xorm:"TEXT json 'monarchGift'"` // 魔君赠送
- // MasterPass *MasterPassGift `xorm:"TEXT json 'masterPassGift'"` // 最强王者通行证
- // RichManPass *RichManPassGift `xorm:"TEXT json 'richManPassGift'"` // 51通行证
- OpenId string `xorm:"-"`
- // GdtVid string `xorm:"-"`
- // Friends []int64 `xorm:"-"`
- // GateId int `xorm:"-"`
- // RecentPayedOrders []string `xorm:"-"` //最近支付订单 不用保存太多,最多50笔
- }
- type PeriodBuys struct {
- // Id int64 `json:"id"`
- Ts int64 `json:"ts"` //最后购买时间
- Count int64 `json:"count"` //周期
- Total int64 `json:"total"` //总
- }
- type RefreshGoods struct {
- Ts int64 `json:"ts"` //刷新时间
- Count int64 `json:"count"` //刷新次数
- Goods []int64 `json:"goods"` //商品ID列表
- }
- type PeriodBuysItem struct {
- Num int `json:"num"`
- Ts int64 `json:"ts"` //当前商品购买时间,计算CD用
- }
- // TickBuysTick
- // 统计周期内购买商品及数量
- type PeriodBuys2 struct {
- Ts int64 `json:"ts"` //周期开始时间
- Buys map[int64]*PeriodBuysItem `json:"buys"`
- }
- type RefreshBuys struct {
- Ts int64 `json:"ts"` //周期开始时间
- RefreshCount int64 `json:"refresh"` //刷新次数
- Goods []int64 `json:"goods"` //商品ID列表
- Buys map[int64]int `json:"buys"` //购买次数
- }
- // StoreGoods
- // 商店表-Store exported from 商店表.xlsx
- type StoreGoods struct {
- Id int64 `json:"Uid"` // ID
- GoodsType int64 `json:"GoodsType"` // 商店类型 1--等级商店 2--每日商店 3--金币商店 4--钻石商店
- UnlockLv int64 `json:"UnlockLv"` // 解锁要求 0--不限 1--等级 2--关卡
- Name string `json:"Name"` // 礼包名称
- Content [][]int64 `json:"Content"` // 商品内容
- RandomGroup int64 `json:"RandomGroup"` // 随机组
- Weight int64 `json:"Weight"` // 刷新权重 -1--必出 0--不出
- Quota []int64 `json:"Quota"` // 限购次数 0--不限 1--每日 2--每周 3--总限 4--日刷新
- Discount float64 `json:"Discount"` // 折扣比例 显示用
- Price []int64 `json:"Price"` // 价格 [支付方式,道具ID,数量] 1-现金 2-广告 3-道具 4-免费
- CdrpId int64 `json:"CdrpId"` // 计费点
- Video int64 `json:"Video"` // 广告点ID
- }
- func (sg *StoreGoods) GetWeight() int64 {
- return sg.Weight
- }
- func (sg *StoreGoods) GetId() int64 {
- return sg.Id
- }
- func (sg *StoreGoods) GetCost() (payType int64, cost []int64, err error) {
- num := len(sg.Price)
- if num == 0 {
- err = errors.New("no price")
- return
- }
- payType = sg.Price[0]
- switch payType {
- case PayTypeMoney:
- return
- case PayTypeAd:
- return
- case PayTypeItem:
- if num != 3 {
- err = errors.New("price error")
- return
- }
- cost = sg.Price[1:]
- case PayTypeFree:
- return
- }
- return
- }
- // 商店刷新-StoreRefresh exported from 商店表.xlsx
- type StoreRefresh struct {
- Uid int64 `json:"Uid"` // ID
- RandomGroup int64 `json:"RandomGroup"` // 随机组
- RefreshTime int64 `json:"RefreshTime"` // 刷新次数 0--表示无
- RefreshNum int64 `json:"RefreshNum"` // 刷新数量
- Price [][]int64 `json:"Price"` // 每次刷新消耗 [方式,具ID,数量] 3-道具 4-免费
- }
- // 广告点配置-AdList exported from 广告点.xlsx
- type AdList struct {
- Uid int64 `json:"Uid"` // 广告点唯一编号 其它地方统一调用此编号
- Name string `json:"Name"` // 广告点名字
- CD int64 `json:"CD"` // 冷却时间 /秒
- AdReward [][]int64 `json:"AdReward"` // 有广告时奖励 【【道具类型,道具ID,道具数量】】 【0】:无奖励/功能类广告
- NormalReward [][]int64 `json:"NormalReward"` // 无广告时奖励 【】:不填则入口消失 【【道具类型,道具ID,道具数量】】 【0】:无奖励/功能类广告
- } // package model
- // 渠道组-Channel exported from 广告点.xlsx
- type Channel struct {
- Uid int64 `json:"Uid"` // 唯一编号
- Name string `json:"Name"` // 渠道名称
- Channel int64 `json:"Channel"` // 是否观看广告 0-无 1-有
- }
- // 计费点-CDRP exported from 计费点.xlsx
- type CDRP struct {
- Uid int64 `json:"Uid"` // 编号
- Name string `json:"Name"` // 名称
- Content []int64 `json:"Content"` // 奖励 [[道具类型,道具ID,道具数量]]
- FirstReward []int64 `json:"FirstReward"` // 首次额外奖励 [[道具类型,道具ID,道具数量]]
- Discount float64 `json:"Discount"` // 折扣比例 显示用
- PlatformPrice1 int64 `json:"PlatformPrice1"` // 微信平台 现价
- PlatformPrice2 int64 `json:"PlatformPrice2"` // 抖音平台 现价
- }
- type VirtualPayOrder struct {
- Id int64
- PlayerID int64 `xorm:"BIGINT index 'playerid'"`
- OrderId string `xorm:"varchar(255) index 'orderId'"`
- Price int64 `xorm:"BIGINT 'price'"`
- State int `xorm:"int 'state'"`
- GoodsId int64 `xorm:"BIGINT 'goodsId'"` // 购买物品
- Platform int `xorm:"BIGINT 'platform'"` //平台 1:微信 2:抖音
- PayMethod int `xorm:"int 'payMethod'"` //支付方式 //0:苹果游戏外微信支付 1:安卓游戏内支付 2:安卓游戏外微信支付 3:苹果游戏内支付
- Balance int `xorm:"int 'balance'"` //游戏币个数(包含赠送)
- GenBalance int `xorm:"int 'genBalance'"` //赠送游戏币数量(赠送游戏币数量
- SaveSum int `xorm:"int 'saveSum'"` //历史总游戏币金额
- SaveAmt int `xorm:"int 'saveAmt'"` //累计充值金额的游戏币数量
- CostSum int `xorm:"int 'costSum'"` //历史总消费游戏币金额
- PresentSum int `xorm:"int 'presentSum'"` //历史累计收到赠送金额
- Operation string `xorm:"varchar(255) 'operation'"`
- BillNo string `xorm:"varchar(255) 'billNo'"`
- PayedBalance int `xorm:"int 'payedBalance'"` //预扣后的余额
- UsedGenAmt int `xorm:"int 'usedGenAmt'"` //本次扣的赠送币的金额
- CreateTime time.Time `xorm:"created"`
- }
- func (m VirtualPayOrder) TableName() string {
- return "virtualpayorder"
- }
- func (m *VirtualPayOrder) QueryExist(eng *xorm.Engine) (bool, error) {
- q := new(VirtualPayOrder)
- //q.PlayerID = m.PlayerID
- q.BillNo = m.BillNo
- return eng.Exist(q)
- }
- // 不许修改
- func (m *VirtualPayOrder) UpdateDB(eng *xorm.Engine) (int64, error) {
- //return eng.Where("playerid=?", m.PlayerID).Update(m)
- return 0, nil
- }
- func (m *VirtualPayOrder) GetUniqueKey() string {
- return m.BillNo
- }
- func CopyVirtualPayOrder(old *VirtualPayOrder) *VirtualPayOrder {
- new1, err := deepcopy.Copy(old) //.(*VirtualPayOrder) //new(VirtualPayOrder)
- if err != nil {
- return nil
- }
- // *new1 = *old
- return new1.(*VirtualPayOrder)
- }
- // 商品价格表-StoreItem exported from 商店表.xlsx
- type StoreItem struct {
- ItemId int64 `json:"ItemId"` // 道具ID
- Price []int64 `json:"Price"` // 购买价格 【道具ID,价格】
- }
|