|
@@ -47,7 +47,21 @@ func (mi *Model) Insert() error {
|
|
|
now := common.GetTimestamp()
|
|
now := common.GetTimestamp()
|
|
|
mi.CreatedTime = now
|
|
mi.CreatedTime = now
|
|
|
mi.UpdatedTime = now
|
|
mi.UpdatedTime = now
|
|
|
- return DB.Create(mi).Error
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 保存原始值(因为 Create 后可能被 GORM 的 default 标签覆盖为 1)
|
|
|
|
|
+ originalStatus := mi.Status
|
|
|
|
|
+ originalSyncOfficial := mi.SyncOfficial
|
|
|
|
|
+
|
|
|
|
|
+ // 先创建记录(GORM 会对零值字段应用默认值)
|
|
|
|
|
+ if err := DB.Create(mi).Error; err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 使用保存的原始值进行更新,确保零值能正确保存
|
|
|
|
|
+ return DB.Model(&Model{}).Where("id = ?", mi.Id).Updates(map[string]interface{}{
|
|
|
|
|
+ "status": originalStatus,
|
|
|
|
|
+ "sync_official": originalSyncOfficial,
|
|
|
|
|
+ }).Error
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func IsModelNameDuplicated(id int, name string) (bool, error) {
|
|
func IsModelNameDuplicated(id int, name string) (bool, error) {
|
|
@@ -61,18 +75,10 @@ func IsModelNameDuplicated(id int, name string) (bool, error) {
|
|
|
|
|
|
|
|
func (mi *Model) Update() error {
|
|
func (mi *Model) Update() error {
|
|
|
mi.UpdatedTime = common.GetTimestamp()
|
|
mi.UpdatedTime = common.GetTimestamp()
|
|
|
- return DB.Model(&Model{}).Where("id = ?", mi.Id).Updates(map[string]interface{}{
|
|
|
|
|
- "model_name": mi.ModelName,
|
|
|
|
|
- "description": mi.Description,
|
|
|
|
|
- "icon": mi.Icon,
|
|
|
|
|
- "tags": mi.Tags,
|
|
|
|
|
- "vendor_id": mi.VendorID,
|
|
|
|
|
- "endpoints": mi.Endpoints,
|
|
|
|
|
- "status": mi.Status,
|
|
|
|
|
- "sync_official": mi.SyncOfficial,
|
|
|
|
|
- "name_rule": mi.NameRule,
|
|
|
|
|
- "updated_time": mi.UpdatedTime,
|
|
|
|
|
- }).Error
|
|
|
|
|
|
|
+ // 使用 Select 强制更新所有字段,包括零值
|
|
|
|
|
+ return DB.Model(&Model{}).Where("id = ?", mi.Id).
|
|
|
|
|
+ Select("model_name", "description", "icon", "tags", "vendor_id", "endpoints", "status", "sync_official", "name_rule", "updated_time").
|
|
|
|
|
+ Updates(mi).Error
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (mi *Model) Delete() error {
|
|
func (mi *Model) Delete() error {
|