优化增加余量字段
This commit is contained in:
parent
5891719749
commit
7123333344
@ -463,3 +463,8 @@ func BundleListH5V2(req *bundle.BundleListRequest) (res *bundle.BundleListRespon
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
func GetUnconfirmed() (data []model.CastWork,err error) {
|
||||
err = app.ModuleClients.BundleDB.Model(&model.CastWork{}).Where("status = ? and update_time < ?", 4, time.Now().Add(-time.Hour*24)).Find(&data).Error
|
||||
return
|
||||
}
|
||||
|
||||
@ -198,33 +198,29 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
||||
}
|
||||
if data.VideoNumber > 0 {
|
||||
// 当月可使用的会过期的限制类型充足
|
||||
if oldData.BundleLimitVideoExpiredConsumptionNumber < cal(oldData, oldData.BundleLimitVideoExpiredNumber, oldData.MonthlyLimitVideoQuotaNumber, time.Now()) { // 套餐内会过期的限制类型视频充足
|
||||
oldData.MonthlyLimitVideoExpireConsumptionNumber++
|
||||
if oldData.MonthlyBundleLimitExpiredVideoConsumptionNumber < oldData.MonthlyBundleLimitExpiredVideoNumber { // 套餐内会过期的限制类型视频充足
|
||||
oldData.MonthlyBundleLimitExpiredVideoConsumptionNumber++
|
||||
oldData.BundleLimitVideoExpiredConsumptionNumber++
|
||||
oldData.MonthlyBundleVideoConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseLimitVideoExpiredConsumptionNumber < cal(oldData, oldData.IncreaseLimitVideoExpiredNumber, oldData.MonthlyLimitVideoQuotaNumber, time.Now()) { // 增值服务会过期的限制类型视频充足
|
||||
oldData.MonthlyLimitVideoExpireConsumptionNumber++
|
||||
if oldData.MonthlyIncreaseLimitExpiredVideoConsumptionNumber < oldData.MonthlyBundleLimitExpiredVideoNumber { // 增值服务会过期的限制类型视频充足
|
||||
oldData.MonthlyIncreaseLimitExpiredVideoConsumptionNumber++
|
||||
oldData.IncreaseLimitVideoExpiredConsumptionNumber++
|
||||
oldData.MonthlyIncreaseVideoConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
|
||||
// 当月可使用的不过期的限制类型充足
|
||||
if oldData.BundleLimitVideoConsumptionNumber < cal(oldData, oldData.BundleLimitVideoNumber, oldData.MonthlyLimitVideoQuotaNumber, time.Now()) { // 套餐内不过期的限制类型视频充足
|
||||
oldData.MonthlyLimitVideoConsumptionNumber++
|
||||
// 当月可使用的会过期的限制类型充足
|
||||
if oldData.MonthlyBundleLimitVideoConsumptionNumber < oldData.MonthlyBundleLimitVideoNumber { // 套餐内会过期的限制类型视频充足
|
||||
oldData.MonthlyBundleLimitVideoConsumptionNumber++
|
||||
oldData.BundleLimitVideoConsumptionNumber++
|
||||
oldData.MonthlyBundleVideoConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseLimitVideoConsumptionNumber < cal(oldData, oldData.IncreaseLimitVideoNumber, oldData.MonthlyLimitVideoQuotaNumber, time.Now()) { // 增值服务不过期的限制类型视频充足
|
||||
oldData.MonthlyLimitVideoConsumptionNumber++
|
||||
if oldData.MonthlyIncreaseLimitVideoConsumptionNumber < oldData.MonthlyBundleLimitVideoNumber { // 增值服务会过期的限制类型视频充足
|
||||
oldData.MonthlyIncreaseLimitVideoConsumptionNumber++
|
||||
oldData.IncreaseLimitVideoConsumptionNumber++
|
||||
oldData.MonthlyIncreaseVideoConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
@ -252,46 +248,50 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
||||
|
||||
if data.ImageNumber > 0 {
|
||||
// 当月可使用的会过期的限制类型充足
|
||||
if oldData.BundleLimitImageExpiredConsumptionNumber < cal(oldData, oldData.BundleLimitImageExpiredNumber, oldData.MonthlyLimitImageQuotaNumber, time.Now()) { // 套餐内会过期的限制类型图文充足
|
||||
oldData.MonthlyLimitImageExpireConsumptionNumber++
|
||||
// 当月可使用的会过期的限制类型充足
|
||||
if oldData.MonthlyBundleLimitExpiredImageConsumptionNumber < oldData.MonthlyBundleLimitExpiredImageNumber { // 套餐内会过期的限制类型图片充足
|
||||
oldData.MonthlyBundleLimitExpiredImageConsumptionNumber++
|
||||
oldData.BundleLimitImageExpiredConsumptionNumber++
|
||||
oldData.MonthlyBundleImageConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseLimitImageExpiredConsumptionNumber < cal(oldData, oldData.IncreaseLimitImageExpiredNumber, oldData.MonthlyLimitImageQuotaNumber, time.Now()) { // 增值服务会过期的限制类型图文充足
|
||||
oldData.MonthlyLimitImageExpireConsumptionNumber++
|
||||
if oldData.MonthlyIncreaseLimitExpiredImageConsumptionNumber < oldData.MonthlyBundleLimitExpiredImageNumber { // 增值服务会过期的限制类型图片充足
|
||||
oldData.MonthlyIncreaseLimitExpiredImageConsumptionNumber++
|
||||
oldData.IncreaseLimitImageExpiredConsumptionNumber++
|
||||
oldData.MonthlyIncreaseImageConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
|
||||
// 当月可使用的不过期的限制类型充足
|
||||
if oldData.BundleLimitImageConsumptionNumber < cal(oldData, oldData.BundleLimitImageNumber, oldData.MonthlyLimitImageQuotaNumber, time.Now()) { // 套餐内不过期的限制类型图文充足
|
||||
oldData.MonthlyLimitImageConsumptionNumber++
|
||||
// 当月可使用的限制类型充足
|
||||
if oldData.MonthlyBundleLimitImageConsumptionNumber < oldData.MonthlyBundleLimitImageNumber { // 套餐内限制类型图片充足
|
||||
oldData.MonthlyBundleLimitImageConsumptionNumber++
|
||||
oldData.BundleLimitImageConsumptionNumber++
|
||||
oldData.MonthlyBundleImageConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseLimitImageConsumptionNumber < cal(oldData, oldData.IncreaseLimitImageNumber, oldData.MonthlyLimitImageQuotaNumber, time.Now()) { // 增值服务不过期的限制类型图文充足
|
||||
oldData.MonthlyLimitImageConsumptionNumber++
|
||||
if oldData.MonthlyIncreaseLimitImageConsumptionNumber < oldData.MonthlyBundleLimitImageNumber { // 增值服务限制类型图片充足
|
||||
oldData.MonthlyIncreaseLimitImageConsumptionNumber++
|
||||
oldData.IncreaseLimitImageConsumptionNumber++
|
||||
oldData.MonthlyIncreaseImageConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
|
||||
if oldData.BundleImageConsumptionNumber < oldData.BundleImageNumber { //套餐内非限制类型的图文充足
|
||||
oldData.BundleImageConsumptionNumber++
|
||||
oldData.MonthlyBundleImageConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseImageConsumptionNumber < oldData.IncreaseImageNumber { //增值服务非限制类型的图文充足
|
||||
oldData.IncreaseImageConsumptionNumber++
|
||||
oldData.MonthlyIncreaseImageConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
if oldData.ManualImageConsumptionNumber < oldData.ManualImageNumber { // 手动扩展类型充足
|
||||
oldData.ManualImageConsumptionNumber++
|
||||
oldData.MonthlyManualImageConsumptionNumber++ // 记录本月使用的手动扩展
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
return errors.New("可用图文数不足")
|
||||
@ -299,45 +299,50 @@ func AddBundleBalanceByUserId(data model.BundleBalanceUsePo) (usedType int, err
|
||||
|
||||
if data.DataAnalysisNumber > 0 {
|
||||
// 当月可使用的会过期的限制类型充足
|
||||
if oldData.BundleLimitDataAnalysisExpiredConsumptionNumber < cal(oldData, oldData.BundleLimitDataAnalysisExpiredNumber, oldData.MonthlyLimitDataAnalysisQuotaNumber, time.Now()) { // 套餐内会过期的限制类型数据分析充足
|
||||
oldData.MonthlyLimitDataAnalysisExpireConsumptionNumber++
|
||||
// 当月可使用的会过期的限制类型充足
|
||||
if oldData.MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber < oldData.MonthlyBundleLimitExpiredDataAnalysisNumber { // 套餐内会过期的限制类型数据分析充足
|
||||
oldData.MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber++
|
||||
oldData.BundleLimitDataAnalysisExpiredConsumptionNumber++
|
||||
oldData.MonthlyBundleDataAnalysisConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseLimitDataAnalysisExpiredConsumptionNumber < cal(oldData, oldData.IncreaseLimitDataAnalysisExpiredNumber, oldData.MonthlyLimitDataAnalysisQuotaNumber, time.Now()) { // 增值服务会过期的限制类型数据分析充足
|
||||
oldData.MonthlyLimitDataAnalysisExpireConsumptionNumber++
|
||||
if oldData.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber < oldData.MonthlyBundleLimitExpiredDataAnalysisNumber { // 增值服务会过期的限制类型数据分析充足
|
||||
oldData.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber++
|
||||
oldData.IncreaseLimitDataAnalysisExpiredConsumptionNumber++
|
||||
oldData.MonthlyIncreaseDataAnalysisConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
// 当月可使用的不过期的限制类型充足
|
||||
if oldData.BundleLimitDataAnalysisConsumptionNumber < cal(oldData, oldData.BundleLimitDataAnalysisNumber, oldData.MonthlyLimitDataAnalysisQuotaNumber, time.Now()) { // 套餐内不过期的限制类型数据分析充足
|
||||
oldData.MonthlyLimitDataAnalysisConsumptionNumber++
|
||||
|
||||
// 当月可使用的限制类型充足
|
||||
if oldData.MonthlyBundleLimitDataAnalysisConsumptionNumber < oldData.MonthlyBundleLimitDataAnalysisNumber { // 套餐内限制类型数据分析充足
|
||||
oldData.MonthlyBundleLimitDataAnalysisConsumptionNumber++
|
||||
oldData.BundleLimitDataAnalysisConsumptionNumber++
|
||||
oldData.MonthlyBundleDataAnalysisConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseLimitDataAnalysisConsumptionNumber < cal(oldData, oldData.IncreaseLimitDataAnalysisNumber, oldData.MonthlyLimitDataAnalysisQuotaNumber, time.Now()) { // 增值服务不过期的限制类型数据分析充足
|
||||
oldData.MonthlyLimitDataAnalysisConsumptionNumber++
|
||||
if oldData.MonthlyIncreaseLimitDataAnalysisConsumptionNumber < oldData.MonthlyBundleLimitDataAnalysisNumber { // 增值服务限制类型数据分析充足
|
||||
oldData.MonthlyIncreaseLimitDataAnalysisConsumptionNumber++
|
||||
oldData.IncreaseLimitDataAnalysisConsumptionNumber++
|
||||
oldData.MonthlyIncreaseDataAnalysisConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
|
||||
if oldData.BundleLimitDataAnalysisNumber < oldData.BundleDataAnalysisNumber { //套餐内非限制类型的数据分析充足
|
||||
oldData.BundleLimitDataAnalysisNumber++
|
||||
oldData.MonthlyBundleDataAnalysisConsumptionNumber++
|
||||
usedType = 1
|
||||
goto Over
|
||||
}
|
||||
if oldData.IncreaseDataAnalysisConsumptionNumber < oldData.IncreaseDataAnalysisNumber { //增值服务非限制类型的数据分析充足
|
||||
oldData.IncreaseDataAnalysisConsumptionNumber++
|
||||
oldData.MonthlyIncreaseDataAnalysisConsumptionNumber++
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
if oldData.ManualDataAnalysisConsumptionNumber < oldData.ManualDataAnalysisNumber { // 手动扩展类型充足
|
||||
oldData.ManualDataAnalysisConsumptionNumber++
|
||||
oldData.MonthlyManualDataAnalysisConsumptionNumber++ // 记录本月使用的手动扩展
|
||||
usedType = 2
|
||||
goto Over
|
||||
}
|
||||
return errors.New("可用数据分析数不足")
|
||||
@ -554,41 +559,55 @@ inner join (
|
||||
return min(limit, remaining)
|
||||
}
|
||||
|
||||
v.MonthlyInvalidBundleVideoNumber = v.MonthlyLimitVideoExpireNumber - v.MonthlyLimitVideoExpireConsumptionNumber // 当月过期的视频数
|
||||
v.MonthlyInvalidBundleVideoNumber = v.MonthlyBundleLimitExpiredVideoNumber - v.MonthlyBundleLimitExpiredVideoConsumptionNumber // 当月过期的视频数
|
||||
v.InvalidBundleVideoNumber += v.MonthlyInvalidBundleVideoNumber
|
||||
v.MonthlyInvalidBundleImageNumber = v.MonthlyLimitImageExpireNumber - v.MonthlyLimitImageExpireConsumptionNumber
|
||||
v.MonthlyInvalidBundleImageNumber = v.MonthlyBundleLimitExpiredImageNumber - v.MonthlyBundleLimitExpiredImageConsumptionNumber // 当月过期的图片数
|
||||
v.InvalidBundleImageNumber += v.MonthlyInvalidBundleImageNumber
|
||||
v.MonthlyInvalidBundleDataAnalysisNumber = v.MonthlyLimitDataAnalysisExpireNumber - v.MonthlyLimitDataAnalysisExpireConsumptionNumber
|
||||
v.MonthlyInvalidBundleDataAnalysisNumber = v.MonthlyBundleLimitExpiredDataAnalysisNumber - v.MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber // 当月过期的数据分析数
|
||||
v.InvalidBundleDataAnalysisNumber += v.MonthlyInvalidBundleDataAnalysisNumber
|
||||
|
||||
// 当月可用的限制类型数等于本月方法的套餐和增值两种类型的总和
|
||||
v.MonthlyLimitVideoExpireNumber = cal(v.BundleLimitVideoExpiredNumber, v.MonthlyLimitVideoQuotaNumber) + cal(v.IncreaseLimitVideoExpiredNumber, v.MonthlyLimitVideoQuotaNumber)
|
||||
v.MonthlyLimitVideoNumber = v.MonthlyLimitVideoNumber - v.MonthlyLimitVideoConsumptionNumber + cal(v.BundleLimitVideoNumber, v.MonthlyLimitVideoQuotaNumber) + cal(v.IncreaseLimitVideoNumber, v.MonthlyLimitVideoQuotaNumber)
|
||||
v.MonthlyLimitImageExpireNumber = cal(v.BundleLimitImageExpiredNumber, v.MonthlyLimitImageQuotaNumber) + cal(v.IncreaseLimitImageExpiredNumber, v.MonthlyLimitImageQuotaNumber)
|
||||
v.MonthlyLimitImageNumber = v.MonthlyLimitImageNumber - v.MonthlyLimitImageConsumptionNumber + cal(v.BundleLimitImageNumber, v.MonthlyLimitImageQuotaNumber) + cal(v.IncreaseLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
||||
v.MonthlyLimitDataAnalysisExpireNumber = cal(v.BundleLimitDataAnalysisExpiredNumber, v.MonthlyLimitDataAnalysisQuotaNumber) + cal(v.IncreaseLimitDataAnalysisExpiredNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
v.MonthlyLimitDataAnalysisNumber = v.MonthlyLimitDataAnalysisNumber - v.MonthlyLimitDataAnalysisConsumptionNumber + cal(v.BundleLimitDataAnalysisNumber, v.MonthlyLimitDataAnalysisQuotaNumber) + cal(v.IncreaseLimitDataAnalysisNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
|
||||
v.MonthlyLimitVideoConsumptionNumber = 0 // 重置单月消耗数量
|
||||
v.MonthlyLimitVideoExpireConsumptionNumber = 0
|
||||
v.MonthlyManualVideoConsumptionNumber = 0
|
||||
v.MonthlyLimitImageConsumptionNumber = 0
|
||||
v.MonthlyLimitImageExpireConsumptionNumber = 0
|
||||
v.MonthlyManualImageConsumptionNumber = 0
|
||||
v.MonthlyLimitDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyLimitDataAnalysisExpireConsumptionNumber = 0
|
||||
v.MonthlyManualDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyBundleVideoConsumptionNumber = 0
|
||||
v.MonthlyBundleLimitExpiredVideoNumber = cal(v.BundleLimitVideoExpiredNumber, v.MonthlyLimitVideoQuotaNumber)
|
||||
v.MonthlyIncreaseLimitExpiredVideoNumber = cal(v.IncreaseLimitVideoExpiredNumber, v.MonthlyLimitVideoQuotaNumber)
|
||||
v.MonthlyBundleLimitVideoNumber = cal(v.BundleLimitVideoNumber, v.MonthlyLimitVideoQuotaNumber)
|
||||
v.MonthlyIncreaseLimitVideoNumber = cal(v.IncreaseLimitVideoNumber, v.MonthlyLimitVideoQuotaNumber)
|
||||
v.MonthlyBundleLimitExpiredImageNumber = cal(v.BundleLimitImageExpiredNumber, v.MonthlyLimitImageQuotaNumber)
|
||||
v.MonthlyIncreaseLimitExpiredImageNumber = cal(v.IncreaseLimitImageExpiredNumber, v.MonthlyLimitImageQuotaNumber)
|
||||
v.MonthlyBundleLimitImageNumber = cal(v.BundleLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
||||
v.MonthlyIncreaseLimitImageNumber = cal(v.IncreaseLimitImageNumber, v.MonthlyLimitImageQuotaNumber)
|
||||
v.MonthlyBundleLimitExpiredDataAnalysisNumber = cal(v.BundleLimitDataAnalysisExpiredNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
v.MonthlyIncreaseLimitExpiredDataAnalysisNumber = cal(v.IncreaseLimitDataAnalysisExpiredNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
v.MonthlyBundleLimitDataAnalysisNumber = cal(v.BundleLimitDataAnalysisNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
v.MonthlyIncreaseLimitDataAnalysisNumber = cal(v.IncreaseLimitDataAnalysisNumber, v.MonthlyLimitDataAnalysisQuotaNumber)
|
||||
// 重置单月消耗数量
|
||||
v.MonthlyBundleImageConsumptionNumber = 0
|
||||
v.MonthlyBundleDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyIncreaseVideoConsumptionNumber = 0
|
||||
v.MonthlyIncreaseImageConsumptionNumber = 0
|
||||
v.MonthlyIncreaseDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyNewAccountNumber = 0
|
||||
v.MonthlyNewDurationNumber = 0
|
||||
v.MonthlyNewManualVideoNumber = 0
|
||||
v.MonthlyBundleLimitImageConsumptionNumber = 0
|
||||
v.MonthlyIncreaseLimitImageConsumptionNumber = 0
|
||||
v.MonthlyBundleLimitExpiredImageConsumptionNumber = 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.MonthlyManualImageConsumptionNumber = 0
|
||||
v.MonthlyBundleDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyIncreaseDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyBundleLimitDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyIncreaseLimitDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber = 0
|
||||
v.ManualDataAnalysisConsumptionNumber = 0
|
||||
v.MonthlyNewManualDataAnalysisNumber = 0
|
||||
v.MonthlyManualDataAnalysisConsumptionNumber = 0
|
||||
|
||||
v.Month = month
|
||||
v.ID = 0
|
||||
app.ModuleClients.BundleDB.Create(&v)
|
||||
@ -643,25 +662,3 @@ func SetBundleBalanceLayout(req *bundle.SetBundleBalanceLayoutReq) error {
|
||||
DoUpdates: clause.AssignmentColumns([]string{"data"}),
|
||||
}).Create(&model.BundleBalanceLayout{Data: req.Data, UserId: uint64(req.UserId)}).Error
|
||||
}
|
||||
|
||||
// 计算本月发放的限制类型数量
|
||||
func cal(data model.BundleBalance, total, limit int, date time.Time) int {
|
||||
var released int // 已释放的次数
|
||||
|
||||
if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() { //第一个月释放的
|
||||
} else if data.StartAt.Day() >= 16 {
|
||||
released += (limit + 1) / 2
|
||||
} else {
|
||||
released += limit
|
||||
}
|
||||
interval := date.Year()*12 + int(date.Month()) - (data.StartAt.Year()*12 + int(data.StartAt.Month())) // 后续月份释放的
|
||||
released += interval * limit
|
||||
remaining := max(total-released, 0) // 还剩余多少次没有发放
|
||||
if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() && data.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整)
|
||||
return min((limit+1)/2, remaining)
|
||||
}
|
||||
if data.ExpiredAt.Month() == date.Month() && data.ExpiredAt.Year() == date.Year() && data.ExpiredAt.Day() < 16 { // 本月为最后一个月并且16号前到期只给一半(向下取整)
|
||||
return min(limit/2, remaining)
|
||||
}
|
||||
return min(limit, remaining)
|
||||
}
|
||||
|
||||
@ -348,12 +348,21 @@ func CreateBundleBalance(req *bundle.CreateBundleBalanceReq) (*bundle.CreateBund
|
||||
}
|
||||
now := time.Now()
|
||||
// 当月可用的限制类型数等于本月方法的套餐和增值两种类型的总和
|
||||
data.MonthlyLimitVideoExpireNumber = cal(data, data.BundleLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now) + cal(data, data.IncreaseLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||
data.MonthlyLimitVideoNumber = cal(data, data.BundleLimitVideoNumber, data.MonthlyLimitVideoQuotaNumber, now) + cal(data, data.IncreaseLimitVideoNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||
data.MonthlyLimitImageExpireNumber = cal(data, data.BundleLimitImageExpiredNumber, data.MonthlyLimitImageQuotaNumber, now) + cal(data, data.IncreaseLimitImageExpiredNumber, data.MonthlyLimitImageQuotaNumber, now)
|
||||
data.MonthlyLimitImageNumber = cal(data, data.BundleLimitImageNumber, data.MonthlyLimitImageQuotaNumber, now) + cal(data, data.IncreaseLimitImageNumber, data.MonthlyLimitImageQuotaNumber, now)
|
||||
data.MonthlyLimitDataAnalysisExpireNumber = cal(data, data.BundleLimitDataAnalysisExpiredNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now) + cal(data, data.IncreaseLimitDataAnalysisExpiredNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now)
|
||||
data.MonthlyLimitDataAnalysisNumber = cal(data, data.BundleLimitDataAnalysisNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now) + cal(data, data.IncreaseLimitDataAnalysisNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now)
|
||||
data.MonthlyBundleLimitExpiredVideoNumber = cal(data, data.BundleLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||
data.MonthlyIncreaseLimitExpiredVideoNumber = cal(data, data.IncreaseLimitVideoExpiredNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||
data.MonthlyBundleLimitVideoNumber = cal(data, data.BundleLimitVideoNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||
data.MonthlyIncreaseLimitVideoNumber = cal(data, data.IncreaseLimitVideoNumber, data.MonthlyLimitVideoQuotaNumber, now)
|
||||
|
||||
data.MonthlyBundleLimitExpiredImageNumber = cal(data, data.BundleLimitImageExpiredNumber, data.MonthlyLimitImageQuotaNumber, now)
|
||||
data.MonthlyIncreaseLimitExpiredImageNumber = cal(data, data.IncreaseLimitImageExpiredNumber, data.MonthlyLimitImageQuotaNumber, now)
|
||||
data.MonthlyBundleLimitImageNumber = cal(data, data.BundleLimitImageNumber, data.MonthlyLimitImageQuotaNumber, now)
|
||||
data.MonthlyIncreaseLimitImageNumber = cal(data, data.IncreaseLimitImageNumber, data.MonthlyLimitImageQuotaNumber, now)
|
||||
|
||||
data.MonthlyBundleLimitExpiredDataAnalysisNumber = cal(data, data.BundleLimitDataAnalysisExpiredNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now)
|
||||
data.MonthlyIncreaseLimitExpiredDataAnalysisNumber = cal(data, data.IncreaseLimitDataAnalysisExpiredNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now)
|
||||
data.MonthlyBundleLimitDataAnalysisNumber = cal(data, data.BundleLimitDataAnalysisNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now)
|
||||
data.MonthlyIncreaseLimitDataAnalysisNumber = cal(data, data.IncreaseLimitDataAnalysisNumber, data.MonthlyLimitDataAnalysisQuotaNumber, now)
|
||||
|
||||
err = dao.CreateBundleBalance(data)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
@ -573,3 +582,21 @@ func buildDefaultBalanceLayout() string {
|
||||
b, _ := json.Marshal(jsonMap)
|
||||
return string(b)
|
||||
}
|
||||
|
||||
// func AutoConfirm() {
|
||||
// data, err := dao.GetUnconfirmed()
|
||||
// if err != nil {
|
||||
// log.Print("无法获取到未确认的作品数据")
|
||||
// return
|
||||
// }
|
||||
// for _, v := range data {
|
||||
// var err error
|
||||
// switch v.WorkCategory{
|
||||
// case 1:
|
||||
// }
|
||||
// AddBundleBalance()
|
||||
// ConfirmWork(&bundle.ConfirmWorkReq{
|
||||
// WorkUuid: v.Uuid,
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
|
||||
@ -206,12 +206,16 @@ type BundleBalance struct {
|
||||
IncreaseLimitVideoConsumptionNumber int `gorm:"column:increase_limit_video_consumption_number;not null;comment:增值权益限制类型非过期使用数"`
|
||||
BundleLimitVideoExpiredConsumptionNumber int `gorm:"column:bundle_limit_video_expired_consumption_number;not null;comment:套餐权益限制类型会过期使用数"`
|
||||
IncreaseLimitVideoExpiredConsumptionNumber int `gorm:"column:increase_limit_video_expired_consumption_number;not null;comment:增值权益限制类型会过期使用数"`
|
||||
MonthlyLimitVideoNumber int `gorm:"column:monthly_limit_video_number;not null;comment:当月限制类型视频可用数"`
|
||||
MonthlyLimitVideoConsumptionNumber int `gorm:"column:monthly_limit_video_consumption_number;not null;comment:当月限制类型视频已使用额度"`
|
||||
MonthlyLimitVideoExpireNumber int `gorm:"column:monthly_limit_video_expired_number;not null;comment:当月限制类型视频会过期可用数"`
|
||||
MonthlyLimitVideoExpireConsumptionNumber int `gorm:"column:monthly_limit_video_expired_consumption_number;not null;comment:当月限制类型视频会过期已使用额度"`
|
||||
MonthlyBundleVideoConsumptionNumber int `gorm:"column:monthly_bundle_video_consumption_number;not null;comment:当月套餐类型总使用数"`
|
||||
MonthlyIncreaseVideoConsumptionNumber int `gorm:"column:monthly_increase_video_consumption_number;not null;comment:当月增值类型总使用数"`
|
||||
MonthlyBundleVideoConsumptionNumber int `gorm:"column:monthly_bundle_video_consumption_number;not null;comment:当月套餐类型视频已使用额度"`
|
||||
MonthlyIncreaseVideoConsumptionNumber int `gorm:"column:monthly_increase_video_consumption_number;not null;comment:当月增值类型视频已使用额度"`
|
||||
MonthlyBundleLimitVideoNumber int `gorm:"column:monthly_bundle_limit_video_number;not null;comment:当月套餐限制类型视频可使用额度"`
|
||||
MonthlyIncreaseLimitVideoNumber int `gorm:"column:monthly_increase_limit_video_number;not null;comment:当月增值限制类型视频可使用额度"`
|
||||
MonthlyBundleLimitVideoConsumptionNumber int `gorm:"column:monthly_bundle_limit_video_consumption_number;not null;comment:当月套餐限制类型视频已使用额度"`
|
||||
MonthlyIncreaseLimitVideoConsumptionNumber int `gorm:"column:monthly_increase_limit_video_consumption_number;not null;comment:当月增值限制类型视频已使用额度"`
|
||||
MonthlyBundleLimitExpiredVideoNumber int `gorm:"column:monthly_bundle_limit_expired_video_number;not null;comment:当月套餐限制类会过期型视频可使用额度"`
|
||||
MonthlyIncreaseLimitExpiredVideoNumber int `gorm:"column:monthly_increase_limit_expired_video_number;not null;comment:当月增值限制类会过期型视频可使用额度"`
|
||||
MonthlyBundleLimitExpiredVideoConsumptionNumber int `gorm:"column:monthly_bundle_limit_expired_video_consumption_number;not null;comment:当月套餐限制类型会过期视频已使用额度"`
|
||||
MonthlyIncreaseLimitExpiredVideoConsumptionNumber int `gorm:"column:monthly_increase_limit_expired_video_consumption_number;not null;comment:当月增值限制类会过期型视频已使用额度"`
|
||||
MonthlyLimitVideoQuotaNumber int `gorm:"column:monthly_limit_video_quota_number;not null;comment:当月限制类型视频额度"`
|
||||
ManualVideoNumber int `gorm:"column:manual_video_number;comment:手动扩展视频总数"`
|
||||
ManualVideoConsumptionNumber int `gorm:"column:manual_video_consumption_number;comment:手动扩展视频使用数"`
|
||||
@ -235,12 +239,16 @@ type BundleBalance struct {
|
||||
IncreaseLimitImageConsumptionNumber int `gorm:"column:increase_limit_image_consumption_number;not null;comment:增值权益限制类型非过期使用数"`
|
||||
BundleLimitImageExpiredConsumptionNumber int `gorm:"column:bundle_limit_image_expired_consumption_number;not null;comment:套餐权益限制类型会过期使用数"`
|
||||
IncreaseLimitImageExpiredConsumptionNumber int `gorm:"column:increase_limit_image_expired_consumption_number;not null;comment:增值权益限制类型会过期使用数"`
|
||||
MonthlyLimitImageNumber int `gorm:"column:monthly_limit_image_number;not null;comment:当月限制类型图片可使用额度"`
|
||||
MonthlyLimitImageConsumptionNumber int `gorm:"column:monthly_limit_image_consumption_number;not null;comment:当月限制类型图片已使用额度"`
|
||||
MonthlyLimitImageExpireNumber int `gorm:"column:monthly_limit_image_expired_number;not null;comment:当月限制类型图片会过期可用数"`
|
||||
MonthlyLimitImageExpireConsumptionNumber int `gorm:"column:monthly_limit_image_expired_consumption_number;not null;comment:当月限制类型图片会过期已使用额度"`
|
||||
MonthlyBundleImageConsumptionNumber int `gorm:"column:monthly_bundle_image_consumption_number;not null;comment:当月套餐类型总使用数"`
|
||||
MonthlyIncreaseImageConsumptionNumber int `gorm:"column:monthly_increase_image_consumption_number;not null;comment:当月增值类型总使用数"`
|
||||
MonthlyBundleImageConsumptionNumber int `gorm:"column:monthly_bundle_image_consumption_number;not null;comment:当月套餐类型图片已使用额度"`
|
||||
MonthlyIncreaseImageConsumptionNumber int `gorm:"column:monthly_increase_image_consumption_number;not null;comment:当月增值类型图片已使用额度"`
|
||||
MonthlyBundleLimitImageNumber int `gorm:"column:monthly_bundle_limit_image_number;not null;comment:当月套餐限制类型图片可使用额度"`
|
||||
MonthlyIncreaseLimitImageNumber int `gorm:"column:monthly_increase_limit_image_number;not null;comment:当月增值限制类型图片可使用额度"`
|
||||
MonthlyBundleLimitImageConsumptionNumber int `gorm:"column:monthly_bundle_limit_image_consumption_number;not null;comment:当月套餐限制类型图片已使用额度"`
|
||||
MonthlyIncreaseLimitImageConsumptionNumber int `gorm:"column:monthly_increase_limit_image_consumption_number;not null;comment:当月增值限制类型图片已使用额度"`
|
||||
MonthlyBundleLimitExpiredImageNumber int `gorm:"column:monthly_bundle_limit_expired_image_number;not null;comment:当月套餐限制类会过期型图片可使用额度"`
|
||||
MonthlyIncreaseLimitExpiredImageNumber int `gorm:"column:monthly_increase_limit_expired_image_number;not null;comment:当月增值限制类会过期型图片可使用额度"`
|
||||
MonthlyBundleLimitExpiredImageConsumptionNumber int `gorm:"column:monthly_bundle_limit_expired_image_consumption_number;not null;comment:当月套餐限制类型会过期图片已使用额度"`
|
||||
MonthlyIncreaseLimitExpiredImageConsumptionNumber int `gorm:"column:monthly_increase_limit_expired_image_consumption_number;not null;comment:当月增值限制类会过期型图片已使用额度"`
|
||||
MonthlyLimitImageQuotaNumber int `gorm:"column:monthly_limit_image_quota_number;not null;comment:当月限制类型图片额度"`
|
||||
ManualImageNumber int `gorm:"column:manual_image_number;comment:手动扩展图片总数"`
|
||||
ManualImageConsumptionNumber int `gorm:"column:manual_image_consumption_number;comment:手动扩展图片使用数"`
|
||||
@ -264,12 +272,16 @@ type BundleBalance struct {
|
||||
IncreaseLimitDataAnalysisConsumptionNumber int `gorm:"column:increase_limit_data_analysis_consumption_number;not null;comment:增值权益限制类型非过期使用数"`
|
||||
BundleLimitDataAnalysisExpiredConsumptionNumber int `gorm:"column:bundle_limit_data_analysis_expired_consumption_number;not null;comment:套餐权益限制类型会过期使用数"`
|
||||
IncreaseLimitDataAnalysisExpiredConsumptionNumber int `gorm:"column:increase_limit_data_analysis_expired_consumption_number;not null;comment:增值权益限制类型会过期使用数"`
|
||||
MonthlyLimitDataAnalysisNumber int `gorm:"column:monthly_limit_data_analysis_number;not null;comment:当月限制类型数据分析可使用额度"`
|
||||
MonthlyLimitDataAnalysisConsumptionNumber int `gorm:"column:monthly_limit_data_analysis_consumption_number;not null;comment:当月限制类型数据分析已使用额度"`
|
||||
MonthlyLimitDataAnalysisExpireNumber int `gorm:"column:monthly_limit_data_analysis_expired_number;not null;comment:当月限制类型数据分析会过期可用数"`
|
||||
MonthlyLimitDataAnalysisExpireConsumptionNumber int `gorm:"column:monthly_limit_data_analysis_expired_consumption_number;not null;comment:当月限制类型数据分析会过期已使用额度"`
|
||||
MonthlyBundleDataAnalysisConsumptionNumber int `gorm:"column:monthly_bundle_data_analysis_consumption_number;not null;comment:当月套餐类型总使用数"`
|
||||
MonthlyIncreaseDataAnalysisConsumptionNumber int `gorm:"column:monthly_increase_data_analysis_consumption_number;not null;comment:当月增值类型总使用数"`
|
||||
MonthlyBundleDataAnalysisConsumptionNumber int `gorm:"column:monthly_bundle_data_analysis_consumption_number;not null;comment:当月套餐类型数据分析已使用额度"`
|
||||
MonthlyIncreaseDataAnalysisConsumptionNumber int `gorm:"column:monthly_increase_data_analysis_consumption_number;not null;comment:当月增值类型数据分析已使用额度"`
|
||||
MonthlyBundleLimitDataAnalysisNumber int `gorm:"column:monthly_bundle_limit_data_analysis_number;not null;comment:当月套餐限制类型数据分析可使用额度"`
|
||||
MonthlyIncreaseLimitDataAnalysisNumber int `gorm:"column:monthly_increase_limit_data_analysis_number;not null;comment:当月增值限制类型数据分析可使用额度"`
|
||||
MonthlyBundleLimitDataAnalysisConsumptionNumber int `gorm:"column:monthly_bundle_limit_data_analysis_consumption_number;not null;comment:当月套餐限制类型数据分析已使用额度"`
|
||||
MonthlyIncreaseLimitDataAnalysisConsumptionNumber int `gorm:"column:monthly_increase_limit_data_analysis_consumption_number;not null;comment:当月增值限制类型数据分析已使用额度"`
|
||||
MonthlyBundleLimitExpiredDataAnalysisNumber int `gorm:"column:monthly_bundle_limit_expired_data_analysis_number;not null;comment:当月套餐限制类会过期型数据分析可使用额度"`
|
||||
MonthlyIncreaseLimitExpiredDataAnalysisNumber int `gorm:"column:monthly_increase_limit_expired_data_analysis_number;not null;comment:当月增值限制类会过期型数据分析可使用额度"`
|
||||
MonthlyBundleLimitExpiredDataAnalysisConsumptionNumber int `gorm:"column:monthly_bundle_limit_expired_data_analysis_consumption_number;not null;comment:当月套餐限制类型会过期数据分析已使用额度"`
|
||||
MonthlyIncreaseLimitExpiredDataAnalysisConsumptionNumber int `gorm:"column:monthly_increase_limit_expired_data_analysis_consumption_number;not null;comment:当月增值限制类会过期型数据分析已使用额度"`
|
||||
MonthlyLimitDataAnalysisQuotaNumber int `gorm:"column:monthly_limit_data_analysis_quota_number;not null;comment:当月限制类型数据分析额度"`
|
||||
ManualDataAnalysisNumber int `gorm:"column:manual_data_analysis_number;comment:手动扩展数据分析总数"`
|
||||
ManualDataAnalysisConsumptionNumber int `gorm:"column:manual_data_analysis_consumption_number;comment:手动扩展数据分析使用数"`
|
||||
|
||||
Loading…
Reference in New Issue
Block a user