diff --git a/md/public_platoon_relate_commission.go b/md/public_platoon_relate_commission.go index 13761d9..47db1bb 100644 --- a/md/public_platoon_relate_commission.go +++ b/md/public_platoon_relate_commission.go @@ -2,12 +2,13 @@ package md // 公排结构 type LvGrade struct { - Lv int `json:"lv"` // 会员级别 - LvName string `json:"lv_name"` // 会员名称 - ReturnType []string `json:"return_type"` //返利类型 - CommonWealthSystem map[string]string `json:"common_wealth_system"` //共富制度比例 - SelfRateList map[string]string `json:"self_rate_list"` // 自购比例 - DirectPush map[string]string `json:"direct_push"` // 直推奖励比例 + Lv int `json:"lv"` // 会员级别 + LvName string `json:"lv_name"` // 会员名称 + ReturnType []string `json:"return_type"` //返利类型 + CommonWealthSystem map[string]string `json:"common_wealth_system"` //共富制度比例 + SelfRateList map[string]string `json:"self_rate_list"` // 自购比例 + DirectPush map[string]string `json:"direct_push"` // 直推奖励比例 + UserLvUpPublicPlatoonList []interface{} `json:"user_lv_up_public_platoon_list"` //会员费分销补贴相应方式的列表 } type PublicPlatoonRelateCommissionReq struct { diff --git a/svc/public_platoon_relate_commission.go b/svc/public_platoon_relate_commission.go index be2b611..f09c416 100644 --- a/svc/public_platoon_relate_commission.go +++ b/svc/public_platoon_relate_commission.go @@ -218,12 +218,33 @@ func BatchGetPublicPlatoonRelateCommissionByOrderLevel(engine *xorm.Engine, mast parentUid, _ := db.UserFindByID(engine, nowBenefitUid) lvGrade := subsidyTmp[zhios_order_relate_utils.IntToStr(parentUid.Level)] if lvGrade != nil { + //判断购买人是哪个等级 + UserLvUpPublicPlatoonList := make(map[string]interface{}) + if len(lvGrade.UserLvUpPublicPlatoonList) > 0 { + for _, v1 := range lvGrade.UserLvUpPublicPlatoonList { + v2 := v1.(map[string]interface{}) + if zhios_order_relate_utils.AnyToInt64(v2["lv"]) == zhios_order_relate_utils.StrToInt64(param.UserLevel) { + rateList, ok := v2["rate_list"].(map[string]interface{}) + if ok { + UserLvUpPublicPlatoonList = rateList + } + } + } + } for _, coinId := range lvGrade.ReturnType { var pendingAmount = param.PendingAmount if zhios_order_relate_utils.StrToInt(coinId) > 0 { //积分更换基数 pendingAmount = param.PendingIntegral } - commonWealthSystem[coinId] = zhios_order_relate_utils.Float64ToStrByPrec(zhios_order_relate_utils.StrToFloat64(lvGrade.CommonWealthSystem[coinId])*zhios_order_relate_utils.StrToFloat64(pendingAmount)/100, 9) + bili := lvGrade.CommonWealthSystem[coinId] + //判断购买人是哪个等级 读对应的比例 + if UserLvUpPublicPlatoonList != nil { + newBili, ok := UserLvUpPublicPlatoonList[coinId] + if ok { + bili = zhios_order_relate_utils.AnyToString(newBili) + } + } + commonWealthSystem[coinId] = zhios_order_relate_utils.Float64ToStrByPrec(zhios_order_relate_utils.StrToFloat64(bili)*zhios_order_relate_utils.StrToFloat64(pendingAmount)/100, 9) } } } diff --git a/svc/small_public_platoon_relate_commission.go b/svc/small_public_platoon_relate_commission.go index 137f189..81675bb 100644 --- a/svc/small_public_platoon_relate_commission.go +++ b/svc/small_public_platoon_relate_commission.go @@ -432,12 +432,33 @@ func BatchSmallGetPublicPlatoonRelateCommissionLevel(engine *xorm.Engine, master if parentUid != nil { lvGrade := subsidyTmp[zhios_order_relate_utils.IntToStr(parentUid.Level)] if lvGrade != nil { + //判断购买人是哪个等级 + UserLvUpPublicPlatoonList := make(map[string]interface{}) + if len(lvGrade.UserLvUpPublicPlatoonList) > 0 { + for _, v1 := range lvGrade.UserLvUpPublicPlatoonList { + v2 := v1.(map[string]interface{}) + if zhios_order_relate_utils.AnyToInt64(v2["lv"]) == zhios_order_relate_utils.StrToInt64(param.UserLevel) { + rateList, ok := v2["rate_list"].(map[string]interface{}) + if ok { + UserLvUpPublicPlatoonList = rateList + } + } + } + } for _, coinId := range lvGrade.ReturnType { var pendingAmount = param.PendingAmount if zhios_order_relate_utils.StrToInt(coinId) > 0 { //积分更换基数 pendingAmount = param.PendingIntegral } - commonWealthSystem[coinId] = zhios_order_relate_utils.Float64ToStrByPrec(zhios_order_relate_utils.StrToFloat64(lvGrade.CommonWealthSystem[coinId])*zhios_order_relate_utils.StrToFloat64(pendingAmount)/100, 9) + bili := lvGrade.CommonWealthSystem[coinId] + //判断购买人是哪个等级 读对应的比例 + if UserLvUpPublicPlatoonList != nil { + newBili, ok := UserLvUpPublicPlatoonList[coinId] + if ok { + bili = zhios_order_relate_utils.AnyToString(newBili) + } + } + commonWealthSystem[coinId] = zhios_order_relate_utils.Float64ToStrByPrec(zhios_order_relate_utils.StrToFloat64(bili)*zhios_order_relate_utils.StrToFloat64(pendingAmount)/100, 9) } } }