From 045eeb00a037d7685efbe5cd4f483c932d34eb72 Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Mon, 24 Mar 2025 16:03:16 +0800 Subject: [PATCH] =?UTF-8?q?perf(api):=20=E6=B7=BB=E5=8A=A0=E5=9C=B0?= =?UTF-8?q?=E5=8C=BA=E6=95=B0=E6=8D=AE=E7=BC=93=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 Area 控制器中添加了对地区数据的缓存逻辑 - 首次请求时会从数据库获取数据并缓存,后续请求直接返回缓存数据 - 缓存有效期设置为 1 小时- 优化了数据获取效率,减少了数据库查询次数 --- niucloud/app/api/controller/sys/Area.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/niucloud/app/api/controller/sys/Area.php b/niucloud/app/api/controller/sys/Area.php index 5bbe776f..c56f3e08 100644 --- a/niucloud/app/api/controller/sys/Area.php +++ b/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 { // 获取所有地址数据 - $areas = SysArea::where('status', 1) - ->order('sort', 'asc') - ->select() - ->toArray(); + //获取缓存getAreaTree + $getAreaTree = Cache::get('getAreaTree'); - // 构建树形结构 - $tree = (new CommonService())->areaBuildTree($areas); + if ($getAreaTree) { + 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); + } } }