|  | @@ -86,21 +86,25 @@ func (c *ItemInfo) initEnums() error {
 | 
	
		
			
				|  |  |  // initValue 初始化默认值类型
 | 
	
		
			
				|  |  |  func (c *ItemInfo) initValue() error {
 | 
	
		
			
				|  |  |  	for i, field := range c.Fields {
 | 
	
		
			
				|  |  | +		c.Fields[i].defaultValue = field.Type.Default() // 先使用默认类型初始化
 | 
	
		
			
				|  |  | +		if field.Default == "" {
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  		switch field.Type {
 | 
	
		
			
				|  |  | -		case mo.TypeObject, mo.TypeArray:
 | 
	
		
			
				|  |  | -			c.Fields[i].defaultValue = field.Type.Default() // array 和 object 无需解析默认值
 | 
	
		
			
				|  |  | -		case mo.TypeObjectID, mo.TypeDateTime:
 | 
	
		
			
				|  |  | -			c.Fields[i].defaultValue = field.Type.Default() // ObjectID 和 DateTime 不进行初始化, 在调用 DefaultValue 时动态生成
 | 
	
		
			
				|  |  | +		case mo.TypeObjectID:
 | 
	
		
			
				|  |  | +			if field.Default == "new" {
 | 
	
		
			
				|  |  | +				c.Fields[i].defaultValue = field.Default // 特殊处理
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		case mo.TypeDateTime:
 | 
	
		
			
				|  |  | +			if field.Default == "now" {
 | 
	
		
			
				|  |  | +				c.Fields[i].defaultValue = field.Default // 特殊处理
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		default:
 | 
	
		
			
				|  |  | -			if field.Default != "" {
 | 
	
		
			
				|  |  | -				val, err := field.Convert(field.Default)
 | 
	
		
			
				|  |  | -				if err != nil {
 | 
	
		
			
				|  |  | -					return fmt.Errorf("%s.%s: initValue: %s", c.Name, field.Name, err)
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -				c.Fields[i].defaultValue = val
 | 
	
		
			
				|  |  | -			} else {
 | 
	
		
			
				|  |  | -				c.Fields[i].defaultValue = field.Type.Default()
 | 
	
		
			
				|  |  | +			val, err := field.Convert(field.Default)
 | 
	
		
			
				|  |  | +			if err != nil {
 | 
	
		
			
				|  |  | +				return fmt.Errorf("%s.%s: initValue: %s", c.Name, field.Name, err)
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  | +			c.Fields[i].defaultValue = val
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	return nil
 |