| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | package baseimport (	"ulink-admin/frame"	"xorm.io/xorm")// 封装通用daotype 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 删除listfunc (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}
 |