@@ -9,6 +9,7 @@ type PlanReward struct { | |||||
RegionSubRate float32 `json:"region_sub_rate" xorm:"not null default 0.0000 comment('区域代理抽成比例') FLOAT(6,4)"` | RegionSubRate float32 `json:"region_sub_rate" xorm:"not null default 0.0000 comment('区域代理抽成比例') FLOAT(6,4)"` | ||||
GlobalRate float32 `json:"global_rate" xorm:"not null default 0.0000 comment('全球分红抽成比例') FLOAT(6,4)"` | GlobalRate float32 `json:"global_rate" xorm:"not null default 0.0000 comment('全球分红抽成比例') FLOAT(6,4)"` | ||||
SelfBuyGlobalRate float64 `json:"self_buy_global_rate" xorm:"not null default 0.0000 comment('全球分红抽成比例') FLOAT(6,4)"` | SelfBuyGlobalRate float64 `json:"self_buy_global_rate" xorm:"not null default 0.0000 comment('全球分红抽成比例') FLOAT(6,4)"` | ||||
BuckleRate float64 `json:"buckle_rate_rate" xorm:"not null default 0.0000 comment('抽成比例') FLOAT(6,4)"` | |||||
SettleMode int `json:"settle_mode" xorm:"not null default 1 comment('0.手动方案,1.自动方案') TINYINT(1)"` | SettleMode int `json:"settle_mode" xorm:"not null default 1 comment('0.手动方案,1.自动方案') TINYINT(1)"` | ||||
PlanCommissionId int `json:"plan_commission_id" xorm:"not null default 0 comment('佣金方案0未设置,>0对应方案') TINYINT(3)"` | PlanCommissionId int `json:"plan_commission_id" xorm:"not null default 0 comment('佣金方案0未设置,>0对应方案') TINYINT(3)"` | ||||
PlanSettleId int `json:"plan_settle_id" xorm:"not null default 0 comment('结算方案0未设置,>0对应方案') TINYINT(3)"` | PlanSettleId int `json:"plan_settle_id" xorm:"not null default 0 comment('结算方案0未设置,>0对应方案') TINYINT(3)"` | ||||
@@ -21,6 +21,7 @@ type NiuBeiIntegralReleaseO2oRatio struct { | |||||
Key string `json:"key"` | Key string `json:"key"` | ||||
} | } | ||||
type PlanOpt struct { | type PlanOpt struct { | ||||
BuckleRate float64 | |||||
PointType int | PointType int | ||||
IntegralOpen int | IntegralOpen int | ||||
PlanCommissionId int | PlanCommissionId int | ||||
@@ -1,16 +1,17 @@ | |||||
package md | package md | ||||
const ( | const ( | ||||
PVD_TB = "taobao" | |||||
PVD_JD = "jd" | |||||
PVD_SN = "suning" | |||||
PVD_VIP = "vip" | |||||
PVD_PDD = "pdd" | |||||
PVD_KL = "kaola" | |||||
PVD_TM = "tmall" | |||||
PVD_DTK = "dataoke" | |||||
PVD_HDK = "haodanku" | |||||
PVD_JTT = "jingtuitui" | |||||
PVD_TB = "taobao" | |||||
PVD_JD = "jd" | |||||
PVD_JDOwn = "jd_own" | |||||
PVD_SN = "suning" | |||||
PVD_VIP = "vip" | |||||
PVD_PDD = "pdd" | |||||
PVD_KL = "kaola" | |||||
PVD_TM = "tmall" | |||||
PVD_DTK = "dataoke" | |||||
PVD_HDK = "haodanku" | |||||
PVD_JTT = "jingtuitui" | |||||
// 特殊活动免单方案 | // 特殊活动免单方案 | ||||
PVD_FREE = "free" | PVD_FREE = "free" | ||||
PVD_MEITUAN = "meituan" | PVD_MEITUAN = "meituan" | ||||
@@ -85,6 +85,6 @@ func DealWithdrawalAndDestroy(session *xorm.Session, feeMap md.DealWithdrawalFee | |||||
resp.TransferOutValue, _ = decimal.NewFromFloat(transferOut).Mul(decimal.NewFromFloat(nowValue)).Float64() | resp.TransferOutValue, _ = decimal.NewFromFloat(transferOut).Mul(decimal.NewFromFloat(nowValue)).Float64() | ||||
resp.AmountOut, _ = transferOutValue.Mul(decimal.NewFromFloat(nowValue)).Float64() | resp.AmountOut, _ = transferOutValue.Mul(decimal.NewFromFloat(nowValue)).Float64() | ||||
resp.DestroyValue, _ = destroyValue.Float64() | resp.DestroyValue, _ = destroyValue.Float64() | ||||
resp.RefluxValue, _ = refluxValue.Float64() | |||||
resp.RefluxValue, _ = refluxValue.Mul(decimal.NewFromFloat(nowValue)).Float64() | |||||
return | return | ||||
} | } |
@@ -278,7 +278,12 @@ func BatchGetCommissionByOrder(engine *xorm.Engine, dbName string, CommissionPar | |||||
} | } | ||||
param.CommissionParam.ShowLevel = param.ShowLevel | param.CommissionParam.ShowLevel = param.ShowLevel | ||||
param.CommissionParam.Oid = param.Oid | param.CommissionParam.Oid = param.Oid | ||||
profit, pvdFee, sysFee, subsidyFee, lvUser, err := svc.GetRewardCommission(engine, ¶m.CommissionParam, isShare, param.Uid, param.Provider, dbName, isAllLevelReturn, map[string]string{}, commArr, plan, commission, virtualCoinMoneyRate) | |||||
var mapData = map[string]string{ | |||||
"old_lv": param.OldLv, | |||||
"new_lv": param.NewLv, | |||||
"ownbuy_return_type": zhios_order_relate_utils.IntToStr(param.OwnbuyReturnType), | |||||
} | |||||
profit, pvdFee, sysFee, subsidyFee, lvUser, err := svc.GetRewardCommission(engine, ¶m.CommissionParam, isShare, param.Uid, param.Provider, dbName, isAllLevelReturn, mapData, commArr, plan, commission, virtualCoinMoneyRate) | |||||
if err != nil { | if err != nil { | ||||
return err | return err | ||||
} | } | ||||
@@ -20,12 +20,13 @@ var pvdCfgList = map[string]struct { | |||||
SK string | SK string | ||||
Sid string | Sid string | ||||
}{ | }{ | ||||
md.PVD_TB: {"third_taobao_svc_ak", "third_taobao_svc_sk", "third_taobao_web_sid"}, | |||||
md.PVD_KL: {md.KEY_CFG_KL_AK, md.KEY_CFG_KL_SK, ""}, | |||||
md.PVD_SN: {md.KEY_CFG_SN_AK, md.KEY_CFG_SN_SK, ""}, | |||||
md.PVD_JD: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
md.PVD_PDD: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
md.PVD_VIP: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
md.PVD_TB: {"third_taobao_svc_ak", "third_taobao_svc_sk", "third_taobao_web_sid"}, | |||||
md.PVD_KL: {md.KEY_CFG_KL_AK, md.KEY_CFG_KL_SK, ""}, | |||||
md.PVD_SN: {md.KEY_CFG_SN_AK, md.KEY_CFG_SN_SK, ""}, | |||||
md.PVD_JD: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
md.PVD_JDOwn: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
md.PVD_PDD: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
md.PVD_VIP: {md.KEY_CFG_ZM_AK, md.KEY_CFG_ZM_SK, md.KEY_CFG_ZM_WEB_ID}, | |||||
} | } | ||||
func GetAllPlan(eg *xorm.Engine, dbName string) (map[string]*model.PlanReward, map[int]*model.PlanCommission, map[int]string) { | func GetAllPlan(eg *xorm.Engine, dbName string) (map[string]*model.PlanReward, map[int]*model.PlanCommission, map[int]string) { | ||||
@@ -82,6 +83,9 @@ func GetPlanCfg(eg *xorm.Engine, pvd, masterId string, rewardOpts map[string]*mo | |||||
rewardOpt = rewardOpts["kuaishouTeam"] | rewardOpt = rewardOpts["kuaishouTeam"] | ||||
} | } | ||||
} | } | ||||
if pvd == md.PVD_JDOwn && (rewardOpts["jd_own"] == nil || (rewardOpts["jd_own"] != nil && rewardOpts["jd_own"].PlanCommissionId == 0)) { | |||||
rewardOpt = rewardOpts["jd"] | |||||
} | |||||
if rewardOpt == nil { | if rewardOpt == nil { | ||||
return nil, zhios_order_relate_logx.Warn("找不到方案记录") | return nil, zhios_order_relate_logx.Warn("找不到方案记录") | ||||
} | } | ||||
@@ -112,6 +116,7 @@ func GetPlanCfg(eg *xorm.Engine, pvd, masterId string, rewardOpts map[string]*mo | |||||
opt.MerchantRate = float64(int64(rewardOpt.MerchantRate*1e4)) / 1e4 | opt.MerchantRate = float64(int64(rewardOpt.MerchantRate*1e4)) / 1e4 | ||||
opt.NewAgentRate = float64(int64(rewardOpt.NewAgentRate*1e4)) / 1e4 | opt.NewAgentRate = float64(int64(rewardOpt.NewAgentRate*1e4)) / 1e4 | ||||
opt.OrderBeforeRate = float64(int64(rewardOpt.OrderBeforeRate*1e4)) / 1e4 | opt.OrderBeforeRate = float64(int64(rewardOpt.OrderBeforeRate*1e4)) / 1e4 | ||||
opt.BuckleRate = float64(int64(rewardOpt.BuckleRate*1e4)) / 1e4 | |||||
opt.PlanCommissionId = rewardOpt.PlanCommissionId | opt.PlanCommissionId = rewardOpt.PlanCommissionId | ||||
rateList := make(map[string]float64) | rateList := make(map[string]float64) | ||||
if rewardOpt.RateList != "" { | if rewardOpt.RateList != "" { | ||||
@@ -285,6 +290,7 @@ func PlanOpts(eg *xorm.Engine) map[string]*comm_plan.PlanOpt { | |||||
GlobalRate: float64(v.GlobalRate), | GlobalRate: float64(v.GlobalRate), | ||||
SelfBuyGlobalRate: v.SelfBuyGlobalRate, | SelfBuyGlobalRate: v.SelfBuyGlobalRate, | ||||
UserRate: subsidyTmp, | UserRate: subsidyTmp, | ||||
BuckleRate: v.BuckleRate, | |||||
} | } | ||||
} | } | ||||
@@ -20,7 +20,7 @@ func GetRewardCommission(engine *xorm.Engine, rmd *md.CommissionParam, isShare b | |||||
virType := commArr["virType"] | virType := commArr["virType"] | ||||
if virType == "commission" { | if virType == "commission" { | ||||
rmd.PaidPrice = rmd.Commission | rmd.PaidPrice = rmd.Commission | ||||
if zhios_order_relate_utils.InArr(provider, []string{md.PVD_TB, md.PVD_TM, md.PVD_PDD, md.PVD_SN, md.PVD_KL, md.PVD_JD, md.PVD_VIP}) == false { | |||||
if zhios_order_relate_utils.InArr(provider, []string{md.PVD_TB, md.PVD_TM, md.PVD_PDD, md.PVD_SN, md.PVD_KL, md.PVD_JD, md.PVD_JDOwn, md.PVD_VIP}) == false { | |||||
rmd.GoodsPrice = rmd.Commission | rmd.GoodsPrice = rmd.Commission | ||||
} | } | ||||
} | } | ||||
@@ -78,7 +78,6 @@ func GetRewardCommission(engine *xorm.Engine, rmd *md.CommissionParam, isShare b | |||||
if cfg == nil { | if cfg == nil { | ||||
return 0, 0, 0, 0, nil, errors.New("分佣方案未设置") | return 0, 0, 0, 0, nil, errors.New("分佣方案未设置") | ||||
} | } | ||||
// 获取全部佣金 | // 获取全部佣金 | ||||
com, price := getCommission(rmd, provider) | com, price := getCommission(rmd, provider) | ||||
fmt.Println(com) | fmt.Println(com) | ||||
@@ -469,7 +468,7 @@ func getCommission(d *md.CommissionParam, provider string) (string, string) { | |||||
commissionRateF := zhios_order_relate_utils.StrToFloat64(d.CommissionRate) / 100 | commissionRateF := zhios_order_relate_utils.StrToFloat64(d.CommissionRate) / 100 | ||||
com := currentPriceF * commissionRateF | com := currentPriceF * commissionRateF | ||||
return zhios_order_relate_utils.Float64ToStr(com), currentPrice | return zhios_order_relate_utils.Float64ToStr(com), currentPrice | ||||
case md.PVD_JD: | |||||
case md.PVD_JD, md.PVD_JDOwn: | |||||
if zhios_order_relate_utils.StrToFloat64(d.GoodsPrice) == 0 { | if zhios_order_relate_utils.StrToFloat64(d.GoodsPrice) == 0 { | ||||
//如果价格没有直接返回佣金 | //如果价格没有直接返回佣金 | ||||
return d.Commission, d.PaidPrice | return d.Commission, d.PaidPrice | ||||
@@ -539,7 +538,7 @@ func currentPrice(m *md.CommissionParam, pvd string) string { | |||||
return zhios_order_relate_utils.Float64ToStr(price) | return zhios_order_relate_utils.Float64ToStr(price) | ||||
} | } | ||||
return m.WlGoodsPrice | return m.WlGoodsPrice | ||||
case md.PVD_JD: | |||||
case md.PVD_JD, md.PVD_JDOwn: | |||||
//fmt.Println(m.LowestCouponPrice, m.LowerPrice, m.WlGoodsPrice) | //fmt.Println(m.LowestCouponPrice, m.LowerPrice, m.WlGoodsPrice) | ||||
if m.LowestCouponPrice == "" { | if m.LowestCouponPrice == "" { | ||||
if m.CouponPrice != "" { | if m.CouponPrice != "" { | ||||
@@ -54,9 +54,13 @@ func BatchSmallGetPublicPlatoonRelateCommission(engine *xorm.Engine, masterId st | |||||
var commonWealthSystem = make(map[string]string) | var commonWealthSystem = make(map[string]string) | ||||
if lvGrade != nil { | if lvGrade != nil { | ||||
for _, coinId := range lvGrade.ReturnType { | for _, coinId := range lvGrade.ReturnType { | ||||
selfRateList[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.SelfRateList[coinId]) * zhios_order_relate_utils.StrToFloat64(param.PendingAmount) / 100) | |||||
commonWealthSystem[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.CommonWealthSystem[coinId]) * zhios_order_relate_utils.StrToFloat64(param.PendingAmount) / 100) | |||||
directPush[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.DirectPush[coinId]) * zhios_order_relate_utils.StrToFloat64(param.PendingAmount) / 100) | |||||
var pendingAmount = param.PendingAmount | |||||
if zhios_order_relate_utils.StrToInt(coinId) > 0 { //积分更换基数 | |||||
pendingAmount = param.PendingIntegral | |||||
} | |||||
selfRateList[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.SelfRateList[coinId]) * zhios_order_relate_utils.StrToFloat64(pendingAmount) / 100) | |||||
commonWealthSystem[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.CommonWealthSystem[coinId]) * zhios_order_relate_utils.StrToFloat64(pendingAmount) / 100) | |||||
directPush[coinId] = zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(lvGrade.DirectPush[coinId]) * zhios_order_relate_utils.StrToFloat64(pendingAmount) / 100) | |||||
} | } | ||||
} | } | ||||