package dao import ( "github.com/druidcaesa/gotool" "ulink-admin/modules/system/models/model" "ulink-admin/modules/system/models/req" "ulink-admin/pkg/base" "ulink-admin/pkg/page" "xorm.io/xorm" ) type ConfigDao struct { base.BaseDao } func (d ConfigDao) sql(session *xorm.Session) *xorm.Session { return session.Table("sys_config") } // GetConfigKey 根据键名查询参数配置信息 func (d ConfigDao) GetConfigKey(param string) *model.SysConfig { config := model.SysConfig{} _, err := d.sql(base.GetSession().Session).Where("config_key = ?", param).Get(&config) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil } return &config } // List 分页查询数据 func (d ConfigDao) List(query *req.ConfigQuery) (*[]model.SysConfig, int64) { configs := make([]model.SysConfig, 0) session := d.sql(base.GetSession().Session) if gotool.StrUtils.HasNotEmpty(query.ConfigName) { session.And("config_name like concat('%', ?, '%')", query.ConfigName) } if gotool.StrUtils.HasNotEmpty(query.ConfigType) { session.And("config_type = ?", query.ConfigType) } if gotool.StrUtils.HasNotEmpty(query.ConfigKey) { session.And("config_key like concat('%', ?, '%')", query.ConfigKey) } if gotool.StrUtils.HasNotEmpty(query.BeginTime) { session.And("date_format(create_time,'%y%m%d') >= date_format(?,'%y%m%d')", query.BeginTime) } if gotool.StrUtils.HasNotEmpty(query.EndTime) { session.And("date_format(create_time,'%y%m%d') <= date_format(?,'%y%m%d')", query.EndTime) } total, err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).FindAndCount(&configs) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil, 0 } return &configs, total } // CheckConfigByIds 根据id集合查询 func (d ConfigDao) CheckConfigByIds(list []int64) *[]model.SysConfig { configs := make([]model.SysConfig, 0) err := d.sql(base.GetSession().Session).In("id", list).Find(&configs) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil } return &configs } // FindAll 查询所有数据 func (d ConfigDao) FindAll() *[]model.SysConfig { configs := make([]model.SysConfig, 0) session := base.GetSession().Session err := session.Find(&configs) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil } return &configs }