2021-01-08 15:37:32 +08:00
|
|
|
package model
|
2020-09-01 10:34:11 +08:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
2023-07-20 22:41:13 +08:00
|
|
|
const (
|
|
|
|
|
IdColumn = "id"
|
|
|
|
|
DeletedColumn = "is_deleted" // 删除字段
|
|
|
|
|
DeleteTimeColumn = "delete_time"
|
|
|
|
|
ModelDeleted int8 = 1
|
|
|
|
|
ModelUndeleted int8 = 0
|
|
|
|
|
)
|
|
|
|
|
|
2023-11-07 21:05:21 +08:00
|
|
|
// 实体接口
|
|
|
|
|
type ModelI interface {
|
|
|
|
|
|
|
|
|
|
// 使用当前登录账号信息设置实体结构体的基础信息
|
|
|
|
|
//
|
|
|
|
|
// 如创建时间,修改时间,创建者,修改者信息
|
|
|
|
|
SetBaseInfo(account *LoginAccount)
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-20 22:41:13 +08:00
|
|
|
// 含有删除字段模型
|
|
|
|
|
type DeletedModel struct {
|
2021-04-16 15:10:07 +08:00
|
|
|
Id uint64 `json:"id"`
|
2023-07-22 00:48:41 +08:00
|
|
|
IsDeleted int8 `json:"-" gorm:"column:is_deleted;default:0"`
|
2023-07-20 22:41:13 +08:00
|
|
|
DeleteTime *time.Time `json:"-"`
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-07 21:05:21 +08:00
|
|
|
func (m *DeletedModel) SetBaseInfo(account *LoginAccount) {
|
|
|
|
|
isCreate := m.Id == 0
|
|
|
|
|
if isCreate {
|
|
|
|
|
m.IsDeleted = ModelUndeleted
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-20 22:41:13 +08:00
|
|
|
// 基础实体模型,数据表最基础字段,每张表必备字段
|
|
|
|
|
type Model struct {
|
|
|
|
|
DeletedModel
|
|
|
|
|
|
2021-04-16 15:10:07 +08:00
|
|
|
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"`
|
2021-01-08 15:37:32 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 设置基础信息. 如创建时间,修改时间,创建者,修改者信息
|
2021-04-16 15:10:07 +08:00
|
|
|
func (m *Model) SetBaseInfo(account *LoginAccount) {
|
2021-01-08 15:37:32 +08:00
|
|
|
nowTime := time.Now()
|
|
|
|
|
isCreate := m.Id == 0
|
|
|
|
|
if isCreate {
|
2023-07-20 22:41:13 +08:00
|
|
|
m.IsDeleted = ModelUndeleted
|
2021-01-08 15:37:32 +08:00
|
|
|
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
|
2020-09-01 10:34:11 +08:00
|
|
|
}
|