This commit is contained in:
ASUS 2025-10-22 15:02:09 +08:00
parent 355d59446f
commit 3c45d268fd
2 changed files with 77 additions and 1 deletions

View File

@ -259,11 +259,13 @@ class Base extends Model
}
// 定时器处理消息回执/在线列表
// 定时器处理消息回执/在线列表/折扣信息
public static function geteventredis_new()
{
print_r('定时器' . "\r\n");
$gateway = Gateway::class;
// 处理折扣消息
self::savetimediscount();
// 处理消息(包含推送)
$redis_name = Gateway::getAllClientSessions();
foreach ($redis_name as $client_id => $client_id_data) {
@ -354,6 +356,24 @@ class Base extends Model
}
public static function savetimediscount()
{
$table = Redis::get('time_discount_info');
if($table) {
$table_arr = json_decode($table, true);
foreach ($table_arr as $k => $v) {
if(!Gateway::getClientCountByGroup($v)) {
print_r($v . '过期');
unset($table_arr[$k]);
Redis::del($v);
}
}
Redis::set('time_discount_info', json_encode($table_arr));
}
}
public static function saveonlinelist(array $client_id_list)
{
if(is_array($client_id_list)) {

View File

@ -117,6 +117,62 @@ class Events
return;
}
if(!empty($message['operate_type'])) {
// 桌码
if(empty($message['table_code']) || empty($message['shop_id'])) {
Gateway::sendToClient($client_id, json_encode(['msg' => '桌码或shop_id不能为空']));
return;
}
$redis_str = Base::get_shopping_save_uid($message['shop_id'], $message['table_code']) . ':time_discount';
// 限时折扣修改
if($message['operate_type'] == 'time_discount_save') {
if(empty($message)) {
$res = Redis::del($redis_str);
}else {
$res = Redis::set($redis_str, $message['data']);
// 将桌号存入redis 以便及时删除
$time_discount_info = Redis::get('time_discount_info');
if($time_discount_info) {
$time_discount_info_arr = json_decode($time_discount_info, true);
$time_discount_info_arr = array_merge($time_discount_info_arr, $redis_str);
Redis::set('time_discount_info', json_encode($time_discount_info_arr));
}else {
Redis::set('time_discount_info', json_encode($redis_str));
}
}
$snd_data = [
'msg' => '折扣修改',
'operate_type' => $message['operate_type'],
'msg_id' => '',
'type' => 'time_discount',
'status' => $res,
'data' => json_decode($message, true),
];
Gateway::sendToClient($client_id, json_encode($snd_data));
return;
}elseif ($message['operate_type'] == 'time_discount_get') {
// 限时折扣获取
$snd_data = [
'msg' => '折扣获取',
'operate_type' => $message['operate_type'],
'msg_id' => '',
'type' => 'time_discount',
'status' => 1,
'data' => Redis::get($redis_str),
];
Gateway::sendToClient($client_id, json_encode($snd_data));
return;
}
}
if(!empty($message['operate_type']) && $message['operate_type'] == 'time_discount_get') {
// 桌码
if(empty($message['table_code'])) {
Gateway::sendToClient($client_id, json_encode(['msg' => '桌码或data不能为空']));
return;
}
}
// 只在初始化的时候绑定
if(!empty($message['operate_type']) && $message['operate_type'] == 'init') {
// 添加在线客户端数量