diff --git a/service/region.go b/service/region.go index c29f1bb..d940ddb 100644 --- a/service/region.go +++ b/service/region.go @@ -13,11 +13,15 @@ type _RegionService struct{} var RegionService _RegionService func (_RegionService) FetchSubRegions(parent string) ([]model.Region, error) { + if regions, _ := cache.RetreiveSearch[[]model.Region]("region", "parent", parent); regions != nil { + return *regions, nil + } regions := make([]model.Region, 0) err := global.DBConn.Where(builder.Eq{"parent": parent}).Asc("code").Find(®ions) if err != nil { return make([]model.Region, 0), err } + cache.CacheSearch(regions, "region", "region", "parent", parent) return regions, err } @@ -39,14 +43,13 @@ func (r _RegionService) FetchAllParentRegions(code string) ([]model.Region, erro } func (_RegionService) fetchRegion(code string) (*model.Region, error) { - cachedRegion, _ := cache.RetreiveData[model.Region]("region", code) - if cachedRegion != nil { + if cachedRegion, _ := cache.RetreiveSearch[model.Region]("region", code); cachedRegion != nil { return cachedRegion, nil } region := new(model.Region) has, err := global.DBConn.ID(code).NoAutoCondition().Get(region) if has { - cache.CacheData(region, "region", code) + cache.CacheSearch(region, "region", "region", code) } return _postProcessSingle(region, has, err) }