添加缓存
This commit is contained in:
parent
9bd5d0b7d7
commit
a996dd0902
|
|
@ -56,11 +56,26 @@ class Goods extends Base
|
|||
*/
|
||||
public function goods(Request $request)
|
||||
{
|
||||
$type_str = request()->param('type', -1);
|
||||
$user_id = $this->getUserId();
|
||||
$page = request()->param('page', 1);
|
||||
|
||||
// 获取Redis实例并检查缓存
|
||||
$redis = (new \app\common\server\RedisHelper())->getRedis();
|
||||
$cache_key = "goods_list_{$type_str}_{$user_id}_{$page}";
|
||||
$cache_data = $redis->get($cache_key);
|
||||
|
||||
// 如果缓存存在,直接返回缓存数据
|
||||
if ($cache_data) {
|
||||
$cached_data = json_decode($cache_data, true);
|
||||
return $this->renderSuccess('请求成功', $cached_data);
|
||||
}
|
||||
|
||||
$whe = [];
|
||||
$whe[] = ['status', '=', 1];
|
||||
$whe[] = ['show_is', '=', 0];
|
||||
|
||||
$paginate = 15;
|
||||
$type_str = request()->param('type', -1);
|
||||
// 1一番赏 2无限赏 3擂台赏 4抽卡机 5积分赏 6全局赏 7福利盲盒 8领主赏 9连击赏 10 商品赏
|
||||
|
||||
// 使用映射数组简化类型条件判断
|
||||
|
|
@ -94,7 +109,6 @@ class Goods extends Base
|
|||
$whe[] = ['type', 'in', [2, 6, 8, 16]];
|
||||
}
|
||||
|
||||
$user_id = $this->getUserId();
|
||||
if ($user_id == 0) {
|
||||
//充值金额
|
||||
$whe[] = ['unlock_amount', '=', 0];
|
||||
|
|
@ -135,6 +149,10 @@ class Goods extends Base
|
|||
'data' => [],
|
||||
'last_page' => $goods->lastPage(),
|
||||
];
|
||||
|
||||
// 缓存空结果,避免重复查询
|
||||
$redis->set($cache_key, json_encode($new_data), 300);
|
||||
|
||||
return $this->renderSuccess('请求成功', $new_data);
|
||||
}
|
||||
|
||||
|
|
@ -224,6 +242,10 @@ class Goods extends Base
|
|||
'data' => $goods->items(),
|
||||
'last_page' => $goods->lastPage(),
|
||||
];
|
||||
|
||||
// 将结果缓存到Redis,设置过期时间为30秒(30秒)
|
||||
$redis->set($cache_key, json_encode($new_data), 30);
|
||||
|
||||
return $this->renderSuccess('请求成功', $new_data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,8 +79,20 @@ class Index extends Base
|
|||
{
|
||||
// 设置header
|
||||
|
||||
|
||||
$type = \request()->param('type/d', 0);
|
||||
|
||||
// 使用Redis缓存
|
||||
$redis = (new \app\common\server\RedisHelper())->getRedis();
|
||||
$cacheKey = 'danye:content:' . $type;
|
||||
|
||||
// 尝试从缓存获取数据
|
||||
$cacheData = $redis->get($cacheKey);
|
||||
if ($cacheData) {
|
||||
$cacheData = json_decode($cacheData, true);
|
||||
return json(['status' => 1, 'msg' => '请求成功', 'data' => $cacheData['content'], 'is_image_optimizer' => $cacheData['is_image_optimizer']]);
|
||||
}
|
||||
|
||||
// 缓存不存在,查询数据库
|
||||
$info = Danye::where(['id' => $type])->find();
|
||||
$is_image_optimizer = 0;
|
||||
if ($info) {
|
||||
|
|
@ -90,6 +102,14 @@ class Index extends Base
|
|||
} else {
|
||||
$content = '';
|
||||
}
|
||||
|
||||
// 存入Redis缓存,设置过期时间为60秒(10分钟)
|
||||
$cacheData = [
|
||||
'content' => $content,
|
||||
'is_image_optimizer' => $is_image_optimizer
|
||||
];
|
||||
$redis->setex($cacheKey, 600, json_encode($cacheData));
|
||||
|
||||
// return $this->renderSuccess("请求成功", $content);
|
||||
return json(['status' => 1, 'msg' => '请求成功', 'data' => $content, 'is_image_optimizer' => $is_image_optimizer]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,18 @@ class Infinite extends Base
|
|||
{
|
||||
$user_id = $this->getUserId();
|
||||
$goods_id = request()->param('goods_id/d', 0);
|
||||
|
||||
// 获取Redis实例并检查缓存
|
||||
$redis = (new \app\common\server\RedisHelper())->getRedis();
|
||||
$cache_key = "infinite_goodsdetail_{$goods_id}_{$user_id}";
|
||||
$cache_data = $redis->get($cache_key);
|
||||
|
||||
// 如果缓存存在,直接返回缓存数据
|
||||
if ($cache_data) {
|
||||
$cached_data = json_decode($cache_data, true);
|
||||
return $this->renderSuccess("请求成功", $cached_data);
|
||||
}
|
||||
|
||||
$goods = Goodsmodel::field('id,title,imgurl_detail,price,stock,sale_stock,lock_is,type,status,addtime,rage_is,rage,item_card_id,lingzhu_is,lingzhu_shang_id,is_shou_zhe,daily_xiangou,quanju_xiangou')
|
||||
->where(['id' => $goods_id])
|
||||
->find();
|
||||
|
|
@ -59,14 +71,15 @@ class Infinite extends Base
|
|||
$goods['item_card'] = $item_card;
|
||||
$goods['item_card_info'] = '重抽卡说明: 怒气值达到' . $goods['rage'] . '时, 获得重抽卡';
|
||||
//当前盒子的怒气值
|
||||
$user_rage = Db::name('user_rage')->field('id,rage')->where(['user_id' => $user_info['id'], 'goods_id' => $goods_id])->find();
|
||||
$goods['user_rage'] = $user_rage ? $user_rage['rage'] : 0;
|
||||
//怒气值进度
|
||||
if (!$user_rage || $user_rage['rage'] <= 0) {
|
||||
$goods['user_rage_schedule'] = 0;
|
||||
} else {
|
||||
$goods['user_rage_schedule'] = round($user_rage['rage'] / $goods['rage'] * 100);
|
||||
;
|
||||
if ($user_id > 0) {
|
||||
$user_rage = Db::name('user_rage')->field('id,rage')->where(['user_id' => $user_id, 'goods_id' => $goods_id])->find();
|
||||
$goods['user_rage'] = $user_rage ? $user_rage['rage'] : 0;
|
||||
//怒气值进度
|
||||
if (!$user_rage || $user_rage['rage'] <= 0) {
|
||||
$goods['user_rage_schedule'] = 0;
|
||||
} else {
|
||||
$goods['user_rage_schedule'] = round($user_rage['rage'] / $goods['rage'] * 100);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -180,6 +193,10 @@ class Infinite extends Base
|
|||
'danye_id' => $type1,
|
||||
'limitInfo' => $limitInfo
|
||||
];
|
||||
|
||||
// 将原始数据缓存到Redis,设置过期时间为60秒(3分钟)
|
||||
$redis->set($cache_key, json_encode($new_data), 180);
|
||||
|
||||
return $this->renderSuccess("请求成功", $new_data);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user