|
@@ -4,7 +4,7 @@ namespace App\Http\Controllers;
|
|
|
|
|
|
use Illuminate\Http\JsonResponse;
|
|
|
use Illuminate\Http\Request;
|
|
|
-use Illuminate\Support\Facades\Redis;
|
|
|
+use Illuminate\Support\Facades\Cache;
|
|
|
|
|
|
/**
|
|
|
* @group 通用接口
|
|
@@ -55,10 +55,13 @@ class EnumController extends Controller
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
- try {
|
|
|
+ // 从Memcached缓存获取数据
|
|
|
+ $cacheKey = "enum:{$enumName}";
|
|
|
+ $enumData = Cache::get($cacheKey);
|
|
|
+
|
|
|
+ if (!$enumData) {
|
|
|
// 构造完整的枚举类名
|
|
|
$enumClass = "App\\Enums\\{$enumName}";
|
|
|
-
|
|
|
// 检查类是否存在
|
|
|
if (!class_exists($enumClass)) {
|
|
|
return response()->json([
|
|
@@ -67,39 +70,25 @@ class EnumController extends Controller
|
|
|
'code' => 404
|
|
|
]);
|
|
|
}
|
|
|
-
|
|
|
- // 从Redis缓存获取数据
|
|
|
- $cacheKey = "enum:{$enumName}";
|
|
|
- $enumData = Redis::get($cacheKey);
|
|
|
-
|
|
|
- if (!$enumData) {
|
|
|
- // 缓存不存在,获取枚举数据并转换格式
|
|
|
- $rawData = $enumClass::all();
|
|
|
- $items = [];
|
|
|
- foreach ($rawData as $value => $label) {
|
|
|
- $items[] = [
|
|
|
- 'label' => $label,
|
|
|
- 'value' => $value
|
|
|
- ];
|
|
|
- }
|
|
|
-
|
|
|
- // 存入Redis缓存,设置过期时间为1天
|
|
|
- Redis::setex($cacheKey, 86400, json_encode($items));
|
|
|
- } else {
|
|
|
- $items = json_decode($enumData, true);
|
|
|
+ // 缓存不存在,获取枚举数据并转换格式
|
|
|
+ $rawData = $enumClass::all();
|
|
|
+ $items = [];
|
|
|
+ foreach ($rawData as $value => $label) {
|
|
|
+ $items[] = [
|
|
|
+ 'label' => $label,
|
|
|
+ 'value' => $value
|
|
|
+ ];
|
|
|
}
|
|
|
|
|
|
- return response()->json([
|
|
|
- 'items' => $items,
|
|
|
- 'message' => '',
|
|
|
- 'code' => 0
|
|
|
- ]);
|
|
|
- } catch (\Throwable $e) {
|
|
|
- return response()->json([
|
|
|
- 'items' => [],
|
|
|
- 'message' => $e->getMessage(),
|
|
|
- 'code' => 500
|
|
|
- ]);
|
|
|
+ // 存入Memcached缓存,设置过期时间为1天
|
|
|
+ Cache::put($cacheKey, $items, 86400);
|
|
|
+ $enumData = $items;
|
|
|
}
|
|
|
+
|
|
|
+ return response()->json([
|
|
|
+ 'items' => $enumData,
|
|
|
+ 'message' => '',
|
|
|
+ 'code' => 0
|
|
|
+ ]);
|
|
|
}
|
|
|
}
|