新的套餐扩展
This commit is contained in:
parent
9e4fb0543c
commit
fc7c88c85f
@ -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
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user