新的套餐扩展

This commit is contained in:
lzh 2025-10-15 14:41:38 +08:00
parent 9e4fb0543c
commit fc7c88c85f

View File

@ -10,9 +10,6 @@ import (
"strconv"
"time"
"dubbo.apache.org/dubbo-go/v3/common/logger"
"github.com/duke-git/lancet/v2/datetime"
"gorm.io/gorm"
)
@ -22,33 +19,12 @@ func AddBundleExtendRecord(data model.BundleExtensionRecords) error {
return err
}
if data.AvailableDurationAdditional != 0 && data.TimeUnit != 0 {
record := model.BundleOrderRecords{}
if err := tx.Model(&model.BundleOrderRecords{}).Where(&model.BundleOrderRecords{CustomerID: strconv.Itoa(data.UserId)}).Order("created_at desc").First(&record).Error; err != nil {
record := model.BundleBalance{}
if err := tx.Model(&model.BundleBalance{}).Where(&model.BundleOrderRecords{CustomerID: strconv.Itoa(data.UserId)}).Order("created_at desc").First(&record).Error; err != nil {
return err
}
var expireTime time.Time
if record.ExpirationTime != "" {
loc, _ := time.LoadLocation("Asia/Shanghai")
et, _ := time.ParseInLocation(time.DateTime, record.ExpirationTime, loc)
expireTime = et
} else {
t, _ := time.Parse("2006-01-02 15:04:05", record.PayTime)
expireTime = t
logger.Infof("过期时间为空,使用默认过期时间" + expireTime.Format(time.DateTime))
}
switch data.TimeUnit {
case 1:
expireTime = datetime.AddDay(expireTime, int64(data.AvailableDurationAdditional))
case 2:
expireTime = datetime.AddMonth(expireTime, int64(data.AvailableDurationAdditional))
case 3:
expireTime = datetime.AddYear(expireTime, int64(data.AvailableDurationAdditional))
default:
return errors.New("时间单位有误")
}
record.ExpirationTime = expireTime.Format(time.DateTime)
return tx.Model(&model.BundleOrderRecords{}).Where(&model.BundleOrderRecords{UUID: record.UUID}).Updates(&record).Error
record.ExpiredAt.Add(time.Hour * 24 * time.Duration(data.AvailableDurationAdditional))
return tx.Save(record).Error
}
return nil
})