Updata:增加每月季度发放竞品数函数
This commit is contained in:
parent
bf41622eab
commit
8536070eea
@ -695,6 +695,31 @@ inner join (
|
||||
return min(limit, remaining)
|
||||
}
|
||||
|
||||
//计算每个季度发放的数目
|
||||
qua := func(total, limit int) int {
|
||||
var released int // 已释放的次数
|
||||
if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() {
|
||||
} else if v.StartAt.Day() >= 16 { //第一个月释放的
|
||||
released += (limit + 1) / 2
|
||||
} else {
|
||||
released += limit
|
||||
}
|
||||
interval := max((now.Year()*12+int(now.Month())-(v.StartAt.Year()*12+int(v.StartAt.Month())))/3, 1) // 释放了多少个季度
|
||||
released += max(interval-1, 0) * limit // 已经释放的数量
|
||||
remaining := max(total-released, 0) // 还剩余多少次没有发放
|
||||
if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() && v.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整)
|
||||
return min((limit+1)/2, remaining)
|
||||
}
|
||||
if v.ExpiredAt.Month() == now.Month() && v.ExpiredAt.Year() == now.Year() && v.ExpiredAt.Day() < 16 { // 本月为最后一个季度第一个月并且16号前到期只给一半(向下取整)
|
||||
return min(limit/2, remaining)
|
||||
}
|
||||
monthDiff := now.Year()*12 + int(now.Month()) - (v.StartAt.Year()*12 + int(v.StartAt.Month()))
|
||||
if monthDiff%3 == 0 && v.ExpiredAt.Month() != now.Month() {
|
||||
return min(limit, remaining)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// 当月过期的视频数
|
||||
v.MonthlyInvalidBundleVideoNumber = v.MonthlyBundleLimitExpiredVideoNumber - v.MonthlyBundleLimitExpiredVideoConsumptionNumber
|
||||
// 历史失效的套餐权益视频总数
|
||||
@ -757,13 +782,13 @@ inner join (
|
||||
v.MonthlyIncreaseLimitDataAnalysisNumber = v.MonthlyIncreaseLimitDataAnalysisNumber - v.MonthlyIncreaseLimitDataAnalysisConsumptionNumber + cal(v.IncreaseLimitDataAnalysisNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
|
||||
// 当月套餐限制类会过期型竞品数可使用额度
|
||||
v.MonthlyBundleLimitExpiredCompetitiveNumber = cal(v.BundleLimitCompetitiveExpiredNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
v.MonthlyBundleLimitExpiredCompetitiveNumber = qua(v.BundleLimitCompetitiveExpiredNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
// 当月增值限制类会过期型竞品数可使用额度
|
||||
v.MonthlyIncreaseLimitExpiredCompetitiveNumber = cal(v.IncreaseLimitCompetitiveExpiredNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
v.MonthlyIncreaseLimitExpiredCompetitiveNumber = qua(v.IncreaseLimitCompetitiveExpiredNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
// 当月套餐限制类型竞品数可使用额度
|
||||
v.MonthlyBundleLimitCompetitiveNumber = v.MonthlyBundleLimitCompetitiveNumber - v.MonthlyBundleLimitCompetitiveConsumptionNumber + cal(v.BundleLimitCompetitiveNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
v.MonthlyBundleLimitCompetitiveNumber = v.MonthlyBundleLimitCompetitiveNumber - v.MonthlyBundleLimitCompetitiveConsumptionNumber + qua(v.BundleLimitCompetitiveNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
// 当月增值限制类型竞品数可使用额度
|
||||
v.MonthlyIncreaseLimitCompetitiveNumber = v.MonthlyIncreaseLimitCompetitiveNumber - v.MonthlyIncreaseLimitCompetitiveConsumptionNumber + cal(v.IncreaseLimitCompetitiveNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
v.MonthlyIncreaseLimitCompetitiveNumber = v.MonthlyIncreaseLimitCompetitiveNumber - v.MonthlyIncreaseLimitCompetitiveConsumptionNumber + qua(v.IncreaseLimitCompetitiveNumber, v.MonthlyLimitCompetitiveQuotaNumber)
|
||||
|
||||
// 重置单月消耗数量
|
||||
//视频
|
||||
|
||||
Loading…
Reference in New Issue
Block a user