package service import ( "ulink-admin/modules/system/dao" "ulink-admin/modules/system/models/model" "ulink-admin/modules/system/models/req" "ulink-admin/pkg/cache" ) type DictDataService struct { DictDataDao *dao.DictDataDao `inject:""` } // GetByType 根据字典类型查询字典数据 func (s DictDataService) GetByType(param string) []model.SysDictData { //先从缓存中拉数据 key := cache.GetRedisDictKey(param) if key != nil { return key } else { //缓存中为空,从数据库中取数据 return s.DictDataDao.GetByType(param) } } // GetList 查询字段数据集合 func (s DictDataService) GetList(query *req.DictDataQuery) (*[]model.SysDictData, int64) { return s.DictDataDao.GetList(query) } func (s DictDataService) ListAll() *[]model.SysDictData { return s.DictDataDao.GetDiceDataAll() } // GetByCode 根据code查询字典数据 func (s DictDataService) GetByCode(id int64) *model.SysDictData { return s.DictDataDao.GetByCode(id) } // Insert 新增字典数据 func (s DictDataService) Insert(data *model.SysDictData) bool { insert := s.DictDataDao.Insert(data) if insert > 0 { //刷新缓存数据 byType := s.GetNoCacheByType(data.DictType) cache.SetDictCache(data.DictType, data.MarshalDictList(byType)) } return insert > 0 } // Insert 新增字典数据 func (s DictDataService) Update(data *model.SysDictData) bool { i := s.DictDataDao.Update(data) if i { //刷新缓存数据 byType := s.GetNoCacheByType(data.DictType) cache.SetDictCache(data.DictType, data.MarshalDictList(byType)) return true } return i } // Remove 删除数据 func (s DictDataService) Remove(codes []int64) bool { dictType := s.GetByCode(codes[0]).DictType m := model.SysDictData{} remove := s.DictDataDao.Remove(codes) if remove { //刷新缓存 id := s.GetNoCacheByType(dictType) cache.SetDictCache(dictType, m.MarshalDictList(id)) } return remove } // GetNoCacheByType 根据字典类型查询字典数据 func (s DictDataService) GetNoCacheByType(param string) []model.SysDictData { return s.DictDataDao.GetByType(param) }