修复错误购买报错的问题,修复接口返回虚流量启动错误的问题
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m48s

This commit is contained in:
Break
2026-06-11 14:51:26 +08:00
parent 134021c91e
commit c437593a8c
9 changed files with 145 additions and 196 deletions

View File

@@ -40,21 +40,17 @@ func FindAttachableMainPackageForAddon(tx *gorm.DB, carrierType string, carrierI
return &mainPackage, nil
}
// FindBlockingMainPackageForFormal 查询阻止购买新主套餐的现有主套餐。
// 待生效、生效中、未过期的已用完主套餐仍占用主套餐资格;只有过期或失效后才允许再次购买主套餐
func FindBlockingMainPackageForFormal(tx *gorm.DB, carrierType string, carrierID uint, now time.Time) (*model.PackageUsage, error) {
// FindCurrentMainPackageForQueue 查询应让新主套餐排队的现有主套餐。
// 未过期的生效中、已用完主套餐仍占用当前周期;待生效只是队列记录,不阻止继续排队购买
func FindCurrentMainPackageForQueue(tx *gorm.DB, carrierType string, carrierID uint, now time.Time) (*model.PackageUsage, error) {
var mainPackage model.PackageUsage
query := tx.Model(&model.PackageUsage{}).
Where("master_usage_id IS NULL").
Where(
"(status IN ? OR (status = ? AND (expires_at IS NULL OR expires_at > ?)))",
[]int{
constants.PackageUsageStatusPending,
constants.PackageUsageStatusActive,
},
Where("status IN ?", []int{
constants.PackageUsageStatusActive,
constants.PackageUsageStatusDepleted,
now,
).
}).
Where("expires_at IS NULL OR expires_at > ?", now).
Order("priority ASC, created_at ASC")
switch carrierType {
@@ -72,9 +68,9 @@ func FindBlockingMainPackageForFormal(tx *gorm.DB, carrierType string, carrierID
return &mainPackage, nil
}
// HasBlockingMainPackageForFormal 判断载体是否已有阻止新主套餐购买的主套餐。
func HasBlockingMainPackageForFormal(tx *gorm.DB, carrierType string, carrierID uint, now time.Time) (bool, error) {
_, err := FindBlockingMainPackageForFormal(tx, carrierType, carrierID, now)
// HasCurrentMainPackageForQueue 判断载体是否已有应让新主套餐排队的主套餐。
func HasCurrentMainPackageForQueue(tx *gorm.DB, carrierType string, carrierID uint, now time.Time) (bool, error) {
_, err := FindCurrentMainPackageForQueue(tx, carrierType, carrierID, now)
if err == nil {
return true, nil
}