Files
mier-php/application/admin/controller/Cli.php
2025-08-11 10:22:05 +08:00

372 lines
13 KiB
PHP

<?php
namespace app\admin\controller;
use think\Controller;
class Cli extends Common
{
//关闭陪玩订单
public function close_palyer_order()
{
$key_name = "admin:cli:close_palyer_order";
redis_lock_exit($key_name);
$reslut = model('UserPlayerOrder')->close_palyer_order();
echo $reslut;
redis_unlock($key_name);
}
//清理过期装扮
public function clear_user_decorate()
{
$key_name = "admin:cli:clear_user_decorate";
redis_lock_exit($key_name);
$reslut = model('Decorate')->clear_user_decorate();
echo $reslut;
redis_unlock($key_name);
}
//监听结束房间PK状态 可以5秒执行一次 最好每秒执行一次
public function close_room_pk()
{
$key_name = "admin:cli:close_room_pk";
redis_lock_exit($key_name);
$reslut = model('api/Room')->close_room_pk();
redis_unlock($key_name);
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
echo date('Y-m-d H:i:s') . "监控房间PK 执行成功\r\n";
}
//刷新麦位信息 websocket 服务调用
public function push_micro_data()
{
$rid = input('rid', 0);
$push_data = [];
$push_data['code'] = 301;
$push_data['msg'] = "房间麦位信息";
$data = model('api/room')->get_room_micro_info($rid);
$push_data['data'] = $data['data'];
model('api/WebSocketPush')->send_to_group($rid, $push_data);
}
//用户退出房间 websokcet 服务调用
public function user_enter_room()
{
$rid = input('rid', 0);
$uid = input('uid', 0);
$key_name = "admin:cli:user_quit_room:rid:$rid:uid:$uid";
// error_log("进入直播间:$rid----$uid---\r\n", 3, "my-errors.log");
redis_lock_exit($key_name);
$reslut = model('api/room')->user_enter_room($uid, $rid);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//用户退出房间 websokcet 服务调用
public function user_quit_room()
{
$rid = input('rid', 0);
$uid = input('uid', 0);
// error_log("退出直播间:$rid----$uid---\r\n", 3, "my-errors.log");
$key_name = "admin:cli:user_quit_room:rid:$rid:uid:$uid";
redis_lock_exit($key_name);
$reslut = model('api/room')->quit_room($uid, $rid);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//监控宝箱状态 设置5s 监控一次
public function control_box()
{
$key_name = "admin:cli:control_box";
$tid = input('tid', 0);
$is_reset = input('is_reset', 0);
redis_lock_exit($key_name,20);
$reslut = model('admin/box')->control_generate_box($tid, $is_reset);
redis_unlock($key_name);
if($is_reset){
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}else{
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
}
}
//监控宝箱状态 设置5s 监控一次
public function controls_box()
{
$key_name = "admin:cli:control_box";
$tid = input('tid', 0);
$is_reset = input('is_reset', 0);
//二级密码
$pass = input('pass', '');
$check_pass = model('admin/admin')->check_secondary_password($pass);
if($check_pass['code'] == 201){
return ajaxReturn($check_pass['code'], $check_pass['msg'], $check_pass['data']);
}
redis_lock_exit($key_name,20);
$reslut = model('admin/box')->control_generate_box($tid, $is_reset);
redis_unlock($key_name);
if($is_reset){
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}else{
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
}
}
//监控宝箱状态 设置5s 监控一次
public function control_boxs()
{
$key_name = "admin:cli:control_boxs";
$tid = input('tid', 0);
$is_reset = input('is_reset', 0);
redis_lock_exit($key_name,20);
$reslut = model('admin/box')->control_generate_boxs($tid, $is_reset);
redis_unlock($key_name);
if($is_reset){
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}else{
echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
}
}
//监控个人宝箱状态 设置5s 监控一次
// public function person_control_box()
// {
// $tid = input('tid',0);
// $key_name = "admin:cli:person_control_box:".$tid;
// redis_lock_exit($key_name,600);
// $reslut = model('admin/box')->control_person_box($tid);
// redis_unlock($key_name);
// echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
// }
//清理房间当天热度
public function clear_room_hot_value(){
$key_name = "admin:cli:clear_room_hot_value";
redis_lock_exit($key_name);
$reslut = model('api/room')->clear_room_hot_value();
redis_unlock($key_name);
echo date('Y-m-d H:i:s') . "清除房间当天热度 执行成功"." \r\n";
}
//监控个人宝箱状态 设置5s 监控一次
// public function control_user_box()
// {
// $tid = input('tid',0);
// $uid = input('uid',0);
// $key_name = "admin:cli:control_user_box:".$tid.':'.$uid;
// redis_lock_exit($key_name);
// $reslut = model('admin/box')->control_user_box($uid,$tid);
// redis_unlock($key_name);
// echo date('Y-m-d H:i:s') . "监控奖池 执行成功" . $reslut['data'] . "\r\n";
// }
public function user_clear_box(){
$tid = input('tid',0);
$key_name = "admin:cli:user_clear_box";
redis_lock_exit($key_name);
$reslut = model('admin/box')->user_clear_box($tid);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
public function control_accumulate_box(){
$key_name = "admin:cli:control_accumulate_box";
redis_lock_exit($key_name);
$reslut = model('admin/box')->control_accumulate_box();
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
public function control_user_box(){
$key_name = "admin:cli:control_user_box";
redis_lock_exit($key_name);
$reslut = model('admin/box')->control_user_box();
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//异步推送送礼物
public function async_push_message()
{
$reslut = model('api/AsyncPushMessage')->send_message();
}
/*******************************定时任务*************************************/
//定时查询签约是否结束进行解约
public function close_user_sign_contract(){
$key_name = "admin:cli:close_user_sign_contract";
redis_lock_exit($key_name);
$reslut = model('api/UserSignContract')->close_user_sign_contract();
redis_unlock($key_name);
}
//定时清理到期心动连线
public function close_room_dating_stage(){
$key_name = "admin:cli:close_room_dating_stage";
redis_lock_exit($key_name);
$reslut = model('api/DatingRoom')->close_room_dating_stage();
redis_unlock($key_name);
echo date('Y-m-d H:i:s') . "监控心动连线倒计时 执行成功" . $reslut['code'] . "\r\n";
}
//定时清理到期私密小屋
public function close_room_privacy_status(){
$key_name = "api:cli:close_room_privacy_status";
redis_lock_exit($key_name);
$reslut = model('api/DatingRoom')->close_room_privacy_status();
redis_unlock($key_name);
echo date('Y-m-d H:i:s') . "监控私密小屋倒计时 执行成功" . $reslut['code'] . "\r\n";
}
//定时更新到期游客记录
public function close_room_visitor(){
$key_name = "admin:cli:close_room_visitor";
redis_lock_exit($key_name);
$reslut = model('api/RoomVisitor')->close_room_visitor();
redis_unlock($key_name);
}
//定时结束唱歌时间
public function colse_room_song_user_status(){
$key_name = "admin:cli:colse_room_song_user_status";
redis_lock_exit($key_name);
$reslut = model('api/KtvRoom')->colse_room_song_user_status();
redis_unlock($key_name);
}
//定时清除用户关系
public function close_user_relation(){
$key_name = "admin:cli:close_user_relation";
redis_lock_exit($key_name);
$reslut = model('api/DatingRoom')->close_user_relation();
redis_unlock($key_name);
}
//统计上周房间流水
public function statistics_room_last_week_earnings(){
$type = input('type', 0);
$key_name = "admin:cli:statistics_room_last_week_earnings:type:".$type;
redis_lock_exit($key_name);
$reslut = model('api/RoomSubsidy')->statistics_room_last_week_earnings($type);
redis_unlock($key_name);
}
//发送用户收益
public function give_user_room_week_earnings(){
$type = input('type', 0);
$key_name = "admin:cli:give_user_room_week_earnings:type:".$type;
redis_lock_exit($key_name);
$reslut = model('api/RoomSubsidy')->give_user_room_week_earnings($type);
redis_unlock($key_name);
}
//统计用户收益
public function gives_user_room_week_earnings(){
$type = input('type', 0);
$key_name = "admin:cli:gives_user_room_week_earnings:type:".$type;
redis_lock_exit($key_name);
$reslut = model('api/RoomSubsidy')->gives_user_room_week_earnings($type);
redis_unlock($key_name);
}
//统计上周公会流水
public function statistics_guild_last_week_earnings(){
$type = input('type', 0);
$key_name = "admin:cli:statistics_guild_last_week_earnings:type:".$type;
redis_lock_exit($key_name);
$reslut = model('api/GuildSubsidy')->statistics_guild_last_week_earnings($type);
redis_unlock($key_name);
}
//统计公会长收益
public function gives_user_guild_week_earnings(){
$type = input('type', 0);
$key_name = "admin:cli:gives_user_guild_week_earnings:type:".$type;
redis_lock_exit($key_name);
$reslut = model('api/GuildSubsidy')->gives_user_guild_week_earnings($type);
redis_unlock($key_name);
}
//定时关闭没有主持房间
public function close_room_status(){
$key_name = "admin:cli:close_room_status";
redis_lock_exit($key_name);
$reslut = model('api/RoomMicro')->close_room_status();
redis_unlock($key_name);
}
//到期会员清除
public function close_user_vip(){
$key_name = "admin:cli:close_user_vip";
redis_lock_exit($key_name);
$reslut = model('api/Vip')->close_user_vip();
redis_unlock($key_name);
}
//解约用户每天降低身价
public function relieve_user_sign_contract(){
$key_name = "admin:cli:relieve_user_sign_contract";
redis_lock_exit($key_name);
$reslut = model('api/UserSignContract')->relieve_user_sign_contract();
redis_unlock($key_name);
}
//监控仲夏夜梦曲
public function create_sprite_log(){
$key_name = "admin:cli:create_sprite_log";
redis_lock_exit($key_name,1,1);
$reslut = model('api/Sprite')->create_sprite_log();
redis_unlock($key_name);
if($reslut['code'] == 201){
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}else{
echo date('Y-m-d H:i:s') . "监控仲夏夜梦曲 执行成功" . $reslut['data'] . "\r\n";
}
}
//监控仲夏夜梦曲结算用户投票
public function close_user_sprite(){
$key_name = "admin:cli:close_user_sprite";
redis_lock_exit($key_name,1,1);
$reslut = model('api/Sprite')->close_user_sprite();
redis_unlock($key_name);
if($reslut['code'] == 201){
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}else{
echo date('Y-m-d H:i:s') . "监控仲夏夜梦曲结算用户投票 执行成功" . $reslut['data'] . "\r\n";
}
}
public function close_auction_pm(){
$key_name = "admin:cli:close_auction_pm";
$data = model('api/AuctionRoom')->close_auction_pm();
redis_unlock($key_name);
return ajaxReturn($data['code'], $data['msg'], $data['data']);
}
}