mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package model
 | 
						|
 | 
						|
import (
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	IdColumn              = "id"
 | 
						|
	DeletedColumn         = "is_deleted" // 删除字段
 | 
						|
	DeleteTimeColumn      = "delete_time"
 | 
						|
	ModelDeleted     int8 = 1
 | 
						|
	ModelUndeleted   int8 = 0
 | 
						|
)
 | 
						|
 | 
						|
// 实体接口
 | 
						|
type ModelI interface {
 | 
						|
 | 
						|
	// 使用当前登录账号信息设置实体结构体的基础信息
 | 
						|
	//
 | 
						|
	// 如创建时间,修改时间,创建者,修改者信息
 | 
						|
	SetBaseInfo(account *LoginAccount)
 | 
						|
}
 | 
						|
 | 
						|
// 含有删除字段模型
 | 
						|
type DeletedModel struct {
 | 
						|
	Id         uint64     `json:"id"`
 | 
						|
	IsDeleted  int8       `json:"-" gorm:"column:is_deleted;default:0"`
 | 
						|
	DeleteTime *time.Time `json:"-"`
 | 
						|
}
 | 
						|
 | 
						|
func (m *DeletedModel) SetBaseInfo(account *LoginAccount) {
 | 
						|
	isCreate := m.Id == 0
 | 
						|
	if isCreate {
 | 
						|
		m.IsDeleted = ModelUndeleted
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// 基础实体模型,数据表最基础字段,每张表必备字段
 | 
						|
type Model struct {
 | 
						|
	DeletedModel
 | 
						|
 | 
						|
	CreateTime *time.Time `json:"createTime"`
 | 
						|
	CreatorId  uint64     `json:"creatorId"`
 | 
						|
	Creator    string     `json:"creator"`
 | 
						|
	UpdateTime *time.Time `json:"updateTime"`
 | 
						|
	ModifierId uint64     `json:"modifierId"`
 | 
						|
	Modifier   string     `json:"modifier"`
 | 
						|
}
 | 
						|
 | 
						|
// 设置基础信息. 如创建时间,修改时间,创建者,修改者信息
 | 
						|
func (m *Model) SetBaseInfo(account *LoginAccount) {
 | 
						|
	nowTime := time.Now()
 | 
						|
	isCreate := m.Id == 0
 | 
						|
	if isCreate {
 | 
						|
		m.IsDeleted = ModelUndeleted
 | 
						|
		m.CreateTime = &nowTime
 | 
						|
	}
 | 
						|
	m.UpdateTime = &nowTime
 | 
						|
 | 
						|
	if account == nil {
 | 
						|
		return
 | 
						|
	}
 | 
						|
	id := account.Id
 | 
						|
	name := account.Username
 | 
						|
	if isCreate {
 | 
						|
		m.CreatorId = id
 | 
						|
		m.Creator = name
 | 
						|
	}
 | 
						|
	m.Modifier = name
 | 
						|
	m.ModifierId = id
 | 
						|
}
 |