dict_data_service.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package service
  2. import (
  3. "ulink-admin/modules/system/dao"
  4. "ulink-admin/modules/system/models/model"
  5. "ulink-admin/modules/system/models/req"
  6. "ulink-admin/pkg/cache"
  7. )
  8. type DictDataService struct {
  9. DictDataDao *dao.DictDataDao `inject:""`
  10. }
  11. // GetByType 根据字典类型查询字典数据
  12. func (s DictDataService) GetByType(param string) []model.SysDictData {
  13. //先从缓存中拉数据
  14. key := cache.GetRedisDictKey(param)
  15. if key != nil {
  16. return key
  17. } else {
  18. //缓存中为空,从数据库中取数据
  19. return s.DictDataDao.GetByType(param)
  20. }
  21. }
  22. // GetList 查询字段数据集合
  23. func (s DictDataService) GetList(query *req.DictDataQuery) (*[]model.SysDictData, int64) {
  24. return s.DictDataDao.GetList(query)
  25. }
  26. func (s DictDataService) ListAll() *[]model.SysDictData {
  27. return s.DictDataDao.GetDiceDataAll()
  28. }
  29. // GetByCode 根据code查询字典数据
  30. func (s DictDataService) GetByCode(id int64) *model.SysDictData {
  31. return s.DictDataDao.GetByCode(id)
  32. }
  33. // Insert 新增字典数据
  34. func (s DictDataService) Insert(data *model.SysDictData) bool {
  35. insert := s.DictDataDao.Insert(data)
  36. if insert > 0 {
  37. //刷新缓存数据
  38. byType := s.GetNoCacheByType(data.DictType)
  39. cache.SetDictCache(data.DictType, data.MarshalDictList(byType))
  40. }
  41. return insert > 0
  42. }
  43. // Insert 新增字典数据
  44. func (s DictDataService) Update(data *model.SysDictData) bool {
  45. i := s.DictDataDao.Update(data)
  46. if i {
  47. //刷新缓存数据
  48. byType := s.GetNoCacheByType(data.DictType)
  49. cache.SetDictCache(data.DictType, data.MarshalDictList(byType))
  50. return true
  51. }
  52. return i
  53. }
  54. // Remove 删除数据
  55. func (s DictDataService) Remove(codes []int64) bool {
  56. dictType := s.GetByCode(codes[0]).DictType
  57. m := model.SysDictData{}
  58. remove := s.DictDataDao.Remove(codes)
  59. if remove {
  60. //刷新缓存
  61. id := s.GetNoCacheByType(dictType)
  62. cache.SetDictCache(dictType, m.MarshalDictList(id))
  63. }
  64. return remove
  65. }
  66. // GetNoCacheByType 根据字典类型查询字典数据
  67. func (s DictDataService) GetNoCacheByType(param string) []model.SysDictData {
  68. return s.DictDataDao.GetByType(param)
  69. }