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 DictDataDao struct { } func (d *DictDataDao) sql(session *xorm.Session) *xorm.Session { return session.Table("sys_dict_data") } // GetByType 根据字典类型查询字典数据 func (d *DictDataDao) GetByType(param string) []model.SysDictData { data := make([]model.SysDictData, 0) session := d.sql(base.SqlDB.NewSession()) err := session.Where("status = '0' ").And("dict_type = ?", param).OrderBy("dict_sort").Asc("dict_sort"). Find(&data) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil } return data } // GetDiceDataAll 查询所有字典数据 func (d DictDataDao) GetDiceDataAll() *[]model.SysDictData { session := d.sql(base.SqlDB.NewSession()) data := make([]model.SysDictData, 0) err := session.Where("status = '0' ").OrderBy("dict_sort").Asc("dict_sort"). Find(&data) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil } return &data } // GetList 查询集合数据 func (d *DictDataDao) GetList(query *req.DictDataQuery) (*[]model.SysDictData, int64) { list := make([]model.SysDictData, 0) session := base.SqlDB.NewSession().Table("sys_dict_data").OrderBy("dict_sort").Asc("dict_sort") if gotool.StrUtils.HasNotEmpty(query.DictType) { session.And("dict_type = ?", query.DictType) } if gotool.StrUtils.HasNotEmpty(query.DictLabel) { session.And("dict_label like concat('%', ?, '%')", query.DictLabel) } if query.Status != nil { session.And("status = ?", query.Status) } total, err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).FindAndCount(&list) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil, 0 } return &list, total } // GetByCode 根据code查询字典数据 func (d *DictDataDao) GetByCode(id int64) *model.SysDictData { data := model.SysDictData{} session := base.SqlDB.NewSession() _, err := session.Where("id = ?", id).Get(&data) if err != nil { gotool.Logs.ErrorLog().Println(err) return nil } return &data } // Insert 添加字典数据 func (d *DictDataDao) Insert(data *model.SysDictData) int64 { session := base.SqlDB.NewSession() session.Begin() insert, err := session.Insert(data) if err != nil { session.Rollback() gotool.Logs.ErrorLog().Println(err) return 0 } session.Commit() return insert } // Update 修改数据字典数据 func (d *DictDataDao) Update(dic *model.SysDictData) bool { session := base.SqlDB.NewSession() session.Begin() _, err := session.Where("id = ?", dic.Id).Update(dic) if err != nil { session.Rollback() gotool.Logs.ErrorLog().Println(err) return false } session.Commit() return true } // Remove 删除字典数据 func (d *DictDataDao) Remove(codes []int64) bool { session := base.SqlDB.NewSession() session.Begin() _, err := session.In("id", codes).Delete(&model.SysDictData{}) if err != nil { gotool.Logs.ErrorLog().Println(err) session.Rollback() return false } session.Commit() return true }