Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+165
View File
@@ -0,0 +1,165 @@
package commod
import (
"time"
"github.com/shopspring/decimal"
"go.mongodb.org/mongo-driver/bson/primitive"
)
//统计中心Model
type KFKTopic string
const (
KFK_APPID int32 = 204 // 20591PORN
KFK_APP_NAME = "91PORN" // app名字
USER_REG KFKTopic = "user_register" // 用户注册
USER_RECH KFKTopic = "user_recharge" // 用户充值
USER_RECH_ALL KFKTopic = "user_recharge_all" // 全部订单
USER_ACCE KFKTopic = "user_access" // 用户访问
USER_WOTHDRAW KFKTopic = "user_withdraw" // 用户提现
USER_BINDING KFKTopic = "user_binding" // 用户绑定
USER_INVITE KFKTopic = "user_invite" // 用户邀请
ConsumeRecordJob = "consume_record" // 产品消费流水
CardSellJob KFKTopic = "card_sell" // 会员卡特权卡销售流水
AiSellJob = "ai_sell" // AI销售流水
AdsTimeLongVideo = 15 // 长视频广告时间(单位: 秒)
)
type AiSellMsg struct {
AppID int32 `json:"appID" bson:"appID"` // AppID
UID uint64 `json:"uid" bson:"uid"` // UID
UniqID string `json:"uniqID" bson:"uniqID"` // 唯一ID,各个app内部交易ID
Amount int64 `json:"amount" bson:"amount"` // 金币数
TranType string `json:"tranType" bson:"tranType"` // 交易类型
SysType string `json:"sysType" bson:"sysType"` // 系统类型
CurrencyType string `json:"currencyType" bson:"currencyType"` // 交易类型,pay、free
TranCreatedAt time.Time `json:"tranCreatedAt" bson:"tranCreatedAt"` // 交易完成时间
IsRepurchase string `json:"isRepurchase" bson:"isRepurchase"` // 是否复购,yes、no
}
// UserRegisterMsg 用户注册
type UserRegisterMsg struct {
UserId uint64 `json:"userId"`
AppId int32 `json:"appId"`
PlatformId string `json:"platformId"` // 原始平台流水Id
SysType string `json:"sysType"`
DevType string `json:"devType"`
Mobile string `json:"mobile"`
Name string `json:"name"`
IP string `json:"ip"`
IsDirect bool `json:"isDirect"`
DistrictCode string `json:"districtCode"` // 渠道推广 dc
PromSeqe string `json:"promSeqe"` // 代理推广 pc
PUC string `json:"puc" bson:"puc"` //
PromCode string `json:"promCode"` // 用户推广序列(全名代理)
RegisterTime time.Time `json:"registerTime"`
}
// UserAccessMsg 用户访问 用户每天第一访问
type UserAccessMsg struct {
UserId uint64 `json:"userId"`
PlatformId string `json:"platformId"` // 原始平台流水Id
AppId int32 `json:"appId"`
SysType string `json:"sysType"`
DevType string `json:"devType"`
IP string `json:"ip"`
Version string `json:"version"`
DevID string `json:"devID"`
VisitAt time.Time `json:"visitAt"`
IsDirect bool `json:"isDirect,omitempty"` // true:是直推用户
DistrictCode string `json:"districtCode,omitempty"` // 渠道码
RegisterTime time.Time `json:"registerTime,omitempty"` //用户注册时间
IsDeduction bool `json:"isDeduction,omitempty"` // true:CPA扣量用户
}
// UserBindingMsg 用户绑定
type UserBindingMsg struct {
UserId uint64 `json:"userId"` // 用户ID
AppId int32 `json:"appId"` // appID
PlatformId string `json:"platformId"` // 原始平台流水Id
SysType string `json:"sysType"` // 操作系统类型 安卓 IOS
DevType string `json:"devType"` // 设备类型
Mobile string `json:"mobile"` // 手机号
BindingTime *time.Time `json:"bindingTime"` // 绑定时间
}
type UserInviteBindMsg struct {
UserId uint64 `json:"userId" bson:"userId" binding:"required"` // 用户ID
AppId int32 `json:"appId" bson:"appId" binding:"required"` // appID
ParentPromCode string `json:"parentPromCode,omitempty" bson:"promSeqe"` // 邀请人推广码
InviteTime time.Time `json:"inviteTime,omitempty" bson:"inviteTime" binding:"required"` // 邀请码绑定时间
}
const (
StatVipCard = iota //会员卡
StatLouFeng //楼凤
StatValueAddSer //增值服务
)
const (
CurrencyTypeGold = iota //金币
CurrencyTypeCash //现金
)
type ConsumeRecordMsg struct {
AppID int32 `json:"appID" bson:"appID"`
UID uint64 `json:"uid" bson:"uid"` //
Type int `json:"type" bson:"type"` //消费类型
CurrencyType int `json:"currencyType" bson:"currencyType"` //货币类型 0金币 1人民币
Money decimal.Decimal `json:"money" bson:"money"` //人民币 元
Amount decimal.Decimal `json:"amount" bson:"amount"` //金币(角)
Uniq string `json:"uniq" bson:"uniq"` //唯一号码
CreatedAt time.Time `json:"createdAt" bson:"createdAt"` //记录创建时间
}
// 用户充值消息
type UserRechargeMsg struct {
UserId uint64 `json:"userId" bson:"userId" binding:"required"` // 用户ID
AppId int32 `json:"appId" bson:"appId" binding:"required"` // appID
PlatformId string `json:"platformId" bson:"platformId"` // 原始平台流水Id
SysType string `json:"sysType" bson:"sysType" binding:"required"` // 操作系统类型 安卓 IOS
DevType string `json:"devType" bson:"devType"` // 设备类型
ChannelName string `json:"channelName" bson:"channelName"` // 支付渠道名字
CID string `json:"cid" bson:"cid"` // 渠道id
Type string `bson:"type" json:"type"` // 充值方式
OrderId string `json:"orderId" bson:"orderId" binding:"required"` // 流水id
OID string `json:"oid" bson:"oid"` //第三方支付流水id
Money int64 `json:"money" bson:"money" binding:"required"` // 充值金额 订单金额
PayMoney int64 `json:"payMoney" bson:"payMoney" binding:"required"` // 实际到账金额 用户实际支付金额
Status int `json:"status" bson:"status"` // 2付款失败 3付款成功(目前只有成功才发送)
Rate string `json:"rate"` //渠道费率
SuccessAt time.Time `json:"successAt,omitempty" bson:"successAt"` // 成功时间
ProductType int `json:"productType" bson:"productType"`
ChanShareMod int `json:"chanShareMod" bson:"chanShareMod"` //渠道分成 0消费分成 1金币分成 2不分成
/*......*/
}
type CardSellMsg struct {
AppID int32 `json:"appID" bson:"appID"` // AppID
UID uint64 `json:"uid" bson:"uid"` // UID
UniqID string `json:"uniqID" bson:"uniqID"` // 唯一ID,各个app内部交易ID
Amount int64 `json:"amount" bson:"amount"` // 金币数
TranTypeInt int64 `json:"tranTypeInt" bson:"tranTypeInt"` // 交易类型码
TranType string `json:"tranType" bson:"tranType"` // 交易类型文字描述
SysType string `json:"sysType" bson:"sysType"` // 系统类型
CurrencyType int `json:"currencyType" bson:"currencyType"` // 交易类型(0 金币 1 现金)
TranCreatedAt time.Time `json:"tranCreatedAt" bson:"tranCreatedAt"` // 交易完成时间
Product Product `json:"product" bson:"product"` // 产品信息
}
type Position struct {
ID primitive.ObjectID `json:"id" bson:"id"` // 位置ID
Name string `json:"name" bson:"name"` // 位置名称
}
type Product struct {
ID string `json:"id"` // ID
Name string `json:"name"` // 产品名称
DiscountedPrice int64 `bson:"discountedPrice" json:"discountedPrice"` // 现价 单位角(金币)
ProductType ProductType `bson:"productType" json:"productType"` // 产品类型
Position Position `json:"position"` // 产品位置
}