// @Time : 2020/10/29 8:31 下午 // @Author : bingee package models import ( "github.com/beego/beego/v2/client/orm" ) // 是否存在 func IsExistByExpr(ptrStructOrTableName interface{}, where map[string]interface{}) bool { o := orm.NewOrm() qs := o.QueryTable(ptrStructOrTableName) for expr, exprV := range where { qs = qs.Filter(expr, exprV) } return qs.Exist() } // 获取条数 func GetCountByExpr(ptrStructOrTableName interface{}, where map[string]interface{}) (count int64, err error) { o := orm.NewOrm() qs := o.QueryTable(ptrStructOrTableName) for expr, exprV := range where { qs = qs.Filter(expr, exprV) } count, err = qs.Count() return } // 更新 func UpdateByExpr(ptrStructOrTableName interface{}, where map[string]interface{}, updateParams orm.Params) error { o := orm.NewOrm() qs := o.QueryTable(ptrStructOrTableName) for expr, exprV := range where { qs = qs.Filter(expr, exprV) } _, err := qs.Update(updateParams) return err } // 删除 func DeleteByExpr(ptrStructOrTableName interface{}, where map[string]interface{}) error { o := orm.NewOrm() qs := o.QueryTable(ptrStructOrTableName) for expr, exprV := range where { qs = qs.Filter(expr, exprV) } _, err := qs.Delete() return err } // 插入 func InsertData(ptrStructOrTableName interface{}) (int64, error) { o := orm.NewOrm() id, err := o.Insert(ptrStructOrTableName) return id, err } // 获取数据 func GetDataByExpr(ptrStructOrTableName interface{}, where map[string]interface{}, data interface{}, page ...int64) (err error) { o := orm.NewOrm() qs := o.QueryTable(ptrStructOrTableName) for expr, exprV := range where { qs = qs.Filter(expr, exprV) } if len(page) > 1 { qs = qs.Limit(page[1], page[0]) } _, err = qs.All(data) return err }