数据关联手机号查询

This commit is contained in:
2026-03-20 14:37:41 +08:00
parent bb895eccdf
commit 71f1c6f141
10 changed files with 417 additions and 8 deletions

View File

@@ -114,6 +114,11 @@ func newBill(db *gorm.DB, opts ...gen.DOOption) bill {
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("Trade", "models.Trade"),
User: struct {
field.RelationField
}{
RelationField: field.NewRelation("Trade.User", "models.User"),
},
}
_bill.Resource = billBelongsToResource{
@@ -360,6 +365,10 @@ type billBelongsToTrade struct {
db *gorm.DB
field.RelationField
User struct {
field.RelationField
}
}
func (a billBelongsToTrade) Where(conds ...field.Expr) *billBelongsToTrade {

View File

@@ -37,6 +37,76 @@ func newLogsUserUsage(db *gorm.DB, opts ...gen.DOOption) logsUserUsage {
_logsUserUsage.ISP = field.NewString(tableName, "isp")
_logsUserUsage.IP = field.NewField(tableName, "ip")
_logsUserUsage.Time = field.NewTime(tableName, "time")
_logsUserUsage.User = logsUserUsageBelongsToUser{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("User", "models.User"),
Admin: struct {
field.RelationField
Roles struct {
field.RelationField
Permissions struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}
}
}{
RelationField: field.NewRelation("User.Admin", "models.Admin"),
Roles: struct {
field.RelationField
Permissions struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}
}{
RelationField: field.NewRelation("User.Admin.Roles", "models.AdminRole"),
Permissions: struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}{
RelationField: field.NewRelation("User.Admin.Roles.Permissions", "models.Permission"),
Parent: struct {
field.RelationField
}{
RelationField: field.NewRelation("User.Admin.Roles.Permissions.Parent", "models.Permission"),
},
Children: struct {
field.RelationField
}{
RelationField: field.NewRelation("User.Admin.Roles.Permissions.Children", "models.Permission"),
},
},
},
},
Roles: struct {
field.RelationField
Permissions struct {
field.RelationField
}
}{
RelationField: field.NewRelation("User.Roles", "models.UserRole"),
Permissions: struct {
field.RelationField
}{
RelationField: field.NewRelation("User.Roles.Permissions", "models.Permission"),
},
},
}
_logsUserUsage.fillFieldMap()
@@ -57,6 +127,7 @@ type logsUserUsage struct {
ISP field.String
IP field.Field
Time field.Time
User logsUserUsageBelongsToUser
fieldMap map[string]field.Expr
}
@@ -99,7 +170,7 @@ func (l *logsUserUsage) GetFieldByName(fieldName string) (field.OrderExpr, bool)
}
func (l *logsUserUsage) fillFieldMap() {
l.fieldMap = make(map[string]field.Expr, 10)
l.fieldMap = make(map[string]field.Expr, 11)
l.fieldMap["id"] = l.ID
l.fieldMap["user_id"] = l.UserID
l.fieldMap["resource_id"] = l.ResourceID
@@ -110,18 +181,125 @@ func (l *logsUserUsage) fillFieldMap() {
l.fieldMap["isp"] = l.ISP
l.fieldMap["ip"] = l.IP
l.fieldMap["time"] = l.Time
}
func (l logsUserUsage) clone(db *gorm.DB) logsUserUsage {
l.logsUserUsageDo.ReplaceConnPool(db.Statement.ConnPool)
l.User.db = db.Session(&gorm.Session{Initialized: true})
l.User.db.Statement.ConnPool = db.Statement.ConnPool
return l
}
func (l logsUserUsage) replaceDB(db *gorm.DB) logsUserUsage {
l.logsUserUsageDo.ReplaceDB(db)
l.User.db = db.Session(&gorm.Session{})
return l
}
type logsUserUsageBelongsToUser struct {
db *gorm.DB
field.RelationField
Admin struct {
field.RelationField
Roles struct {
field.RelationField
Permissions struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}
}
}
Roles struct {
field.RelationField
Permissions struct {
field.RelationField
}
}
}
func (a logsUserUsageBelongsToUser) Where(conds ...field.Expr) *logsUserUsageBelongsToUser {
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 logsUserUsageBelongsToUser) WithContext(ctx context.Context) *logsUserUsageBelongsToUser {
a.db = a.db.WithContext(ctx)
return &a
}
func (a logsUserUsageBelongsToUser) Session(session *gorm.Session) *logsUserUsageBelongsToUser {
a.db = a.db.Session(session)
return &a
}
func (a logsUserUsageBelongsToUser) Model(m *models.LogsUserUsage) *logsUserUsageBelongsToUserTx {
return &logsUserUsageBelongsToUserTx{a.db.Model(m).Association(a.Name())}
}
func (a logsUserUsageBelongsToUser) Unscoped() *logsUserUsageBelongsToUser {
a.db = a.db.Unscoped()
return &a
}
type logsUserUsageBelongsToUserTx struct{ tx *gorm.Association }
func (a logsUserUsageBelongsToUserTx) Find() (result *models.User, err error) {
return result, a.tx.Find(&result)
}
func (a logsUserUsageBelongsToUserTx) Append(values ...*models.User) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a logsUserUsageBelongsToUserTx) Replace(values ...*models.User) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a logsUserUsageBelongsToUserTx) Delete(values ...*models.User) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a logsUserUsageBelongsToUserTx) Clear() error {
return a.tx.Clear()
}
func (a logsUserUsageBelongsToUserTx) Count() int64 {
return a.tx.Count()
}
func (a logsUserUsageBelongsToUserTx) Unscoped() *logsUserUsageBelongsToUserTx {
a.tx = a.tx.Unscoped()
return &a
}
type logsUserUsageDo struct{ gen.DO }
func (l logsUserUsageDo) Debug() *logsUserUsageDo {

View File

@@ -47,6 +47,76 @@ func newTrade(db *gorm.DB, opts ...gen.DOOption) trade {
_trade.PaymentURL = field.NewString(tableName, "payment_url")
_trade.CompletedAt = field.NewTime(tableName, "completed_at")
_trade.CanceledAt = field.NewTime(tableName, "canceled_at")
_trade.User = tradeBelongsToUser{
db: db.Session(&gorm.Session{}),
RelationField: field.NewRelation("User", "models.User"),
Admin: struct {
field.RelationField
Roles struct {
field.RelationField
Permissions struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}
}
}{
RelationField: field.NewRelation("User.Admin", "models.Admin"),
Roles: struct {
field.RelationField
Permissions struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}
}{
RelationField: field.NewRelation("User.Admin.Roles", "models.AdminRole"),
Permissions: struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}{
RelationField: field.NewRelation("User.Admin.Roles.Permissions", "models.Permission"),
Parent: struct {
field.RelationField
}{
RelationField: field.NewRelation("User.Admin.Roles.Permissions.Parent", "models.Permission"),
},
Children: struct {
field.RelationField
}{
RelationField: field.NewRelation("User.Admin.Roles.Permissions.Children", "models.Permission"),
},
},
},
},
Roles: struct {
field.RelationField
Permissions struct {
field.RelationField
}
}{
RelationField: field.NewRelation("User.Roles", "models.UserRole"),
Permissions: struct {
field.RelationField
}{
RelationField: field.NewRelation("User.Roles.Permissions", "models.Permission"),
},
},
}
_trade.fillFieldMap()
@@ -77,6 +147,7 @@ type trade struct {
PaymentURL field.String
CompletedAt field.Time
CanceledAt field.Time
User tradeBelongsToUser
fieldMap map[string]field.Expr
}
@@ -129,7 +200,7 @@ func (t *trade) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
}
func (t *trade) fillFieldMap() {
t.fieldMap = make(map[string]field.Expr, 20)
t.fieldMap = make(map[string]field.Expr, 21)
t.fieldMap["id"] = t.ID
t.fieldMap["created_at"] = t.CreatedAt
t.fieldMap["updated_at"] = t.UpdatedAt
@@ -150,18 +221,125 @@ func (t *trade) fillFieldMap() {
t.fieldMap["payment_url"] = t.PaymentURL
t.fieldMap["completed_at"] = t.CompletedAt
t.fieldMap["canceled_at"] = t.CanceledAt
}
func (t trade) clone(db *gorm.DB) trade {
t.tradeDo.ReplaceConnPool(db.Statement.ConnPool)
t.User.db = db.Session(&gorm.Session{Initialized: true})
t.User.db.Statement.ConnPool = db.Statement.ConnPool
return t
}
func (t trade) replaceDB(db *gorm.DB) trade {
t.tradeDo.ReplaceDB(db)
t.User.db = db.Session(&gorm.Session{})
return t
}
type tradeBelongsToUser struct {
db *gorm.DB
field.RelationField
Admin struct {
field.RelationField
Roles struct {
field.RelationField
Permissions struct {
field.RelationField
Parent struct {
field.RelationField
}
Children struct {
field.RelationField
}
}
}
}
Roles struct {
field.RelationField
Permissions struct {
field.RelationField
}
}
}
func (a tradeBelongsToUser) Where(conds ...field.Expr) *tradeBelongsToUser {
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 tradeBelongsToUser) WithContext(ctx context.Context) *tradeBelongsToUser {
a.db = a.db.WithContext(ctx)
return &a
}
func (a tradeBelongsToUser) Session(session *gorm.Session) *tradeBelongsToUser {
a.db = a.db.Session(session)
return &a
}
func (a tradeBelongsToUser) Model(m *models.Trade) *tradeBelongsToUserTx {
return &tradeBelongsToUserTx{a.db.Model(m).Association(a.Name())}
}
func (a tradeBelongsToUser) Unscoped() *tradeBelongsToUser {
a.db = a.db.Unscoped()
return &a
}
type tradeBelongsToUserTx struct{ tx *gorm.Association }
func (a tradeBelongsToUserTx) Find() (result *models.User, err error) {
return result, a.tx.Find(&result)
}
func (a tradeBelongsToUserTx) Append(values ...*models.User) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Append(targetValues...)
}
func (a tradeBelongsToUserTx) Replace(values ...*models.User) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Replace(targetValues...)
}
func (a tradeBelongsToUserTx) Delete(values ...*models.User) (err error) {
targetValues := make([]interface{}, len(values))
for i, v := range values {
targetValues[i] = v
}
return a.tx.Delete(targetValues...)
}
func (a tradeBelongsToUserTx) Clear() error {
return a.tx.Clear()
}
func (a tradeBelongsToUserTx) Count() int64 {
return a.tx.Count()
}
func (a tradeBelongsToUserTx) Unscoped() *tradeBelongsToUserTx {
a.tx = a.tx.Unscoped()
return &a
}
type tradeDo struct{ gen.DO }
func (t tradeDo) Debug() *tradeDo {