任务三
This commit is contained in:
@@ -42,6 +42,17 @@ func newSysUser(db *gorm.DB, opts ...gen.DOOption) sysUser {
|
||||
_sysUser.Email = field.NewString(tableName, "email")
|
||||
_sysUser.Enable = field.NewInt64(tableName, "enable")
|
||||
_sysUser.OriginSetting = field.NewString(tableName, "origin_setting")
|
||||
_sysUser.Authority = sysUserHasOneAuthority{
|
||||
db: db.Session(&gorm.Session{}),
|
||||
|
||||
RelationField: field.NewRelation("Authority", "model.SysAuthority"),
|
||||
}
|
||||
|
||||
_sysUser.Authorities = sysUserManyToManyAuthorities{
|
||||
db: db.Session(&gorm.Session{}),
|
||||
|
||||
RelationField: field.NewRelation("Authorities", "model.SysAuthority"),
|
||||
}
|
||||
|
||||
_sysUser.fillFieldMap()
|
||||
|
||||
@@ -66,6 +77,9 @@ type sysUser struct {
|
||||
Email field.String // 用户邮箱
|
||||
Enable field.Int64 // 用户是否被冻结 1正常 2冻结
|
||||
OriginSetting field.String // 配置
|
||||
Authority sysUserHasOneAuthority
|
||||
|
||||
Authorities sysUserManyToManyAuthorities
|
||||
|
||||
fieldMap map[string]field.Expr
|
||||
}
|
||||
@@ -120,7 +134,7 @@ func (s *sysUser) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
|
||||
}
|
||||
|
||||
func (s *sysUser) fillFieldMap() {
|
||||
s.fieldMap = make(map[string]field.Expr, 14)
|
||||
s.fieldMap = make(map[string]field.Expr, 16)
|
||||
s.fieldMap["id"] = s.ID
|
||||
s.fieldMap["created_at"] = s.CreatedAt
|
||||
s.fieldMap["updated_at"] = s.UpdatedAt
|
||||
@@ -135,18 +149,187 @@ func (s *sysUser) fillFieldMap() {
|
||||
s.fieldMap["email"] = s.Email
|
||||
s.fieldMap["enable"] = s.Enable
|
||||
s.fieldMap["origin_setting"] = s.OriginSetting
|
||||
|
||||
}
|
||||
|
||||
func (s sysUser) clone(db *gorm.DB) sysUser {
|
||||
s.sysUserDo.ReplaceConnPool(db.Statement.ConnPool)
|
||||
s.Authority.db = db.Session(&gorm.Session{Initialized: true})
|
||||
s.Authority.db.Statement.ConnPool = db.Statement.ConnPool
|
||||
s.Authorities.db = db.Session(&gorm.Session{Initialized: true})
|
||||
s.Authorities.db.Statement.ConnPool = db.Statement.ConnPool
|
||||
return s
|
||||
}
|
||||
|
||||
func (s sysUser) replaceDB(db *gorm.DB) sysUser {
|
||||
s.sysUserDo.ReplaceDB(db)
|
||||
s.Authority.db = db.Session(&gorm.Session{})
|
||||
s.Authorities.db = db.Session(&gorm.Session{})
|
||||
return s
|
||||
}
|
||||
|
||||
type sysUserHasOneAuthority struct {
|
||||
db *gorm.DB
|
||||
|
||||
field.RelationField
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthority) Where(conds ...field.Expr) *sysUserHasOneAuthority {
|
||||
if len(conds) == 0 {
|
||||
return &a
|
||||
}
|
||||
|
||||
exprs := make([]clause.Expression, 0, len(conds))
|
||||
for _, cond := range conds {
|
||||
exprs = append(exprs, cond.BeCond().(clause.Expression))
|
||||
}
|
||||
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
|
||||
return &a
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthority) WithContext(ctx context.Context) *sysUserHasOneAuthority {
|
||||
a.db = a.db.WithContext(ctx)
|
||||
return &a
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthority) Session(session *gorm.Session) *sysUserHasOneAuthority {
|
||||
a.db = a.db.Session(session)
|
||||
return &a
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthority) Model(m *model.SysUser) *sysUserHasOneAuthorityTx {
|
||||
return &sysUserHasOneAuthorityTx{a.db.Model(m).Association(a.Name())}
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthority) Unscoped() *sysUserHasOneAuthority {
|
||||
a.db = a.db.Unscoped()
|
||||
return &a
|
||||
}
|
||||
|
||||
type sysUserHasOneAuthorityTx struct{ tx *gorm.Association }
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Find() (result *model.SysAuthority, err error) {
|
||||
return result, a.tx.Find(&result)
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Append(values ...*model.SysAuthority) (err error) {
|
||||
targetValues := make([]interface{}, len(values))
|
||||
for i, v := range values {
|
||||
targetValues[i] = v
|
||||
}
|
||||
return a.tx.Append(targetValues...)
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Replace(values ...*model.SysAuthority) (err error) {
|
||||
targetValues := make([]interface{}, len(values))
|
||||
for i, v := range values {
|
||||
targetValues[i] = v
|
||||
}
|
||||
return a.tx.Replace(targetValues...)
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Delete(values ...*model.SysAuthority) (err error) {
|
||||
targetValues := make([]interface{}, len(values))
|
||||
for i, v := range values {
|
||||
targetValues[i] = v
|
||||
}
|
||||
return a.tx.Delete(targetValues...)
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Clear() error {
|
||||
return a.tx.Clear()
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Count() int64 {
|
||||
return a.tx.Count()
|
||||
}
|
||||
|
||||
func (a sysUserHasOneAuthorityTx) Unscoped() *sysUserHasOneAuthorityTx {
|
||||
a.tx = a.tx.Unscoped()
|
||||
return &a
|
||||
}
|
||||
|
||||
type sysUserManyToManyAuthorities struct {
|
||||
db *gorm.DB
|
||||
|
||||
field.RelationField
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthorities) Where(conds ...field.Expr) *sysUserManyToManyAuthorities {
|
||||
if len(conds) == 0 {
|
||||
return &a
|
||||
}
|
||||
|
||||
exprs := make([]clause.Expression, 0, len(conds))
|
||||
for _, cond := range conds {
|
||||
exprs = append(exprs, cond.BeCond().(clause.Expression))
|
||||
}
|
||||
a.db = a.db.Clauses(clause.Where{Exprs: exprs})
|
||||
return &a
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthorities) WithContext(ctx context.Context) *sysUserManyToManyAuthorities {
|
||||
a.db = a.db.WithContext(ctx)
|
||||
return &a
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthorities) Session(session *gorm.Session) *sysUserManyToManyAuthorities {
|
||||
a.db = a.db.Session(session)
|
||||
return &a
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthorities) Model(m *model.SysUser) *sysUserManyToManyAuthoritiesTx {
|
||||
return &sysUserManyToManyAuthoritiesTx{a.db.Model(m).Association(a.Name())}
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthorities) Unscoped() *sysUserManyToManyAuthorities {
|
||||
a.db = a.db.Unscoped()
|
||||
return &a
|
||||
}
|
||||
|
||||
type sysUserManyToManyAuthoritiesTx struct{ tx *gorm.Association }
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Find() (result []*model.SysAuthority, err error) {
|
||||
return result, a.tx.Find(&result)
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Append(values ...*model.SysAuthority) (err error) {
|
||||
targetValues := make([]interface{}, len(values))
|
||||
for i, v := range values {
|
||||
targetValues[i] = v
|
||||
}
|
||||
return a.tx.Append(targetValues...)
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Replace(values ...*model.SysAuthority) (err error) {
|
||||
targetValues := make([]interface{}, len(values))
|
||||
for i, v := range values {
|
||||
targetValues[i] = v
|
||||
}
|
||||
return a.tx.Replace(targetValues...)
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Delete(values ...*model.SysAuthority) (err error) {
|
||||
targetValues := make([]interface{}, len(values))
|
||||
for i, v := range values {
|
||||
targetValues[i] = v
|
||||
}
|
||||
return a.tx.Delete(targetValues...)
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Clear() error {
|
||||
return a.tx.Clear()
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Count() int64 {
|
||||
return a.tx.Count()
|
||||
}
|
||||
|
||||
func (a sysUserManyToManyAuthoritiesTx) Unscoped() *sysUserManyToManyAuthoritiesTx {
|
||||
a.tx = a.tx.Unscoped()
|
||||
return &a
|
||||
}
|
||||
|
||||
type sysUserDo struct{ gen.DO }
|
||||
|
||||
type ISysUserDo interface {
|
||||
|
||||
Reference in New Issue
Block a user