dict_data_dao.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package dao
  2. import (
  3. "github.com/druidcaesa/gotool"
  4. "ulink-admin/modules/system/models/model"
  5. "ulink-admin/modules/system/models/req"
  6. "ulink-admin/pkg/base"
  7. "ulink-admin/pkg/page"
  8. "xorm.io/xorm"
  9. )
  10. type DictDataDao struct {
  11. }
  12. func (d *DictDataDao) sql(session *xorm.Session) *xorm.Session {
  13. return session.Table("sys_dict_data")
  14. }
  15. // GetByType 根据字典类型查询字典数据
  16. func (d *DictDataDao) GetByType(param string) []model.SysDictData {
  17. data := make([]model.SysDictData, 0)
  18. session := d.sql(base.SqlDB.NewSession())
  19. err := session.Where("status = '0' ").And("dict_type = ?", param).OrderBy("dict_sort").Asc("dict_sort").
  20. Find(&data)
  21. if err != nil {
  22. gotool.Logs.ErrorLog().Println(err)
  23. return nil
  24. }
  25. return data
  26. }
  27. // GetDiceDataAll 查询所有字典数据
  28. func (d DictDataDao) GetDiceDataAll() *[]model.SysDictData {
  29. session := d.sql(base.SqlDB.NewSession())
  30. data := make([]model.SysDictData, 0)
  31. err := session.Where("status = '0' ").OrderBy("dict_sort").Asc("dict_sort").
  32. Find(&data)
  33. if err != nil {
  34. gotool.Logs.ErrorLog().Println(err)
  35. return nil
  36. }
  37. return &data
  38. }
  39. // GetList 查询集合数据
  40. func (d *DictDataDao) GetList(query *req.DictDataQuery) (*[]model.SysDictData, int64) {
  41. list := make([]model.SysDictData, 0)
  42. session := base.SqlDB.NewSession().Table("sys_dict_data").OrderBy("dict_sort").Asc("dict_sort")
  43. if gotool.StrUtils.HasNotEmpty(query.DictType) {
  44. session.And("dict_type = ?", query.DictType)
  45. }
  46. if gotool.StrUtils.HasNotEmpty(query.DictLabel) {
  47. session.And("dict_label like concat('%', ?, '%')", query.DictLabel)
  48. }
  49. if query.Status != nil {
  50. session.And("status = ?", query.Status)
  51. }
  52. total, err := session.Limit(query.PageSize, page.StartSize(query.PageNum, query.PageSize)).FindAndCount(&list)
  53. if err != nil {
  54. gotool.Logs.ErrorLog().Println(err)
  55. return nil, 0
  56. }
  57. return &list, total
  58. }
  59. // GetByCode 根据code查询字典数据
  60. func (d *DictDataDao) GetByCode(id int64) *model.SysDictData {
  61. data := model.SysDictData{}
  62. session := base.SqlDB.NewSession()
  63. _, err := session.Where("id = ?", id).Get(&data)
  64. if err != nil {
  65. gotool.Logs.ErrorLog().Println(err)
  66. return nil
  67. }
  68. return &data
  69. }
  70. // Insert 添加字典数据
  71. func (d *DictDataDao) Insert(data *model.SysDictData) int64 {
  72. session := base.SqlDB.NewSession()
  73. session.Begin()
  74. insert, err := session.Insert(data)
  75. if err != nil {
  76. session.Rollback()
  77. gotool.Logs.ErrorLog().Println(err)
  78. return 0
  79. }
  80. session.Commit()
  81. return insert
  82. }
  83. // Update 修改数据字典数据
  84. func (d *DictDataDao) Update(dic *model.SysDictData) bool {
  85. session := base.SqlDB.NewSession()
  86. session.Begin()
  87. _, err := session.Where("id = ?", dic.Id).Update(dic)
  88. if err != nil {
  89. session.Rollback()
  90. gotool.Logs.ErrorLog().Println(err)
  91. return false
  92. }
  93. session.Commit()
  94. return true
  95. }
  96. // Remove 删除字典数据
  97. func (d *DictDataDao) Remove(codes []int64) bool {
  98. session := base.SqlDB.NewSession()
  99. session.Begin()
  100. _, err := session.In("id", codes).Delete(&model.SysDictData{})
  101. if err != nil {
  102. gotool.Logs.ErrorLog().Println(err)
  103. session.Rollback()
  104. return false
  105. }
  106. session.Commit()
  107. return true
  108. }