余量统计问题修复
This commit is contained in:
parent
69fabda65f
commit
3461c75c04
@ -204,7 +204,7 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
|||||||
usedType = 1
|
usedType = 1
|
||||||
goto Over
|
goto Over
|
||||||
}
|
}
|
||||||
if oldData.MonthlyIncreaseLimitExpiredVideoConsumptionNumber < oldData.MonthlyBundleLimitExpiredVideoNumber { // 增值服务会过期的限制类型视频充足
|
if oldData.MonthlyIncreaseLimitExpiredVideoConsumptionNumber < oldData.MonthlyIncreaseLimitExpiredVideoNumber { // 增值服务会过期的限制类型视频充足
|
||||||
oldData.MonthlyIncreaseLimitExpiredVideoConsumptionNumber++
|
oldData.MonthlyIncreaseLimitExpiredVideoConsumptionNumber++
|
||||||
oldData.IncreaseLimitVideoExpiredConsumptionNumber++
|
oldData.IncreaseLimitVideoExpiredConsumptionNumber++
|
||||||
usedType = 2
|
usedType = 2
|
||||||
@ -218,7 +218,7 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
|||||||
usedType = 1
|
usedType = 1
|
||||||
goto Over
|
goto Over
|
||||||
}
|
}
|
||||||
if oldData.MonthlyIncreaseLimitVideoConsumptionNumber < oldData.MonthlyBundleLimitVideoNumber { // 增值服务会过期的限制类型视频充足
|
if oldData.MonthlyIncreaseLimitVideoConsumptionNumber < oldData.MonthlyIncreaseLimitVideoNumber { // 增值服务会过期的限制类型视频充足
|
||||||
oldData.MonthlyIncreaseLimitVideoConsumptionNumber++
|
oldData.MonthlyIncreaseLimitVideoConsumptionNumber++
|
||||||
oldData.IncreaseLimitVideoConsumptionNumber++
|
oldData.IncreaseLimitVideoConsumptionNumber++
|
||||||
usedType = 2
|
usedType = 2
|
||||||
@ -255,7 +255,7 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
|||||||
usedType = 1
|
usedType = 1
|
||||||
goto Over
|
goto Over
|
||||||
}
|
}
|
||||||
if oldData.MonthlyIncreaseLimitExpiredImageConsumptionNumber < oldData.MonthlyBundleLimitExpiredImageNumber { // 增值服务会过期的限制类型图片充足
|
if oldData.MonthlyIncreaseLimitExpiredImageConsumptionNumber < oldData.MonthlyIncreaseLimitExpiredImageNumber { // 增值服务会过期的限制类型图片充足
|
||||||
oldData.MonthlyIncreaseLimitExpiredImageConsumptionNumber++
|
oldData.MonthlyIncreaseLimitExpiredImageConsumptionNumber++
|
||||||
oldData.IncreaseLimitImageExpiredConsumptionNumber++
|
oldData.IncreaseLimitImageExpiredConsumptionNumber++
|
||||||
usedType = 2
|
usedType = 2
|
||||||
@ -269,7 +269,7 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
|||||||
usedType = 1
|
usedType = 1
|
||||||
goto Over
|
goto Over
|
||||||
}
|
}
|
||||||
if oldData.MonthlyIncreaseLimitImageConsumptionNumber < oldData.MonthlyBundleLimitImageNumber { // 增值服务限制类型图片充足
|
if oldData.MonthlyIncreaseLimitImageConsumptionNumber < oldData.MonthlyIncreaseLimitImageNumber { // 增值服务限制类型图片充足
|
||||||
oldData.MonthlyIncreaseLimitImageConsumptionNumber++
|
oldData.MonthlyIncreaseLimitImageConsumptionNumber++
|
||||||
oldData.IncreaseLimitImageConsumptionNumber++
|
oldData.IncreaseLimitImageConsumptionNumber++
|
||||||
usedType = 2
|
usedType = 2
|
||||||
@ -306,7 +306,7 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
|||||||
usedType = 1
|
usedType = 1
|
||||||
goto Over
|
goto Over
|
||||||
}
|
}
|
||||||
if oldData.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber < oldData.MonthlyBundleLimitExpiredDataAnalysisNumber { // 增值服务会过期的限制类型数据分析充足
|
if oldData.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber < oldData.MonthlyIncreaseLimitExpiredDataAnalysisNumber { // 增值服务会过期的限制类型数据分析充足
|
||||||
oldData.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber++
|
oldData.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber++
|
||||||
oldData.IncreaseLimitDataAnalysisExpiredConsumptionNumber++
|
oldData.IncreaseLimitDataAnalysisExpiredConsumptionNumber++
|
||||||
usedType = 2
|
usedType = 2
|
||||||
@ -320,7 +320,7 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
|||||||
usedType = 1
|
usedType = 1
|
||||||
goto Over
|
goto Over
|
||||||
}
|
}
|
||||||
if oldData.MonthlyIncreaseLimitDataAnalysisConsumptionNumber < oldData.MonthlyBundleLimitDataAnalysisNumber { // 增值服务限制类型数据分析充足
|
if oldData.MonthlyIncreaseLimitDataAnalysisConsumptionNumber < oldData.MonthlyIncreaseLimitDataAnalysisNumber { // 增值服务限制类型数据分析充足
|
||||||
oldData.MonthlyIncreaseLimitDataAnalysisConsumptionNumber++
|
oldData.MonthlyIncreaseLimitDataAnalysisConsumptionNumber++
|
||||||
oldData.IncreaseLimitDataAnalysisConsumptionNumber++
|
oldData.IncreaseLimitDataAnalysisConsumptionNumber++
|
||||||
usedType = 2
|
usedType = 2
|
||||||
@ -546,9 +546,9 @@ inner join (
|
|||||||
} else {
|
} else {
|
||||||
released += limit
|
released += limit
|
||||||
}
|
}
|
||||||
interval := now.Year()*12 + int(now.Month()) - (v.StartAt.Year()*12 + int(v.StartAt.Month())) // 后续月份释放的
|
interval := now.Year()*12 + int(now.Month()) - (v.StartAt.Year()*12 + int(v.StartAt.Month())) // 释放了多少个月
|
||||||
released += interval * limit
|
released += max(interval-1, 0) * limit // 后续月份释放的
|
||||||
remaining := max(total-released, 0) // 还剩余多少次没有发放
|
remaining := max(total-released, 0) // 还剩余多少次没有发放
|
||||||
|
|
||||||
if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() && v.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整)
|
if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() && v.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整)
|
||||||
return min((limit+1)/2, remaining)
|
return min((limit+1)/2, remaining)
|
||||||
@ -580,22 +580,20 @@ inner join (
|
|||||||
v.MonthlyBundleLimitDataAnalysisNumber = v.MonthlyBundleLimitDataAnalysisNumber - v.MonthlyBundleLimitDataAnalysisConsumptionNumber + cal(v.BundleLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
v.MonthlyBundleLimitDataAnalysisNumber = v.MonthlyBundleLimitDataAnalysisNumber - v.MonthlyBundleLimitDataAnalysisConsumptionNumber + cal(v.BundleLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
||||||
v.MonthlyIncreaseLimitDataAnalysisNumber = v.MonthlyIncreaseLimitDataAnalysisNumber - v.MonthlyIncreaseLimitDataAnalysisConsumptionNumber + cal(v.IncreaseLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
v.MonthlyIncreaseLimitDataAnalysisNumber = v.MonthlyIncreaseLimitDataAnalysisNumber - v.MonthlyIncreaseLimitDataAnalysisConsumptionNumber + cal(v.IncreaseLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
||||||
// 重置单月消耗数量
|
// 重置单月消耗数量
|
||||||
|
v.MonthlyBundleVideoConsumptionNumber = 0
|
||||||
|
v.MonthlyIncreaseVideoConsumptionNumber = 0
|
||||||
|
v.MonthlyBundleLimitVideoConsumptionNumber = 0
|
||||||
|
v.MonthlyIncreaseLimitVideoConsumptionNumber = 0
|
||||||
|
v.MonthlyBundleLimitExpiredVideoConsumptionNumber = 0
|
||||||
|
v.MonthlyIncreaseLimitExpiredVideoConsumptionNumber = 0
|
||||||
|
v.MonthlyNewManualVideoNumber = 0
|
||||||
|
v.MonthlyManualVideoConsumptionNumber = 0
|
||||||
v.MonthlyBundleImageConsumptionNumber = 0
|
v.MonthlyBundleImageConsumptionNumber = 0
|
||||||
v.MonthlyIncreaseImageConsumptionNumber = 0
|
v.MonthlyIncreaseImageConsumptionNumber = 0
|
||||||
v.MonthlyBundleLimitImageConsumptionNumber = 0
|
v.MonthlyBundleLimitImageConsumptionNumber = 0
|
||||||
v.MonthlyIncreaseLimitImageConsumptionNumber = 0
|
v.MonthlyIncreaseLimitImageConsumptionNumber = 0
|
||||||
v.MonthlyBundleLimitExpiredImageConsumptionNumber = 0
|
v.MonthlyBundleLimitExpiredImageConsumptionNumber = 0
|
||||||
v.MonthlyIncreaseLimitExpiredImageConsumptionNumber = 0
|
v.MonthlyIncreaseLimitExpiredImageConsumptionNumber = 0
|
||||||
v.ManualImageConsumptionNumber = 0
|
|
||||||
v.MonthlyNewManualImageNumber = 0
|
|
||||||
v.MonthlyManualImageConsumptionNumber = 0
|
|
||||||
v.MonthlyBundleImageConsumptionNumber = 0
|
|
||||||
v.MonthlyIncreaseImageConsumptionNumber = 0
|
|
||||||
v.MonthlyBundleLimitImageConsumptionNumber = 0
|
|
||||||
v.MonthlyIncreaseLimitImageConsumptionNumber = 0
|
|
||||||
v.MonthlyBundleLimitExpiredImageConsumptionNumber = 0
|
|
||||||
v.MonthlyIncreaseLimitExpiredImageConsumptionNumber = 0
|
|
||||||
v.ManualImageConsumptionNumber = 0
|
|
||||||
v.MonthlyNewManualImageNumber = 0
|
v.MonthlyNewManualImageNumber = 0
|
||||||
v.MonthlyManualImageConsumptionNumber = 0
|
v.MonthlyManualImageConsumptionNumber = 0
|
||||||
v.MonthlyBundleDataAnalysisConsumptionNumber = 0
|
v.MonthlyBundleDataAnalysisConsumptionNumber = 0
|
||||||
@ -604,7 +602,6 @@ inner join (
|
|||||||
v.MonthlyIncreaseLimitDataAnalysisConsumptionNumber = 0
|
v.MonthlyIncreaseLimitDataAnalysisConsumptionNumber = 0
|
||||||
v.MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber = 0
|
v.MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber = 0
|
||||||
v.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber = 0
|
v.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber = 0
|
||||||
v.ManualDataAnalysisConsumptionNumber = 0
|
|
||||||
v.MonthlyNewManualDataAnalysisNumber = 0
|
v.MonthlyNewManualDataAnalysisNumber = 0
|
||||||
v.MonthlyManualDataAnalysisConsumptionNumber = 0
|
v.MonthlyManualDataAnalysisConsumptionNumber = 0
|
||||||
|
|
||||||
|
|||||||
@ -225,9 +225,9 @@ func cal(data model.BundleBalance, total, limit int, date time.Time) int {
|
|||||||
released += limit
|
released += limit
|
||||||
}
|
}
|
||||||
|
|
||||||
interval := date.Year()*12 + int(date.Month()) - (data.StartAt.Year()*12 + int(data.StartAt.Month())) // 后续月份释放的
|
interval := date.Year()*12 + int(date.Month()) - (data.StartAt.Year()*12 + int(data.StartAt.Month()))
|
||||||
released += interval * limit
|
released += max(interval-1, 0) * limit // 后续月份释放的
|
||||||
remaining := max(total-released, 0) // 还剩余多少次没有发放
|
remaining := max(total-released, 0) // 还剩余多少次没有发放
|
||||||
|
|
||||||
if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() && data.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整)
|
if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() && data.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整)
|
||||||
return min((limit+1)/2, remaining)
|
return min((limit+1)/2, remaining)
|
||||||
@ -347,7 +347,6 @@ func CreateBundleBalance(req *bundle.CreateBundleBalanceReq) (*bundle.CreateBund
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
// 当月可用的限制类型数等于本月方法的套餐和增值两种类型的总和
|
|
||||||
data.MonthlyBundleLimitExpiredVideoNumber = cal(data, data.BundleLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
data.MonthlyBundleLimitExpiredVideoNumber = cal(data, data.BundleLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||||
data.MonthlyIncreaseLimitExpiredVideoNumber = cal(data, data.IncreaseLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
data.MonthlyIncreaseLimitExpiredVideoNumber = cal(data, data.IncreaseLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||||
data.MonthlyBundleLimitVideoNumber = cal(data, data.BundleLimitVideoNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
data.MonthlyBundleLimitVideoNumber = cal(data, data.BundleLimitVideoNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user