33 lines
816 B
Go
33 lines
816 B
Go
package common
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
// BaseDao 是所有 dao 的基类:单表操作统一入口,查询缓存由 dao 层按需配置。
|
|
type BaseDao struct {
|
|
Table string
|
|
}
|
|
|
|
func (d *BaseDao) Model() *gdb.Model { return g.DB().Model(d.Table) }
|
|
|
|
func (d *BaseDao) InsertAndReturnId(ctx context.Context, data g.Map) (int64, error) {
|
|
res, err := d.Model().Ctx(ctx).Data(data).Insert()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return res.LastInsertId()
|
|
}
|
|
|
|
func (d *BaseDao) GetOneByPk(ctx context.Context, pk int64) (gdb.Record, error) {
|
|
return d.Model().Ctx(ctx).WherePri(pk).One()
|
|
}
|
|
|
|
func (d *BaseDao) UpdateByPk(ctx context.Context, pk int64, data g.Map) error {
|
|
_, err := d.Model().Ctx(ctx).WherePri(pk).Data(data).Update()
|
|
return err
|
|
}
|