parent
aa7de9e4f6
commit
7fe2038dcb
@ -9,6 +9,7 @@ import (
|
||||
"micro-bundle/pkg/utils"
|
||||
"time"
|
||||
|
||||
"dubbo.apache.org/dubbo-go/v3/common/logger"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
)
|
||||
@ -366,7 +367,7 @@ func CreateUsedRecord(tx *gorm.DB, data model.BundleUsedRecord) error {
|
||||
}
|
||||
|
||||
func ExtendBundleBalanceByUserId(data model.BundleBalanceExtendPo) error {
|
||||
return app.ModuleClients.BundleDB.Transaction(func(tx *gorm.DB) error {
|
||||
err := app.ModuleClients.BundleDB.Transaction(func(tx *gorm.DB) error {
|
||||
oldData := model.BundleBalance{}
|
||||
if err := tx.Model(&model.BundleBalance{}).Where("user_id = ?", data.UserId).Order("created_at desc").First(&oldData).Error; err != nil {
|
||||
return errors.New("用户还没有套餐信息")
|
||||
@ -383,10 +384,33 @@ func ExtendBundleBalanceByUserId(data model.BundleBalanceExtendPo) error {
|
||||
oldData.ExpiredAt.Add(time.Hour * 24 * time.Duration(data.DurationNumber))
|
||||
return tx.Model(&model.BundleBalance{}).Where("id = ?", oldData.ID).Save(&oldData).Error
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 套餐余额更新成功后,同步增量更新任务余额
|
||||
// 如果任务余额更新失败,只记录错误日志,不影响主流程
|
||||
if taskErr := ExtendTaskBalanceByUserId(data.UserId, data.ImageNumber, data.DataAnalysisNumber, data.VideoNumber, data.DurationNumber); taskErr != nil {
|
||||
// 记录错误日志但不返回错误,避免影响主流程
|
||||
logger.Errorf("任务余额同步失败,用户ID: %d, 错误: %v", data.UserId, taskErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func CreateBundleBalance(data model.BundleBalance) error {
|
||||
return app.ModuleClients.BundleDB.Save(&data).Error
|
||||
if err := app.ModuleClients.BundleDB.Save(&data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
// 同步任务余额(新建套餐余额时)
|
||||
// 如果任务余额同步失败,只记录错误日志,不影响主流程
|
||||
if taskErr := SyncTaskBalanceFromBundleBalance(data); taskErr != nil {
|
||||
// 记录错误日志但不返回错误,避免影响主流程
|
||||
logger.Errorf("新建套餐余额时任务余额同步失败,更新数据: %v, 错误 %v", data, taskErr)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetUsedRecord(req *bundle.GetUsedRecordListReq) (data []model.CostLogPo, total int64, err error) {
|
||||
|
Loading…
Reference in New Issue
Block a user