|
- package plan
-
- var Fn = map[string]func(grade map[int]*LvGrade, totalAmt float64, userList *LvUser, pvd string, sysFee float64, opt *PlanOpt) error{
- "lv_all": CalcAll,
- "lv_self": CalcSelf,
- "lv_subsidy": CalcAll,
- "lv_price": CalcAll,
- "lv_price_other": CalcAll,
- }
-
- type PlanOpt struct {
- PlanCommissionId int
- Pvd string // 供应商
- Mode string // 分佣方案
- CommissionMode string // 佣金返佣方式
- IntegralMode string // 积分返佣方式
- BlockIconsMode string // 区块币返佣方式
- SysRate float64 // 系统占佣比例
- PvdRate float64 // 供应商占佣比例
- RegionRate float64 // 区域代理抽成比例
- RegionSubRate float64 // 区域代理抽成比例
- GlobalRate float64 // 全球分红抽成比例
- IntegralBili float64 // 积分兑换比例
- BlockIconsBili float64 // 区块币兑换比例
- MerchantRate float64 //商家占佣比例
- PushHandRate float64 //推手占佣比例
- UserRate map[int]*LvGrade // 供应商对应的等级比例
- OrderBeforeRate float64
- }
-
- //同级奖励
- type PeerRateList struct {
- BlockIcons string `json:"block_icons"` //区块币
- Commission string `json:"commission"` //佣金
- Integral string `json:"integral"` //积分
- }
-
- // 级差结构
- type LvGrade struct {
- Lv int `json:"lv"` // 级别
- SubsidyMode int `json:"subsidy_mode"` // 补贴计算方式, 0按佣金计算,1按平台利润计算
- SubsidyEnable int `json:"subsidy_enable"` // 是否开启补贴计算方式 0关闭, 1开启
- SubsidySelfRate float64 `json:"subsidy_self_rate"` // 自购补贴比例
- SubsidyShareRate float64 `json:"subsidy_share_rate"` // 分享补贴比例
- PayMode int `json:"pay_mode"` // 0团队内部支出, 1平台系统支出
- SelfRate float64 `json:"self_rate"` // 自购比例
- TeamRate float64 `json:"team_rate"` // 团队分成比例
- PeerRate []float64 `json:"peer_rate"` // 同级分成比例
- UserLvUpSubsidyEnable int `json:"user_lv_up_subsidy_enable"` //分销补贴开关
- UserLvUpSubsidyMode int `json:"user_lv_up_subsidy_mode"` //补贴方式 0比例 1固定金额
- UserSubsidyType string `json:"user_subsidy_type"` // 补贴模式 up_lv 推荐会员补贴 buy_goods 购买商品
- UserLvUpSubsidyList []interface{} `json:"user_lv_up_subsidy_list"` //会员费分销补贴相应方式的列表
- PeerRateList []PeerRateList `json:"-"` //同级比例
- ReturnType []string `json:"return_type"` //返利类型
- SelfRateList struct { //自购比例
- BlockIcons string `json:"block_icons"`
- Commission string `json:"commission"`
- Integral string `json:"integral"`
- } `json:"-"`
- TeamRateList struct { //团队最高比例
- BlockIcons string `json:"block_icons"`
- Commission string `json:"commission"`
- Integral string `json:"integral"`
- } `json:"-"`
- SubsidyBlockIconsMode string `json:"subsidy_block_icons_mode"` //分销 区块币返利类型 bili 比例 money 固定金额
- SubsidyCommissionMode string `json:"subsidy_commission_mode"` //分销 佣金返利类型 bili 比例 money 固定金额
- SubsidyIntegralMode string `json:"subsidy_integral_mode"` //分销 积分返利类型 bili 比例 money 固定金额
- SubsidyReturnType []string `json:"subsidy_return_type"` //分销 返利类型
- SubsidyOwnBiliList []map[string]string `json:"subsidy_own_bili_list"`
- }
- type UserLvUpSubsidyList struct {
- Lv int `json:"lv"` // 等级
- Bili float64 `json:"bili"` // 比例
- IsUse int `json:"is_use"` // 是否共存
- BlockIcons float64 `json:"block_icons"` //区块币
- Commission float64 `json:"commission"` //佣金
- Integral float64 `json:"integral"` //积分
- }
- type LvUser struct {
- Uid int // 用户ID
- Lv int // 等级
- NewLv int // 升级后等级 针对会员费分佣
- LevelWeight int // 权重
- Profit float64 // 利润
- SubsidyFee float64 // 补贴
- OwnbuyReturnType int //0有返利 1没有返利
- Diff int // 与当前用户级别差
- ParentUser *LvUser // 父用户
- ProfitList []*VirtualCoinCommission
- SubsidyFeeList []*VirtualCoinCommission
- }
-
- // 虚拟币分佣结构体
- type VirtualCoinCommission struct {
- Cid string `json:"cid"` // 虚拟币id
- Val float64 `json:"val"` // 数量
- }
-
- // 初始化级差模式
- func Init(g map[int]*LvGrade) map[int]*LvGrade {
- var MinLv int = -1 // 最低级别
- for k, v := range g {
- if MinLv == -1 {
- MinLv = v.Lv
- g[k].TeamRate = v.SelfRate
- } else if v.Lv < MinLv {
- MinLv = v.Lv
- g[k].TeamRate = v.SelfRate
- }
- }
- return g
- }
|