123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- 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
- }
|