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

215 lines
7.0 KiB
PHP

<?php
namespace app\admin\model;
use think\Model;
use think\Db;
class Block extends Model
{
public function get_block_list($type, $type_text, $is_delete, $page = 1, $limit = 20)
{
$map = [];
if(!empty($type)){
$map[] = ['type', '=', $type];
}
if(!empty($type_text)){
$map[] = ['type_text', '=', $type_text];
}
if(!empty($is_delete)){
$map[] = ['is_delete', '=', $is_delete];
}
$map[] = ['is_delete', '=', 1];
$list = db::name('block')->where($map)->order('id desc')->page($page, $limit)->select();
foreach ($list as $k => &$v) {
}
$data = [];
$data['count'] = db::name('block')->where($map)->count();
$data['list'] = $list;
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
}
public function add_block($aid, $data)
{
if(empty($data['type_text'])){
return ['code' => 201, 'msg' => '封禁内容不能为空', 'data' => null];
}
// if(empty($data['block_note'])){
// return ['code' => 201, 'msg' => '封禁原因不能为空', 'data' => null];
// }
// if(empty($data['block_time'])){
// return ['code' => 201, 'msg' => '封禁截止日期不能为空', 'data' => null];
// }
// $block_time = $data['block_time'];
// $data['block_time'] = strtotime($data['block_time']);
$map = [];
$map[] = ['is_delete', '=', 1];
$map[] = ['type', '=', $data['type']];
$map[] = ['type_text', '=', $data['type_text']];
$info = db::name('block')->where($map)->find();
if($info){
return ['code' => 201, 'msg' => '当前封禁内容已添加', 'data' => null];
}
Db::startTrans();
try {
//添加
$insert = [];
$insert['aid'] = $aid;
$insert['type'] = $data['type'];
$insert['type_text'] = $data['type_text'];
// $insert['block_time'] = $data['block_time'];
// $insert['block_note'] = $data['block_note'];
$insert['add_time'] = time();
$reslut = db::name('block')->insert($insert);
if(!$reslut){
Db::rollback();
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
}
Db::commit();
return ['code' => 200, 'msg' => '添加成功', 'data' => null];
} catch (\Exception $e) {
dump($e);
// 回滚事务
Db::rollback();
return ['code' => 201, 'msg' => '添加失败', 'data' => null];
}
}
public function del_block($id)
{
$map = [];
$map[] = ['id', '=', $id];
$block_info = db::name('block')->where($map)->find();
if (empty($block_info)) {
return ['code' => 201, 'msg' => '信息不存在', 'data' => ''];
}
Db::startTrans();
try {
//删除封禁
$update = [];
$update['is_delete'] = 2;
$update['update_time'] = time();
$reslut = db::name('block')->where('id', $id)->update($update);
if(!$reslut){
Db::rollback();
return ['code' => 201, 'msg' => '解封失败', 'data' => null];
}
Db::commit();
return ['code' => 200, 'msg' => '解封成功', 'data' => null];
} catch (\Exception $e) {
dump($e);
// 回滚事务
Db::rollback();
return ['code' => 201, 'msg' => '解封失败', 'data' => null];
}
}
//定时任务 房间解禁
public function close_room_unfreeze(){
$now_time = time();
$map = [];
$map[] = ['room_status', '=', 2];
$map[] = ['block_time', '<=', $now_time];
$block_room_list = db::name('room')->where($map)->select();
if($block_room_list){
foreach ($block_room_list as $k => $v){
Db::startTrans();
try {
//解禁房间
$update = [];
$update['room_status'] = 1;
$update['block_time'] = 0;
$update['block_note'] = '';
$update['update_time'] = $now_time;
$reslut = db::name('room')->where('rid', $v['rid'])->update($update);
if(!$reslut){
Db::rollback();
}
//删除解禁记录
$where = [];
$where[] = ['rid', '=', $v['rid']];
$where[] = ['is_delete', '=', 1];
$update = [];
$update['is_delete'] = 2;
$update['update_time'] = $now_time;
$reslut = db::name('room_block_log')->where($where)->update($update);
if(!$reslut){
Db::rollback();
}
Db::commit();
} catch (\Exception $e) {
dump($e);
// 回滚事务
Db::rollback();
}
}
}
return true;
}
//定时任务 用户解禁
public function close_user_unfreeze(){
$now_time = time();
$map = [];
$map[] = ['is_delete', '=', 1];
$map[] = ['block_time', '<=', $now_time];
$block_user_list = db::name('block')->where($map)->select();
if($block_user_list){
foreach ($block_user_list as $k => $v){
Db::startTrans();
try {
if($v['type'] == 2){//解封账号
$map = [];
$map[] = ['user_name', '=', $v['type_text']];
$update = [];
$update['login_status'] = 1;
$update['update_time'] = time();
$reslut = db::name('user')->where($map)->update($update);
if(!$reslut){
Db::rollback();
}
}
//解封记录
$update = [];
$update['is_delete'] = 2;
$update['update_time'] = time();
$reslut = db::name('block')->where('id', $v['id'])->update($update);
if(!$reslut){
Db::rollback();
}
Db::commit();
} catch (\Exception $e) {
dump($e);
// 回滚事务
Db::rollback();
}
}
}
return true;
}
}