fix income stype

This commit is contained in:
lwl0608 2024-04-25 18:43:38 +08:00
parent b038ef5896
commit 6a6781e9d8
2 changed files with 12 additions and 6 deletions

View File

@ -11,7 +11,7 @@ func TestCalcIncome(t *testing.T) {
ztp := &dbstruct.ZoneThirdPartner{ ztp := &dbstruct.ZoneThirdPartner{
ThirdPartnerMid: goproto.Int64(100001), ThirdPartnerMid: goproto.Int64(100001),
SharingRatio: goproto.Float64(0.1), SharingRatio: goproto.Float64(0.20),
} }
zclList := []*dbstruct.ZoneCollaborator{ zclList := []*dbstruct.ZoneCollaborator{
&dbstruct.ZoneCollaborator{ &dbstruct.ZoneCollaborator{
@ -20,18 +20,18 @@ func TestCalcIncome(t *testing.T) {
}, },
&dbstruct.ZoneCollaborator{ &dbstruct.ZoneCollaborator{
CollaboratorMid: goproto.Int64(200002), CollaboratorMid: goproto.Int64(200002),
SharingRatio: goproto.Float64(0.05), SharingRatio: goproto.Float64(0.02),
}, },
&dbstruct.ZoneCollaborator{ &dbstruct.ZoneCollaborator{
CollaboratorMid: goproto.Int64(200003), CollaboratorMid: goproto.Int64(200003),
SharingRatio: goproto.Float64(0.05), SharingRatio: goproto.Float64(0.02),
}, },
&dbstruct.ZoneCollaborator{ &dbstruct.ZoneCollaborator{
CollaboratorMid: goproto.Int64(200004), CollaboratorMid: goproto.Int64(200004),
SharingRatio: goproto.Float64(0.05), SharingRatio: goproto.Float64(0.02),
}, },
} }
list := v._calcWithZoneWithTp(100, 10, 1, ztp, zclList) list := v._calcWithZoneWithTp(100, 100, 1, ztp, zclList)
for _, v := range list { for _, v := range list {
t.Logf("%v, %v, %v\n", v.Mid, v.Rate, v.Dias) t.Logf("%v, %v, %v\n", v.Mid, v.Rate, v.Dias)
} }

View File

@ -454,6 +454,7 @@ type IncomeInfo struct {
IncomeSType int32 `json:"income_stype"` // 收入类类型 IncomeSType int32 `json:"income_stype"` // 收入类类型
Rate float64 `json:"rate"` // 收入比例 Rate float64 `json:"rate"` // 收入比例
Dias int64 `json:"dias"` // 收入钻石 Dias int64 `json:"dias"` // 收入钻石
SettingRate float64 `json:"setting_rate"` // 设置的收入比例
} }
func (v *Vas) calcAndUpdateIncome(ctx *gin.Context, tx *sqlx.Tx, streamerMid, uid int64, did, orderId, typeId string, totalDias int64, defaultIncomeSType int32) ([]IncomeInfo, error) { func (v *Vas) calcAndUpdateIncome(ctx *gin.Context, tx *sqlx.Tx, streamerMid, uid int64, did, orderId, typeId string, totalDias int64, defaultIncomeSType int32) ([]IncomeInfo, error) {
@ -638,11 +639,13 @@ func (v *Vas) _calcWithZoneWithTp(streamerMid, totalDias int64, defaultIncomeSTy
IncomeSType: defaultIncomeSType, IncomeSType: defaultIncomeSType,
Rate: 0.2, Rate: 0.2,
Dias: officialDias, Dias: officialDias,
SettingRate: 0.2,
}) })
leftDias -= officialDias leftDias -= officialDias
// 代运营+协作者真正分成rate // 代运营+协作者真正分成rate
partsRate := 0.8 * ztp.GetSharingRatio() partsRate := 0.8 * ztp.GetSharingRatio()
ztpRate := partsRate
// 主播 // 主播
streamerRate := 0.8 - partsRate streamerRate := 0.8 - partsRate
@ -652,6 +655,7 @@ func (v *Vas) _calcWithZoneWithTp(streamerMid, totalDias int64, defaultIncomeSTy
IncomeSType: defaultIncomeSType, IncomeSType: defaultIncomeSType,
Rate: streamerRate, Rate: streamerRate,
Dias: streamerDias, Dias: streamerDias,
SettingRate: 1.0 - ztp.GetSharingRatio(),
}) })
leftDias -= streamerDias leftDias -= streamerDias
@ -664,18 +668,20 @@ func (v *Vas) _calcWithZoneWithTp(streamerMid, totalDias int64, defaultIncomeSTy
IncomeSType: dbstruct.CHSTypeIncomeCollaborator, IncomeSType: dbstruct.CHSTypeIncomeCollaborator,
Rate: zclRate, Rate: zclRate,
Dias: zclDias, Dias: zclDias,
SettingRate: zcl.GetSharingRatio(),
}) })
leftDias -= zclDias leftDias -= zclDias
ztpRate -= zclRate
} }
// 代运营 // 代运营
ztpRate := 0.8 * ztp.GetSharingRatio()
ztpDias := int64(float64(totalDias) * ztpRate) ztpDias := int64(float64(totalDias) * ztpRate)
list = append(list, IncomeInfo{ list = append(list, IncomeInfo{
Mid: ztp.GetThirdPartnerMid(), Mid: ztp.GetThirdPartnerMid(),
IncomeSType: dbstruct.CHSTypeIncomeThirdPartner, IncomeSType: dbstruct.CHSTypeIncomeThirdPartner,
Rate: ztpRate, Rate: ztpRate,
Dias: ztpDias, Dias: ztpDias,
SettingRate: ztp.GetSharingRatio(),
}) })
leftDias -= ztpDias leftDias -= ztpDias