215 lines
7.0 KiB
PHP
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;
|
|
}
|
|
|
|
|
|
}
|