Documentation
¶
Index ¶
- Variables
- func InsertIfAbsent(db *gorm.DB, value interface{}, conflictColumns ...string) (bool, error)
- func SetDefault(db *gorm.DB, opts ...gen.DOOption)
- type IAlarmDo
- type IHistoryDo
- type IKeywordDo
- type Query
- func (q *Query) Available() bool
- func (q *Query) Begin(opts ...*sql.TxOptions) *QueryTx
- func (q *Query) ReadDB() *Query
- func (q *Query) ReplaceDB(db *gorm.DB) *Query
- func (q *Query) Transaction(fc func(tx *Query) error, opts ...*sql.TxOptions) error
- func (q *Query) WithContext(ctx context.Context) *queryCtx
- func (q *Query) WriteDB() *Query
- type QueryTx
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Q = new(Query) Alarm *alarm History *history Keyword *keyword )
Functions ¶
func InsertIfAbsent ¶ added in v1.4.9
InsertIfAbsent inserts value only when no row conflicting on the given unique columns exists, reporting whether the row was actually created.
The table's unique constraint therefore acts as a distributed lock: concurrent callers — even across bot processes sharing the same DB — can never both claim the same row. The caller that gets a true return is the only one allowed to proceed (e.g. send a message); everyone else must skip.
conflictColumns must form (a subset of) a unique index on the table, e.g. "user_id", "credit_code" for alarms or "user_id", "url" for histories.
Types ¶
type IAlarmDo ¶
type IAlarmDo interface {
gen.SubQuery
Debug() IAlarmDo
WithContext(ctx context.Context) IAlarmDo
WithResult(fc func(tx gen.Dao)) gen.ResultInfo
ReplaceDB(db *gorm.DB)
ReadDB() IAlarmDo
WriteDB() IAlarmDo
As(alias string) gen.Dao
Session(config *gorm.Session) IAlarmDo
Columns(cols ...field.Expr) gen.Columns
Clauses(conds ...clause.Expression) IAlarmDo
Not(conds ...gen.Condition) IAlarmDo
Or(conds ...gen.Condition) IAlarmDo
Select(conds ...field.Expr) IAlarmDo
Where(conds ...gen.Condition) IAlarmDo
Order(conds ...field.Expr) IAlarmDo
Distinct(cols ...field.Expr) IAlarmDo
Omit(cols ...field.Expr) IAlarmDo
Join(table schema.Tabler, on ...field.Expr) IAlarmDo
LeftJoin(table schema.Tabler, on ...field.Expr) IAlarmDo
RightJoin(table schema.Tabler, on ...field.Expr) IAlarmDo
Group(cols ...field.Expr) IAlarmDo
Having(conds ...gen.Condition) IAlarmDo
Limit(limit int) IAlarmDo
Offset(offset int) IAlarmDo
Count() (count int64, err error)
Scopes(funcs ...func(gen.Dao) gen.Dao) IAlarmDo
Unscoped() IAlarmDo
Create(values ...*model.Alarm) error
CreateInBatches(values []*model.Alarm, batchSize int) error
Save(values ...*model.Alarm) error
First() (*model.Alarm, error)
Take() (*model.Alarm, error)
Last() (*model.Alarm, error)
Find() ([]*model.Alarm, error)
FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.Alarm, err error)
FindInBatches(result *[]*model.Alarm, batchSize int, fc func(tx gen.Dao, batch int) error) error
Pluck(column field.Expr, dest interface{}) error
Delete(...*model.Alarm) (info gen.ResultInfo, err error)
Update(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
Updates(value interface{}) (info gen.ResultInfo, err error)
UpdateColumn(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateColumnSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
UpdateColumns(value interface{}) (info gen.ResultInfo, err error)
UpdateFrom(q gen.SubQuery) gen.Dao
Attrs(attrs ...field.AssignExpr) IAlarmDo
Assign(attrs ...field.AssignExpr) IAlarmDo
Joins(fields ...field.RelationField) IAlarmDo
Preload(fields ...field.RelationField) IAlarmDo
FirstOrInit() (*model.Alarm, error)
FirstOrCreate() (*model.Alarm, error)
FindByPage(offset int, limit int) (result []*model.Alarm, count int64, err error)
ScanByPage(result interface{}, offset int, limit int) (count int64, err error)
Rows() (*sql.Rows, error)
Row() *sql.Row
Scan(result interface{}) (err error)
Returning(value interface{}, columns ...string) IAlarmDo
UnderlyingDB() *gorm.DB
schema.Tabler
}
type IHistoryDo ¶
type IHistoryDo interface {
gen.SubQuery
Debug() IHistoryDo
WithContext(ctx context.Context) IHistoryDo
WithResult(fc func(tx gen.Dao)) gen.ResultInfo
ReplaceDB(db *gorm.DB)
ReadDB() IHistoryDo
WriteDB() IHistoryDo
As(alias string) gen.Dao
Session(config *gorm.Session) IHistoryDo
Columns(cols ...field.Expr) gen.Columns
Clauses(conds ...clause.Expression) IHistoryDo
Not(conds ...gen.Condition) IHistoryDo
Or(conds ...gen.Condition) IHistoryDo
Select(conds ...field.Expr) IHistoryDo
Where(conds ...gen.Condition) IHistoryDo
Order(conds ...field.Expr) IHistoryDo
Distinct(cols ...field.Expr) IHistoryDo
Omit(cols ...field.Expr) IHistoryDo
Join(table schema.Tabler, on ...field.Expr) IHistoryDo
LeftJoin(table schema.Tabler, on ...field.Expr) IHistoryDo
RightJoin(table schema.Tabler, on ...field.Expr) IHistoryDo
Group(cols ...field.Expr) IHistoryDo
Having(conds ...gen.Condition) IHistoryDo
Limit(limit int) IHistoryDo
Offset(offset int) IHistoryDo
Count() (count int64, err error)
Scopes(funcs ...func(gen.Dao) gen.Dao) IHistoryDo
Unscoped() IHistoryDo
Create(values ...*model.History) error
CreateInBatches(values []*model.History, batchSize int) error
Save(values ...*model.History) error
First() (*model.History, error)
Take() (*model.History, error)
Last() (*model.History, error)
Find() ([]*model.History, error)
FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.History, err error)
FindInBatches(result *[]*model.History, batchSize int, fc func(tx gen.Dao, batch int) error) error
Pluck(column field.Expr, dest interface{}) error
Delete(...*model.History) (info gen.ResultInfo, err error)
Update(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
Updates(value interface{}) (info gen.ResultInfo, err error)
UpdateColumn(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateColumnSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
UpdateColumns(value interface{}) (info gen.ResultInfo, err error)
UpdateFrom(q gen.SubQuery) gen.Dao
Attrs(attrs ...field.AssignExpr) IHistoryDo
Assign(attrs ...field.AssignExpr) IHistoryDo
Joins(fields ...field.RelationField) IHistoryDo
Preload(fields ...field.RelationField) IHistoryDo
FirstOrInit() (*model.History, error)
FirstOrCreate() (*model.History, error)
FindByPage(offset int, limit int) (result []*model.History, count int64, err error)
ScanByPage(result interface{}, offset int, limit int) (count int64, err error)
Rows() (*sql.Rows, error)
Row() *sql.Row
Scan(result interface{}) (err error)
Returning(value interface{}, columns ...string) IHistoryDo
UnderlyingDB() *gorm.DB
schema.Tabler
}
type IKeywordDo ¶
type IKeywordDo interface {
gen.SubQuery
Debug() IKeywordDo
WithContext(ctx context.Context) IKeywordDo
WithResult(fc func(tx gen.Dao)) gen.ResultInfo
ReplaceDB(db *gorm.DB)
ReadDB() IKeywordDo
WriteDB() IKeywordDo
As(alias string) gen.Dao
Session(config *gorm.Session) IKeywordDo
Columns(cols ...field.Expr) gen.Columns
Clauses(conds ...clause.Expression) IKeywordDo
Not(conds ...gen.Condition) IKeywordDo
Or(conds ...gen.Condition) IKeywordDo
Select(conds ...field.Expr) IKeywordDo
Where(conds ...gen.Condition) IKeywordDo
Order(conds ...field.Expr) IKeywordDo
Distinct(cols ...field.Expr) IKeywordDo
Omit(cols ...field.Expr) IKeywordDo
Join(table schema.Tabler, on ...field.Expr) IKeywordDo
LeftJoin(table schema.Tabler, on ...field.Expr) IKeywordDo
RightJoin(table schema.Tabler, on ...field.Expr) IKeywordDo
Group(cols ...field.Expr) IKeywordDo
Having(conds ...gen.Condition) IKeywordDo
Limit(limit int) IKeywordDo
Offset(offset int) IKeywordDo
Count() (count int64, err error)
Scopes(funcs ...func(gen.Dao) gen.Dao) IKeywordDo
Unscoped() IKeywordDo
Create(values ...*model.Keyword) error
CreateInBatches(values []*model.Keyword, batchSize int) error
Save(values ...*model.Keyword) error
First() (*model.Keyword, error)
Take() (*model.Keyword, error)
Last() (*model.Keyword, error)
Find() ([]*model.Keyword, error)
FindInBatch(batchSize int, fc func(tx gen.Dao, batch int) error) (results []*model.Keyword, err error)
FindInBatches(result *[]*model.Keyword, batchSize int, fc func(tx gen.Dao, batch int) error) error
Pluck(column field.Expr, dest interface{}) error
Delete(...*model.Keyword) (info gen.ResultInfo, err error)
Update(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
Updates(value interface{}) (info gen.ResultInfo, err error)
UpdateColumn(column field.Expr, value interface{}) (info gen.ResultInfo, err error)
UpdateColumnSimple(columns ...field.AssignExpr) (info gen.ResultInfo, err error)
UpdateColumns(value interface{}) (info gen.ResultInfo, err error)
UpdateFrom(q gen.SubQuery) gen.Dao
Attrs(attrs ...field.AssignExpr) IKeywordDo
Assign(attrs ...field.AssignExpr) IKeywordDo
Joins(fields ...field.RelationField) IKeywordDo
Preload(fields ...field.RelationField) IKeywordDo
FirstOrInit() (*model.Keyword, error)
FirstOrCreate() (*model.Keyword, error)
FindByPage(offset int, limit int) (result []*model.Keyword, count int64, err error)
ScanByPage(result interface{}, offset int, limit int) (count int64, err error)
Rows() (*sql.Rows, error)
Row() *sql.Row
Scan(result interface{}) (err error)
Returning(value interface{}, columns ...string) IKeywordDo
UnderlyingDB() *gorm.DB
schema.Tabler
}
type Query ¶
type Query struct {
Alarm alarm
History history
Keyword keyword
// contains filtered or unexported fields
}
func (*Query) Transaction ¶
func (*Query) WithContext ¶
type QueryTx ¶
func (*QueryTx) RollbackTo ¶
Click to show internal directories.
Click to hide internal directories.