Browse Source

perf(api): 添加地区数据缓存功能

- 在 Area 控制器中添加了对地区数据的缓存逻辑
- 首次请求时会从数据库获取数据并缓存,后续请求直接返回缓存数据
- 缓存有效期设置为 1 小时- 优化了数据获取效率,减少了数据库查询次数
master
liutong 1 year ago
parent
commit
045eeb00a0
  1. 15
      niucloud/app/api/controller/sys/Area.php

15
niucloud/app/api/controller/sys/Area.php

@ -15,6 +15,7 @@ use addon\zhjw\app\service\admin\common\CommonService;
use app\model\sys\SysArea;
use app\service\api\sys\AreaService;
use core\base\BaseApiController;
use think\facade\Cache;
use think\Response;
class Area extends BaseApiController
@ -68,15 +69,23 @@ class Area extends BaseApiController
{
// 获取所有地址数据
//获取缓存getAreaTree
$getAreaTree = Cache::get('getAreaTree');
if ($getAreaTree) {
return success($getAreaTree);
}else{
$areas = SysArea::where('status', 1)
->order('sort', 'asc')
->select()
->toArray();
// 构建树形结构
$tree = (new CommonService())->areaBuildTree($areas);
return success($tree);
$getAreaTree = (new CommonService())->areaBuildTree($areas);
//设置缓存
Cache::set('getAreaTree', $getAreaTree, 3600);//缓存一个小时
return success($getAreaTree);
}
}
}

Loading…
Cancel
Save