forked from free-lancers/electricity_bill_calc_service
		
	enhance(region):行政区划部分增加缓存支持。
This commit is contained in:
		| @@ -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) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user