Browse Source

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

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

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

Loading…
Cancel
Save