| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package service
- import (
- "dashoo.cn/micro_libary/request"
- "errors"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/os/gtime"
- "github.com/gogf/gf/util/gconv"
- "strconv"
- )
- /*
- 表基础模型
- */
- const (
- DefaultSortField = "Sort"
- DefaultSortType = "DESC"
- )
- // BaseModel 基础字段
- type BaseModel struct {
- CreatedBy string `orm:"CreatedBy" json:"created_by"` // 创建人姓名
- CreatedAt *gtime.Time `orm:"CreatedAt" json:"created_at"` // 创建时间
- UpdatedAt *gtime.Time `orm:"UpdatedAt" json:"updated_at"` // 更新时间
- UpdatedBy string `orm:"UpdatedBy" json:"updated_by"` // 更新人姓名
- DeletedAt *gtime.Time `orm:"DeletedAt" json:"deleted_at"` // 删除时间
- UpdatedById int `orm:"UpdatedById" json:"updated_by_id"` // 更新人ID
- CreatedById int `orm:"CreatedById" json:"created_by_id"` // 创建人ID
- CreateOn *gtime.Time `orm:"CreateOn" json:"create_on"` //
- CreateUserId string `orm:"CreateUserId" json:"create_user_id"` //
- CreateBy string `orm:"CreateBy" json:"create_by"` //
- ModifiedOn *gtime.Time `orm:"ModifiedOn" json:"modified_on"` //
- ModifiedUserId string `orm:"ModifiedUserId" json:"modified_user_id"` //
- ModifiedBy string `orm:"ModifiedBy" json:"modified_by"` //
- CreatedTime int64 `json:"created_time,omitempty"`
- UpdatedTime int64 `json:"updated_time,omitempty"`
- Version int `orm:"Version" json:"version"` // 版本号(乐观锁)
- }
- var (
- BaseColumns = []string{"Id", "CreatedBy", "CreatedAt", "UpdatedAt", "UpdatedBy", "DeletedAt",
- "UpdatedById", "CreatedById"}
- // UpdateFieldEx 更新过滤字段
- UpdateFieldEx = []string{
- "CreatedBy", "CreatedById", "CreateOn",
- "CreateUserId", "CreateBy", "CreatedTime",
- "CreatedUserId", "Id"}
- UpdateBaseField = []string{"UpdatedBy", "UpdatedById"}
- )
- var (
- NameExistsErr = errors.New("名称不能重复,请重新输入")
- CodeExistsErr = errors.New("编码不能重复,请重新输入")
- )
- // SetCreatedInfo 设置默认创建信息,仅创建时使用
- func (b *BaseModel) SetCreatedInfo(user *request.UserInfo) *BaseModel {
- b.CreatedBy = user.UserName
- b.CreatedById = int(user.Id)
- b.CreateOn = gtime.Now()
- b.CreateUserId = strconv.Itoa(int(user.Id))
- b.CreateBy = user.UserName
- b.CreatedTime = gtime.Timestamp()
- return b.SetUpdateInfo(user)
- }
- // SetUpdateInfo 设置默认更新信息,仅用于更新
- func (b *BaseModel) SetUpdateInfo(user *request.UserInfo) *BaseModel {
- b.UpdatedBy = user.UserName
- b.UpdatedById = int(user.Id)
- b.ModifiedOn = gtime.Now()
- b.ModifiedUserId = strconv.Itoa(int(user.Id))
- b.ModifiedBy = user.UserName
- b.UpdatedTime = gtime.Timestamp()
- return b
- }
- // SetUpdate 更新实体基础信息处理
- func SetUpdate(user *request.UserInfo, data interface{}) {
- base := new(BaseModel).SetUpdateInfo(user)
- _ = gconv.Struct(base, data)
- }
- // SetCreate 创建实体基础信息处理
- func SetCreate(user *request.UserInfo, data interface{}) {
- base := new(BaseModel).SetCreatedInfo(user)
- _ = gconv.Struct(base, data)
- }
- // SetUpdatedMap 生成用户信息
- func SetUpdatedMap(user *request.UserInfo) g.Map {
- return g.Map{
- "UpdatedBy": gtime.Now(),
- "UpdatedById": user.Id,
- }
- }
- // SetModifiedMap 生成用户信息
- func SetModifiedMap(user *request.UserInfo) g.Map {
- return g.Map{
- "ModifiedOn": gtime.Now(),
- "ModifiedUserId": user.Id,
- "ModifiedBy": user.UserName,
- }
- }
|