diff --git a/db/model/plan_reward.go b/db/model/plan_reward.go index 4793e7d..6d0cb5f 100644 --- a/db/model/plan_reward.go +++ b/db/model/plan_reward.go @@ -22,4 +22,5 @@ type PlanReward struct { OrderBeforeRate float32 `json:"order_before_rate" xorm:"not null default 0.0000 comment('下单前的联盟抽成') FLOAT(6,4)"` IntegralOpen int `json:"integral_open" xorm:"not null default 0 comment('积分抽成') TINYINT(1)"` PointType int `json:"point_type" xorm:"not null default 0 comment('') TINYINT(1)"` + RateList string `json:"rate_list" xorm:"not null default '' comment('') VARCHAR(3000)"` } diff --git a/lib/comm_plan/init.go b/lib/comm_plan/init.go index 660d2de..1fc318b 100644 --- a/lib/comm_plan/init.go +++ b/lib/comm_plan/init.go @@ -38,6 +38,7 @@ type PlanOpt struct { MerchantRate float64 //商家占佣比例 NewAgentRate float64 //代理分红占佣比例 OrderBeforeRate float64 + RateList map[string]float64 PushHandRate float64 //推手占佣比例 //IntegralBili float64 // 积分兑换比例 //BlockIconsBili float64 // 区块币兑换比例 diff --git a/svc/get_plan_cfg.go b/svc/get_plan_cfg.go index 3c1a62d..f9ba797 100644 --- a/svc/get_plan_cfg.go +++ b/svc/get_plan_cfg.go @@ -81,6 +81,15 @@ func GetPlanCfg(eg *xorm.Engine, pvd, masterId string, rewardOpts map[string]*mo opt.NewAgentRate = float64(int64(rewardOpt.NewAgentRate*1e4)) / 1e4 opt.OrderBeforeRate = float64(int64(rewardOpt.OrderBeforeRate*1e4)) / 1e4 opt.PlanCommissionId = rewardOpt.PlanCommissionId + rateList := make(map[string]float64) + if rewardOpt.RateList != "" { + rateListMap := make(map[string]interface{}) + json.Unmarshal([]byte(rewardOpt.RateList), &rateListMap) + for k1, v1 := range rateListMap { + rateList[k1] = zhios_order_relate_utils.AnyToFloat64(v1) + } + } + opt.RateList = rateList // 兑换现金比例 if virtualCoinMoneyRate == nil { opt.VirtualCoinMoneyRatioList = nil diff --git a/svc/reward_commission.go b/svc/reward_commission.go index 7fa1e59..981195b 100644 --- a/svc/reward_commission.go +++ b/svc/reward_commission.go @@ -508,12 +508,13 @@ func CommFee(fee float64, opt *comm_plan.PlanOpt, types, isGoods string) (float6 // 剩余可分配的佣金 total := int64(fee*1e4) - int64(pvdFee*1e4) - int64(sysFee*1e4) - int64(regionFee*1e4) - int64(regionSubFee*1e4) - int64(globalFee*1e4) - int64(selfBuyGlobalFee*1e4) - int64(pushHandFee*1e4) - int64(merchantFee*1e4) - int64(newAgentFee*1e4) - + for _, v := range opt.RateList { + total -= int64(fee * v * 1e4) + } fee = float64(total) / 1e4 if fee < 0 { fee = 0 } - pvdFeeFirst := feeFirst * opt.PvdRate // 供应商联盟比例 sysFeeFirst := feeFirst * opt.SysRate // 平台比例 regionFeeFirst := feeFirst * opt.RegionRate // 区域代理比例 @@ -526,7 +527,9 @@ func CommFee(fee float64, opt *comm_plan.PlanOpt, types, isGoods string) (float6 // 剩余可分配的佣金 totalFirst := int64(feeFirst*1e4) - int64(pvdFeeFirst*1e4) - int64(sysFeeFirst*1e4) - int64(regionFeeFirst*1e4) - int64(regionSubFeeFirst*1e4) - int64(globalFeeFirst*1e4) - int64(selfBuyGlobalFeeFirst*1e4) - int64(pushHandFeeFirst*1e4) - int64(merchantFeeFirst*1e4) - int64(newAgentFeeFirst*1e4) - + for _, v := range opt.RateList { + totalFirst -= int64(feeFirst * v * 1e4) + } feeFirst = float64(totalFirst) / 1e4 if feeFirst < 0 { feeFirst = 0 @@ -856,6 +859,7 @@ func BatchGetPublicPlatoonRelateCommissionByGoods(engine *xorm.Engine, masterId directPush[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.DirectPush[coinId]) * zhios_order_relate_utils.StrToFloat64(pendingAmount) / 100) } } + resp[param.Oid] = &md.PublicPlatoonRelateCommissionResp{ Uid: param.Uid, PendingAmount: param.PendingAmount,