数据关联手机号查询
This commit is contained in:
@@ -68,7 +68,14 @@ func PageBatchByAdmin(c *fiber.Ctx) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
list, total, err := q.LogsUserUsage.FindByPage(req.GetOffset(), req.GetLimit())
|
list, total, err := q.LogsUserUsage.
|
||||||
|
Joins(q.LogsUserUsage.User).
|
||||||
|
Select(
|
||||||
|
q.LogsUserUsage.ALL,
|
||||||
|
q.User.As("User").Phone.As("User__phone"),
|
||||||
|
q.User.As("User").Name.As("User__name"),
|
||||||
|
).
|
||||||
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||||||
|
|
||||||
return c.JSON(core.PageResp{
|
return c.JSON(core.PageResp{
|
||||||
List: list,
|
List: list,
|
||||||
|
|||||||
@@ -25,7 +25,14 @@ func PageBillByAdmin(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询用户列表
|
// 查询用户列表
|
||||||
list, total, err := q.Bill.FindByPage(req.GetOffset(), req.GetLimit())
|
list, total, err := q.Bill.
|
||||||
|
Joins(q.Bill.User).
|
||||||
|
Select(
|
||||||
|
q.Bill.ALL,
|
||||||
|
q.User.As("User").Phone.As("User__phone"),
|
||||||
|
q.User.As("User").Name.As("User__name"),
|
||||||
|
).
|
||||||
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,14 @@ func PageChannelsByAdmin(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询通道列表
|
// 查询通道列表
|
||||||
list, total, err := q.Channel.FindByPage(req.GetOffset(), req.GetLimit())
|
list, total, err := q.Channel.
|
||||||
|
Joins(q.Channel.User).
|
||||||
|
Select(
|
||||||
|
q.Channel.ALL,
|
||||||
|
q.User.As("User").Phone.As("User__phone"),
|
||||||
|
q.User.As("User").Name.As("User__name"),
|
||||||
|
).
|
||||||
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -220,7 +220,13 @@ func PageResourceShortByAdmin(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
list, total, err := q.Resource.
|
list, total, err := q.Resource.
|
||||||
LeftJoin(q.ResourceShort, q.ResourceShort.ResourceID.EqCol(q.Resource.ID)).
|
Joins(q.Resource.User, q.Resource.Short).
|
||||||
|
Select(
|
||||||
|
q.Resource.ALL,
|
||||||
|
q.ResourceShort.As("Short").ALL,
|
||||||
|
q.User.As("User").Phone.As("User__phone"),
|
||||||
|
q.User.As("User").Name.As("User__name"),
|
||||||
|
).
|
||||||
Where(q.Resource.Type.Eq(int(m.ResourceTypeShort))).
|
Where(q.Resource.Type.Eq(int(m.ResourceTypeShort))).
|
||||||
FindByPage(req.GetOffset(), req.GetLimit())
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||||||
|
|
||||||
@@ -245,7 +251,13 @@ func PageResourceLongByAdmin(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
list, total, err := q.Resource.
|
list, total, err := q.Resource.
|
||||||
LeftJoin(q.ResourceLong, q.ResourceLong.ResourceID.EqCol(q.Resource.ID)).
|
Joins(q.Resource.User, q.Resource.Long).
|
||||||
|
Select(
|
||||||
|
q.Resource.ALL,
|
||||||
|
q.ResourceLong.As("Long").ALL,
|
||||||
|
q.User.As("User").Phone.As("User__phone"),
|
||||||
|
q.User.As("User").Name.As("User__name"),
|
||||||
|
).
|
||||||
Where(q.Resource.Type.Eq(int(m.ResourceTypeLong))).
|
Where(q.Resource.Type.Eq(int(m.ResourceTypeLong))).
|
||||||
FindByPage(req.GetOffset(), req.GetLimit())
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,14 @@ func PageTradeByAdmin(c *fiber.Ctx) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 查询用户列表
|
// 查询用户列表
|
||||||
list, total, err := q.Trade.FindByPage(req.GetOffset(), req.GetLimit())
|
list, total, err := q.Trade.
|
||||||
|
Joins(q.Trade.User).
|
||||||
|
Select(
|
||||||
|
q.Trade.ALL,
|
||||||
|
q.User.As("User").Phone.As("User__phone"),
|
||||||
|
q.User.As("User").Name.As("User__name"),
|
||||||
|
).
|
||||||
|
FindByPage(req.GetOffset(), req.GetLimit())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,4 +17,6 @@ type LogsUserUsage struct {
|
|||||||
ISP *string `json:"isp,omitempty" gorm:"column:isp"` // 运营商
|
ISP *string `json:"isp,omitempty" gorm:"column:isp"` // 运营商
|
||||||
IP orm.Inet `json:"ip" gorm:"column:ip"` // IP地址
|
IP orm.Inet `json:"ip" gorm:"column:ip"` // IP地址
|
||||||
Time time.Time `json:"time" gorm:"column:time"` // 提取时间
|
Time time.Time `json:"time" gorm:"column:time"` // 提取时间
|
||||||
|
|
||||||
|
User *User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@ type Trade struct {
|
|||||||
PaymentURL *string `json:"payment_url,omitempty" gorm:"column:payment_url"` // 支付链接
|
PaymentURL *string `json:"payment_url,omitempty" gorm:"column:payment_url"` // 支付链接
|
||||||
CompletedAt *time.Time `json:"completed_at,omitempty" gorm:"column:completed_at"` // 支付时间
|
CompletedAt *time.Time `json:"completed_at,omitempty" gorm:"column:completed_at"` // 支付时间
|
||||||
CanceledAt *time.Time `json:"canceled_at,omitempty" gorm:"column:canceled_at"` // 取消时间
|
CanceledAt *time.Time `json:"canceled_at,omitempty" gorm:"column:canceled_at"` // 取消时间
|
||||||
|
|
||||||
|
User *User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// TradeType 订单类型枚举
|
// TradeType 订单类型枚举
|
||||||
|
|||||||
@@ -114,6 +114,11 @@ func newBill(db *gorm.DB, opts ...gen.DOOption) bill {
|
|||||||
db: db.Session(&gorm.Session{}),
|
db: db.Session(&gorm.Session{}),
|
||||||
|
|
||||||
RelationField: field.NewRelation("Trade", "models.Trade"),
|
RelationField: field.NewRelation("Trade", "models.Trade"),
|
||||||
|
User: struct {
|
||||||
|
field.RelationField
|
||||||
|
}{
|
||||||
|
RelationField: field.NewRelation("Trade.User", "models.User"),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
_bill.Resource = billBelongsToResource{
|
_bill.Resource = billBelongsToResource{
|
||||||
@@ -360,6 +365,10 @@ type billBelongsToTrade struct {
|
|||||||
db *gorm.DB
|
db *gorm.DB
|
||||||
|
|
||||||
field.RelationField
|
field.RelationField
|
||||||
|
|
||||||
|
User struct {
|
||||||
|
field.RelationField
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a billBelongsToTrade) Where(conds ...field.Expr) *billBelongsToTrade {
|
func (a billBelongsToTrade) Where(conds ...field.Expr) *billBelongsToTrade {
|
||||||
|
|||||||
@@ -37,6 +37,76 @@ func newLogsUserUsage(db *gorm.DB, opts ...gen.DOOption) logsUserUsage {
|
|||||||
_logsUserUsage.ISP = field.NewString(tableName, "isp")
|
_logsUserUsage.ISP = field.NewString(tableName, "isp")
|
||||||
_logsUserUsage.IP = field.NewField(tableName, "ip")
|
_logsUserUsage.IP = field.NewField(tableName, "ip")
|
||||||
_logsUserUsage.Time = field.NewTime(tableName, "time")
|
_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()
|
_logsUserUsage.fillFieldMap()
|
||||||
|
|
||||||
@@ -57,6 +127,7 @@ type logsUserUsage struct {
|
|||||||
ISP field.String
|
ISP field.String
|
||||||
IP field.Field
|
IP field.Field
|
||||||
Time field.Time
|
Time field.Time
|
||||||
|
User logsUserUsageBelongsToUser
|
||||||
|
|
||||||
fieldMap map[string]field.Expr
|
fieldMap map[string]field.Expr
|
||||||
}
|
}
|
||||||
@@ -99,7 +170,7 @@ func (l *logsUserUsage) GetFieldByName(fieldName string) (field.OrderExpr, bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (l *logsUserUsage) fillFieldMap() {
|
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["id"] = l.ID
|
||||||
l.fieldMap["user_id"] = l.UserID
|
l.fieldMap["user_id"] = l.UserID
|
||||||
l.fieldMap["resource_id"] = l.ResourceID
|
l.fieldMap["resource_id"] = l.ResourceID
|
||||||
@@ -110,18 +181,125 @@ func (l *logsUserUsage) fillFieldMap() {
|
|||||||
l.fieldMap["isp"] = l.ISP
|
l.fieldMap["isp"] = l.ISP
|
||||||
l.fieldMap["ip"] = l.IP
|
l.fieldMap["ip"] = l.IP
|
||||||
l.fieldMap["time"] = l.Time
|
l.fieldMap["time"] = l.Time
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logsUserUsage) clone(db *gorm.DB) logsUserUsage {
|
func (l logsUserUsage) clone(db *gorm.DB) logsUserUsage {
|
||||||
l.logsUserUsageDo.ReplaceConnPool(db.Statement.ConnPool)
|
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
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l logsUserUsage) replaceDB(db *gorm.DB) logsUserUsage {
|
func (l logsUserUsage) replaceDB(db *gorm.DB) logsUserUsage {
|
||||||
l.logsUserUsageDo.ReplaceDB(db)
|
l.logsUserUsageDo.ReplaceDB(db)
|
||||||
|
l.User.db = db.Session(&gorm.Session{})
|
||||||
return l
|
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 }
|
type logsUserUsageDo struct{ gen.DO }
|
||||||
|
|
||||||
func (l logsUserUsageDo) Debug() *logsUserUsageDo {
|
func (l logsUserUsageDo) Debug() *logsUserUsageDo {
|
||||||
|
|||||||
@@ -47,6 +47,76 @@ func newTrade(db *gorm.DB, opts ...gen.DOOption) trade {
|
|||||||
_trade.PaymentURL = field.NewString(tableName, "payment_url")
|
_trade.PaymentURL = field.NewString(tableName, "payment_url")
|
||||||
_trade.CompletedAt = field.NewTime(tableName, "completed_at")
|
_trade.CompletedAt = field.NewTime(tableName, "completed_at")
|
||||||
_trade.CanceledAt = field.NewTime(tableName, "canceled_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()
|
_trade.fillFieldMap()
|
||||||
|
|
||||||
@@ -77,6 +147,7 @@ type trade struct {
|
|||||||
PaymentURL field.String
|
PaymentURL field.String
|
||||||
CompletedAt field.Time
|
CompletedAt field.Time
|
||||||
CanceledAt field.Time
|
CanceledAt field.Time
|
||||||
|
User tradeBelongsToUser
|
||||||
|
|
||||||
fieldMap map[string]field.Expr
|
fieldMap map[string]field.Expr
|
||||||
}
|
}
|
||||||
@@ -129,7 +200,7 @@ func (t *trade) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *trade) fillFieldMap() {
|
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["id"] = t.ID
|
||||||
t.fieldMap["created_at"] = t.CreatedAt
|
t.fieldMap["created_at"] = t.CreatedAt
|
||||||
t.fieldMap["updated_at"] = t.UpdatedAt
|
t.fieldMap["updated_at"] = t.UpdatedAt
|
||||||
@@ -150,18 +221,125 @@ func (t *trade) fillFieldMap() {
|
|||||||
t.fieldMap["payment_url"] = t.PaymentURL
|
t.fieldMap["payment_url"] = t.PaymentURL
|
||||||
t.fieldMap["completed_at"] = t.CompletedAt
|
t.fieldMap["completed_at"] = t.CompletedAt
|
||||||
t.fieldMap["canceled_at"] = t.CanceledAt
|
t.fieldMap["canceled_at"] = t.CanceledAt
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t trade) clone(db *gorm.DB) trade {
|
func (t trade) clone(db *gorm.DB) trade {
|
||||||
t.tradeDo.ReplaceConnPool(db.Statement.ConnPool)
|
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
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t trade) replaceDB(db *gorm.DB) trade {
|
func (t trade) replaceDB(db *gorm.DB) trade {
|
||||||
t.tradeDo.ReplaceDB(db)
|
t.tradeDo.ReplaceDB(db)
|
||||||
|
t.User.db = db.Session(&gorm.Session{})
|
||||||
return t
|
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 }
|
type tradeDo struct{ gen.DO }
|
||||||
|
|
||||||
func (t tradeDo) Debug() *tradeDo {
|
func (t tradeDo) Debug() *tradeDo {
|
||||||
|
|||||||
Reference in New Issue
Block a user