fix: 修复应用设置保存时未传字段被覆盖为空值/默认值的问题

This commit is contained in:
Trae AI
2026-06-18 12:38:19 +08:00
parent 6ca561404d
commit 4a6fc087c6
+63 -21
View File
@@ -367,31 +367,61 @@ func handleUpdateApplication(c *gin.Context) {
app.Name = req.Name app.Name = req.Name
app.Description = req.Description app.Description = req.Description
app.BillingType = req.BillingType if req.BillingType != "" {
app.LoginPolicy = req.LoginPolicy app.BillingType = req.BillingType
}
if req.LoginPolicy != "" {
app.LoginPolicy = req.LoginPolicy
}
app.AllowRegister = req.AllowRegister app.AllowRegister = req.AllowRegister
app.EnableLoginVerify = req.EnableLoginVerify app.EnableLoginVerify = req.EnableLoginVerify
app.EnableRegisterVerify = req.EnableRegisterVerify app.EnableRegisterVerify = req.EnableRegisterVerify
app.VerifyMethod = req.VerifyMethod if req.VerifyMethod != "" {
app.VerifyMethod = req.VerifyMethod
}
app.EmailConfigID = req.EmailConfigID app.EmailConfigID = req.EmailConfigID
app.SmsConfigID = req.SmsConfigID app.SmsConfigID = req.SmsConfigID
app.EncryptType = req.EncryptType if req.EncryptType != "" {
app.EncryptType = req.EncryptType
}
if req.EncryptKey != "" { if req.EncryptKey != "" {
app.EncryptKey = req.EncryptKey app.EncryptKey = req.EncryptKey
} }
app.BindType = req.BindType if req.BindType != "" {
app.MaxDevices = req.MaxDevices app.BindType = req.BindType
app.ChangeLimit = req.ChangeLimit }
app.ChangeInterval = req.ChangeInterval if req.MaxDevices > 0 {
app.ChangeExceedAction = req.ChangeExceedAction app.MaxDevices = req.MaxDevices
app.ChangeDeductAmount = req.ChangeDeductAmount }
app.MultiOpenMode = req.MultiOpenMode if req.ChangeLimit > 0 {
app.MaxInstances = req.MaxInstances app.ChangeLimit = req.ChangeLimit
}
if req.ChangeInterval > 0 {
app.ChangeInterval = req.ChangeInterval
}
if req.ChangeExceedAction != "" {
app.ChangeExceedAction = req.ChangeExceedAction
}
if req.ChangeDeductAmount > 0 {
app.ChangeDeductAmount = req.ChangeDeductAmount
}
if req.MultiOpenMode != "" {
app.MultiOpenMode = req.MultiOpenMode
}
if req.MaxInstances > 0 {
app.MaxInstances = req.MaxInstances
}
app.EnableTrial = req.EnableTrial app.EnableTrial = req.EnableTrial
app.TrialBalance = req.TrialBalance if req.TrialBalance > 0 {
app.TrialDays = req.TrialDays app.TrialBalance = req.TrialBalance
}
if req.TrialDays > 0 {
app.TrialDays = req.TrialDays
}
app.EnableFreePeriod = req.EnableFreePeriod app.EnableFreePeriod = req.EnableFreePeriod
app.FreePeriodType = req.FreePeriodType if req.FreePeriodType != "" {
app.FreePeriodType = req.FreePeriodType
}
app.FreePeriodStart = req.FreePeriodStart app.FreePeriodStart = req.FreePeriodStart
app.FreePeriodEnd = req.FreePeriodEnd app.FreePeriodEnd = req.FreePeriodEnd
app.FreePeriodWeekdays = req.FreePeriodWeekdays app.FreePeriodWeekdays = req.FreePeriodWeekdays
@@ -409,12 +439,24 @@ func handleUpdateApplication(c *gin.Context) {
if req.LockDuration > 0 { if req.LockDuration > 0 {
app.LockDuration = req.LockDuration app.LockDuration = req.LockDuration
} }
app.Status = req.Status if req.Status != "" {
app.DeductionMode = req.DeductionMode app.Status = req.Status
app.DeductionType = req.DeductionType }
app.DeductionInterval = req.DeductionInterval if req.DeductionMode != "" {
app.DeductionUnit = req.DeductionUnit app.DeductionMode = req.DeductionMode
app.DeductionAmount = req.DeductionAmount }
if req.DeductionType != "" {
app.DeductionType = req.DeductionType
}
if req.DeductionInterval > 0 {
app.DeductionInterval = req.DeductionInterval
}
if req.DeductionUnit != "" {
app.DeductionUnit = req.DeductionUnit
}
if req.DeductionAmount > 0 {
app.DeductionAmount = req.DeductionAmount
}
app.EnablePasswordReset = req.EnablePasswordReset app.EnablePasswordReset = req.EnablePasswordReset
if req.PasswordResetMethod != "" { if req.PasswordResetMethod != "" {
app.PasswordResetMethod = req.PasswordResetMethod app.PasswordResetMethod = req.PasswordResetMethod