// Code generated by sql2gorm. DO NOT EDIT. package repo import ( "context" "time" "fmt" "github.com/samber/do" "gorm.io/gorm" ) func init(){ do.Provide[RoleRepo](nil,NewRoleRepo) } // 表 type Role struct { ID uint `gorm:"column:id;primary_key;AUTO_INCREMENT"` // id Code string `gorm:"column:code;NOT NULL"` // code Name string `gorm:"column:name;NOT NULL"` // 名称 CreatedBy string `gorm:"column:created_by"` // 创建人 CreatedOn time.Time `gorm:"column:created_on;default:CURRENT_TIMESTAMP;NOT NULL"` // 记录创建时间 ModifiedBy string `gorm:"column:modified_by"` // 修改人 ModifiedOn time.Time `gorm:"column:modified_on;default:CURRENT_TIMESTAMP"` // 记录修改时间 } func (m *Role) TableName() string { return "role" } type RoleRepo interface{ ExistCode(ctx context.Context,code string)(exist bool,err error) ExistId(ctx context.Context,id uint)(exist bool,err error) Create(ctx context.Context,role Role)error Save(ctx context.Context,role Role)error Search(ctx context.Context,query Query)([]Role,error) GetById(ctx context.Context,id uint)(Role,error) DelById(ctx context.Context,id uint)error } type roleRepo struct{ db *gorm.DB } func NewRoleRepo(i *do.Injector)(RoleRepo,error){ return &roleRepo{ db :do.MustInvoke[*gorm.DB](i), },nil } func (r *roleRepo)ExistCode(ctx context.Context,code string)(exist bool,err error){ var count int64 = 0 err = r.db.Model(&Role{}).Where("code = ?",code).Count(&count).Error if count > 0{ return true,err } return false,err } func (r *roleRepo)ExistId(ctx context.Context,id uint)(exist bool,err error){ var count int64 = 0 err = r.db.Model(&Role{}).Where("id = ?",id).Count(&count).Error if count > 0{ return true,err } return false,err } func (r *roleRepo)Create(ctx context.Context,role Role)error{ return r.db.Create(&role).Error } func (r *roleRepo)Save(ctx context.Context,role Role)error{ return r.db.Model(&Role{}).Where("id = ?",role.ID).Update("name",role.Name).Error } func (r *roleRepo)Search(ctx context.Context,query Query)([]Role,error){ roles := make([]Role, 0) keyword := fmt.Sprintf("%%%s%%", query.Keyword) db := r.db.Model(&Role{}) if query.Keyword != "" { db = db.Where("code like ? or name like ?", keyword, keyword) } err := db.Order(query.Sort).Limit(query.PageSize).Offset(query.Page * query.PageSize).Find(&roles).Error return roles, err } func (r *roleRepo)GetById(ctx context.Context,id uint)(Role,error){ role := Role{} err := r.db.Where("id = ?",id).Take(&role).Error return role,err } func (r *roleRepo)DelById(ctx context.Context,id uint)error{ return r.db.Where("id = ?",id).Delete(&Role{}).Error }