123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package base
- import (
- "ulink-admin/frame"
- "xorm.io/xorm"
- )
- // 封装通用dao
- type BaseDao struct {
- }
- func (this *BaseDao) GetSession() *xorm.Session {
- return GetSession().Session
- }
- // Add 添加角色进入数据库操作
- func (this *BaseDao) Insert(beans ...interface{}) *xorm.Session {
- session := GetSession().Session
- _, err := session.Insert(beans...)
- if err != nil {
- frame.Throw(frame.SQL_CODE, "记录插入错误:"+err.Error())
- }
- return session
- }
- // add 添加角色进入数据库操作
- func (this *BaseDao) Remove(beans ...interface{}) *xorm.Session {
- session := GetSession().Session
- _, err := session.Delete(beans)
- if err != nil {
- frame.Throw(frame.SQL_CODE, "删除错误:"+err.Error())
- }
- if err != nil {
- frame.Throw(frame.SQL_CODE, "记录删除错误:"+err.Error())
- }
- return session
- }
- // Update 修改数据
- func (this *BaseDao) Update(model IModel, cols ...string) {
- if model.Key() <= 0 {
- frame.Throw(frame.BUSINESS_CODE, "主键参数错误")
- }
- session := GetSession().Session.Where("id =?", model.Key())
- if len(cols) > 0 {
- _, err := session.Cols(cols...).Update(model.Model())
- if err != nil {
- frame.Throw(frame.SQL_CODE, "记录更新错误:"+err.Error())
- }
- } else {
- _, err := session.AllCols().Update(model.Model())
- if err != nil {
- frame.Throw(frame.SQL_CODE, "记录更新错误:"+err.Error())
- }
- }
- }
- // Delete 删除角色
- func (this *BaseDao) DeleteById(id, bean interface{}) {
- _, err := GetSession().Session.ID(id).Delete(bean)
- if err != nil {
- frame.Throw(frame.SQL_CODE, "删除错误:"+err.Error())
- }
- }
- // Delete 删除list
- func (this *BaseDao) Delete(bean interface{}, list interface{}) {
- _, err := GetSession().Session.In("Id", list).Delete(bean)
- if err != nil {
- frame.Throw(frame.SQL_CODE, "删除错误:"+err.Error())
- }
- }
- // Update 更新所有数据
- func (this *BaseDao) UpdateAll(list []IModel, col ...string) {
- Transaction(func(session *xorm.Session) {
- for _, item := range list {
- this.Update(item, col...)
- }
- })
- }
- // GetById 根据id获取实体对象
- func (this *BaseDao) GetById(id int64, model interface{}) interface{} {
- bl, err := GetSession().Session.Where("id = ?", id).Get(model)
- if err != nil {
- frame.Throw(frame.SQL_CODE, "查询错误:"+err.Error())
- }
- if !bl {
- model = nil
- }
- return model
- }
- func (this *BaseDao) Exist(table string, where interface{}, key ...interface{}) bool {
- has, err := GetSession().Session.Table(table).Where(where, key...).Exist()
- if err != nil {
- frame.Throw(frame.SQL_CODE, "查询错误:"+err.Error())
- }
- return has
- }
- func (this *BaseDao) Count(table string, where interface{}, key ...interface{}) int64 {
- total, err := GetSession().Session.Table(table).Where(where, key...).Count()
- if err != nil {
- frame.Throw(frame.SQL_CODE, "查询错误:"+err.Error())
- }
- return total
- }
|