物联网后台管理
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

896 lines
35 KiB

<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\Request;
class Administrator extends Base
{
public function _initialize()
{
// parent::_initialize(); // TODO: Change the autogenerated stub
if (!session('root')) {
$this->error('亲,您还没有登录呢!', '/');
}
}
public function quit()
{
session(null);
$this->redirect('/');
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/////////以下为页面跳转函数/////////////
////////////////////////////////////////
//主页
public function index()
{
$name = $value = session('name');
$device = Db::table('bs_device_map')->select();
$this->assign('name', $name);
$this->assign('dev', $device);
// dump($device);
return $this->fetch();
}
//统计页面
public function statistics()
{
return $this->fetch();
}
//我的桌面
public function welcome()
{
$data = $value = session('name');
$this->assign('data', $data);
return $this->fetch();
}
//管理员列表
public function admin_list()
{
return $this->fetch();
}
//用户列表
public function user_list()
{
return $this->fetch();
}
//设备总览
public function device()
{
$device = Db::table('bs_device_map')->select();
for ($i = 0; $i < count($device); $i++) {
$device[$i]['all'] = Db::table('bs_device_serial' )->where('type',$device[$i]['function']) ->count();
$device[$i]['error'] = Db::table('bs_device_' . $device[$i]['function'])->where('status', 0)->count();
}
$this->assign('dev', $device);
return $this->fetch();
}
// 列表中所有设备共用模板函数
public function device_list()
{
$request = Request::instance();
$device = $request->get();
// dump($device);
$this->assign('dev', $device);
return $this->fetch();
}
// 日志记录
public function log()
{
return $this->fetch();
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
//////////以下为功能函数////////////////
////////////////////////////////////////
//将所有固定表中的ID重新排序
public function resort()
{
// 重新排序bs_people表
Db::execute("ALTER TABLE bs_people DROP id;");
Db::execute("alter table bs_people add id int(11) not null auto_increment primary key first;");
// 重新排序bs_user表
Db::execute("ALTER TABLE bs_user DROP id;");
Db::execute("alter table bs_user add id int(11) not null auto_increment primary key first;");
// 重新排序bs_administrator表
Db::execute("ALTER TABLE bs_administrator DROP id;");
Db::execute("alter table bs_administrator add id int(11) not null auto_increment primary key first;");
// 重新排序bs_device_map表
Db::execute("ALTER TABLE bs_device_map DROP id;");
Db::execute("alter table bs_device_map add id int(11) not null auto_increment primary key first;");
// 重新排序bs_device_serial表
Db::execute("ALTER TABLE bs_device_serial DROP id;");
Db::execute("alter table bs_device_serial add id int(11) not null auto_increment primary key first;");
}
//停用、恢复 管理员
public function banAdmin(Request $request)
{
$receive = $request->post();
$flag1 = false;
$flag2 = false;
if ($receive['type'] == 'true') {
$flag1 = Db::table('bs_administrator')->where('account', $receive['account'])->update(['status' => 1]);
} else {
$flag2 = Db::table('bs_administrator')->where('account', $receive['account'])->update(['status' => 0]);
}
if ($flag1 || $flag2) {
if ($flag1) {
$this->logInsert('停用管理员:' . $receive['account']);
};
if ($flag2) {
$this->logInsert('恢复管理员:' . $receive['account']);
}
return 'ok';
} else {
return '后台数据发生错误,请联系后台管理员';
}
}
// 禁用用户
public function banUser(Request $request)
{
$receive = $request->post();
$flag1 = false;
$flag2 = false;
if ($receive['type'] == 'true') {
$flag1 = Db::table('bs_user')->where('uid', $receive['uid'])->update(['status' => 1]);
} else {
$flag2 = Db::table('bs_user')->where('uid', $receive['uid'])->update(['status' => 0]);
}
if ($flag1 || $flag2) {
if ($flag1) {
$this->logInsert('冻结用户:' . $receive['uid']);
};
if ($flag2) {
$this->logInsert('恢复用户:' . $receive['uid']);
}
return 'ok';
} else {
return '后台数据传输错误,请联系后台管理员';
}
}
// 禁用设备ID对应的设备
public function banDev(Request $request)
{
$data = $request->post();
$flag1 = false;
$flag2 = false;
//根据设备名获得对应的标识符
$deviceName = (Db::table('bs_device_map')->where('chinese', $data['deviceName'])->find())['function'];
//在对应的数据库表中将该设备ID的状态更新
if ($data['type'] == 'true') {
$flag1 = Db::table('bs_device_' . $deviceName)->where('serial_num', $data['serial_num'])->update(['status' => 1]);
} else {
$flag2 = Db::table('bs_device_' . $deviceName)->where('serial_num', $data['serial_num'])->update(['status' => 0]);
}
if ($flag1 || $flag2) {
return 'ok';
} else {
return '后台数据传输错误,请联系后台管理员';
}
}
//单个删除管理员
public function delAdmin(Request $request)
{
$receive = $request->post();
// 从总账户表中删除该管理员
$flag1 = Db::table('bs_administrator')->where('account', $receive['account'])->delete();
// 从管理员表中删除该管理员
$flag2 = Db::table('bs_people')->where('name', $receive['account'])->delete();
$this->resort();
if ($flag1 && $flag2) {
$this->logInsert('删除管理员:' . $receive['account']);
return 'ok';
} else {
if (!$flag1) {
return 'ERROR1';
};
if (!$flag2) {
return 'ERROR2';
}
}
}
//单个删除用户
public function delUser(Request $request)
{
$receive = $request->post();
// 在用户表中删除该用户
$flag1 = Db::table('bs_user')->where('uid', $receive['uid'])->delete();
// 在用户设备统计表中删除该用户
$flag2 = Db::table('bs_device')->where('uid', $receive['uid'])->delete();
// 在总账户表中删除该用户
$flag3 = Db::table('bs_people')->where('name', $receive['uid'])->delete();
// 判断接收到的指令是否要删除该用户与设备的绑定信息,如果是则遍历每个设备绑定信息表删除
if ($receive['more']) {
$deviceName = Db::table('bs_device_map')->field('function')->select();
for ($i = 0; $i < count($deviceName); $i++) {
$devArr[] = $deviceName[$i]['function'];
};
for ($i = 0; $i < count($devArr); $i++) {
Db::table('bs_device_' . $devArr[$i])->where('uid', $receive['uid'])->delete();
}
}
$this->resort();
if ($flag1 && $flag2 && $flag3) {
if ($receive['more']) {
$this->logInsert('删除用户:' . $receive['uid'] . ' 并解除与之绑定的所有设备');
} else {
$this->logInsert('删除用户:' . $receive['uid']);
};
return 'ok';
} else {
if (!$flag1) {
return 'ERROR1';
};
if (!$flag2) {
return 'ERROR2';
};
if (!$flag3) {
return 'ERROR3';
};
}
}
//单个删除设备ID绑定信息
public function delDev(Request $request)
{
$receive = $request->post();
//获得该设备名所对应的设备标识符名称
$deviceName = (Db::table('bs_device_map')->where('chinese', $receive['deviceName'])->field('function')->find())['function'];
//获得该设备ID对应的用户名
$uid = (Db::table('bs_device_' . $deviceName)->where('serial_num', $receive['serial_num'])->find())['uid'];
//去对应的设备列表中按照序列号删除设备
$flag = Db::table('bs_device_' . $deviceName)->where('serial_num', $receive['serial_num'])->delete();
//更新用户设备表中该用户拥有该设备的数量
$num = Db::table('bs_device_' . $deviceName)->where('uid', $uid)->count();
Db::table('bs_device')->where('uid', $uid)->update([$deviceName => $num]);
if ($flag) {
$this->logInsert('在' . $receive['deviceName'] . '类型设备中删除设备ID:' . $receive['serial_num'] . ' 与用户:' . $uid . '的绑定信息');
return 'ok';
} else {
return '后台数据异常,请联系后台管理员';
}
}
//单个删除设备ID
public function delDevID(Request $request)
{
$receive = $request->post();
//判断该设备是否已绑定
if ($receive['flag'] == 'true') {
//获得该设备ID所对应的设备标识符名称
$deviceName = (Db::table('bs_device_serial')->where('serial_num', $receive['serial_num'])->find())['type'];
//获得该设备ID对应的用户名
$uid = (Db::table('bs_device_' . $deviceName)->where('serial_num', $receive['serial_num'])->find())['uid'];
//去对应的设备详细信息列表中按照序列号删除该设备ID的相关信息
Db::table('bs_device_data_' . $deviceName)->where('serial_num', $receive['serial_num'])->delete();
//去对应的设备列表中按照序列号解绑
Db::table('bs_device_' . $deviceName)->where('serial_num', $receive['serial_num'])->delete();
//更新用户设备表中该用户拥有该设备的数量
$num = Db::table('bs_device_' . $deviceName)->where('uid', $uid)->count();
Db::table('bs_device')->where('uid', $uid)->update([$deviceName => $num]);
}
//去对应的设备序列号列表中删除该设备ID
$flag = Db::table('bs_device_serial')->where('serial_num', $receive['serial_num'])->delete();
$this->resort();
if ($flag) {
$this->logInsert('删除设备ID:' . $receive['serial_num'] . ',设备类型为:' . $receive['type']);
return 'ok';
} else {
return '后台数据异常,请联系后台管理员';
}
}
//批量删除管理员
public function delAllAdmin(Request $request)
{
$receive = $request->post();
// dump($receive);
// die;
$len = count($receive['account']);
for ($i = 0; $i < $len; $i++) {
// 删除管理员表中的账号
$flag1 = Db::table('bs_administrator')->where('account', $receive['account'][$i])->delete();
// 删除总账号表中的账户
$flag2 = Db::table('bs_people')->where('name', $receive['account'][$i])->delete();
};
$this->resort();
if ($flag1 && $flag2) {
$log = '批量删除管理员:' . $receive['log'];
$this->logInsert($log);
return 'ok';
} else {
if (!$flag1) {
return 'ERROR1';
};
if (!$flag2) {
return 'ERROR2';
}
}
}
//批量删除用户
public function delAllUser(Request $request)
{
$receive = $request->post();
// dump($data);
$len = count($receive['uid']);
// 获得要匹配的设备循环遍历信息
$deviceName = Db::table('bs_device_map')->field('function')->select();
for ($j = 0; $j < count($deviceName); $j++) {
$devArr[] = $deviceName[$j]['function'];
};
// 遍历每个用户uid
for ($i = 0; $i < $len; $i++) {
$flag = Db::table('bs_user')->where('uid', $receive['uid'][$i])->delete();
if (!$flag) {
break;
}
Db::table('bs_people')->where('name', $receive['uid'][$i])->delete();
Db::table('bs_device')->where('uid', $receive['uid'][$i])->delete();
// 判断是否需要同时删除该用户与设备的绑定信息
if ($receive['more']) {
for ($k = 0; $k < count($devArr); $k++) {
Db::table('bs_device_' . $devArr[$k])->where('uid', $receive['uid'][$i])->delete();
}
}
}
$this->resort();
if ($flag) {
if ($receive['more']) {
$this->logInsert('批量删除用户:' . $receive['log'] . '并解除与之绑定的设备信息');
} else {
$this->logInsert('批量删除用户:' . $receive['log']);
}
return 'ok';
} else {
return '后台数据异常,请联系管理员';
}
}
//批量删除设备ID绑定信息
public function delAllDev(Request $request)
{
$receive = $request->post();
//获得该设备名所对应的设备标识符名称
$deviceName = (Db::table('bs_device_map')->where('chinese', $receive['deviceName'])->field('function')->find())['function'];
$len = count($receive['serial_num']);
for ($i = 0; $i < $len; $i++) {
//获得该设备ID对应的用户名
$uid = (Db::table('bs_device_' . $deviceName)->where('serial_num', $receive['serial_num'][$i])->find())['uid'];
$flag = Db::table('bs_device_' . $deviceName)->delete($receive['serial_num'][$i]);
if (!$flag) {
break;
}
//更新用户设备表中该用户拥有该设备的数量
$num = Db::table('bs_device_' . $deviceName)->where('uid', $uid)->count();
Db::table('bs_device')->where('uid', $uid)->update([$deviceName => $num]);
}
if ($flag) {
$serialStr = implode(",", $receive['serial_num']);
$this->logInsert('批量删除' . $receive['deviceName'] . '类型设备中设备ID:' . $serialStr . '与对应的用户:' . $receive['log'] . '的绑定信息');
return 'ok';
} else {
return '后台数据异常,请联系管理员';
}
}
//后台返回管理员json数据
public function adminMsg()
{
$request = Request::instance();
$receive = $request->get();
// dump($receive);
// 判断请求类型是初始化数据表(true)还是搜索数据表(false)
$flag = count($receive) > 2 ? false : true;
//dump($flag);
if ($flag) {
$num = Db::table('bs_administrator')->count();
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
$cate_list = Db::table("bs_administrator")->field('password', true)->limit($start, $limit)->select();
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $cate_list;
if (empty($cate_list)) {
$list["code"] = 1;
$list["msg"] = "暂无数据";
}
return json($list);
} else {
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
switch ($receive['choose']) {
case '账号':
$result = Db::table("bs_administrator")->where('account', $receive['message'])->field('password', true)->limit($start, $limit)->select();
$num = Db::table("bs_administrator")->where('account', $receive['message'])->field('password', true)->count();
break;
case '手机号':
$result = Db::table("bs_administrator")->where('tel', $receive['message'])->field('password', true)->limit($start, $limit)->select();
$num = Db::table("bs_administrator")->where('tel', $receive['message'])->field('password', true)->count();
break;
case '邮箱':
$result = Db::table("bs_administrator")->where('email', $receive['message'])->field('password', true)->limit($start, $limit)->select();
$num = Db::table("bs_administrator")->where('email', $receive['message'])->field('password', true)->count();
break;
}
// dump($result);
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $result;
if (empty($result)) {
$list["code"] = 1;
switch ($receive['choose']) {
case '账号':
$list["msg"] = "未找到账号" . $receive['message'] . "的相关数据";
break;
case '手机号':
$list["msg"] = "未找到手机号" . $receive['message'] . "的相关数据";
break;
case '邮箱':
$list["msg"] = "未找到邮箱" . $receive['message'] . "的相关数据";
break;
}
}
return json($list);
}
}
//后台返回用户json数据
public function userMsg()
{
$request = Request::instance();
$receive = $request->get();
// dump($receive);
// 判断请求类型是初始化数据表(true)还是搜索数据表(false)
$flag = count($receive) > 2 ? false : true;
// dump($flag);
if ($flag) {
$num = Db::table('bs_user')->count();
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
$cate_list = Db::table("bs_user")->field('password', true)->limit($start, $limit)->select();
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $cate_list;
if (empty($cate_list)) {
$list["code"] = 1;
$list["msg"] = "暂无数据";
}
return json($list);
} else {
// dump($receive['message']);
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
switch ($receive['choose']) {
case '用户名':
$result = Db::table("bs_user")->where('uid', $receive['message'])->field('password', true)->limit($start, $limit)->select();
$num = Db::table("bs_user")->where('uid', $receive['message'])->field('password', true)->count();
break;
case '手机号':
$result = Db::table("bs_user")->where('tel', $receive['message'])->field('password', true)->limit($start, $limit)->select();
$num = Db::table("bs_user")->where('tel', $receive['message'])->field('password', true)->count();
break;
case '邮箱':
$result = Db::table("bs_user")->where('email', $receive['message'])->field('password', true)->limit($start, $limit)->select();
$num = Db::table("bs_user")->where('email', $receive['message'])->field('password', true)->count();
break;
}
// dump($result);
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $result;
if (empty($result)) {
$list["code"] = 1;
switch ($receive['choose']) {
case '用户名':
$list["msg"] = "未找到用户名" . $receive['message'] . "的相关数据";
break;
case '手机号':
$list["msg"] = "未找到手机号" . $receive['message'] . "的相关数据";
break;
case '邮箱':
$list["msg"] = "未找到邮箱" . $receive['message'] . "的相关数据";
break;
}
}
return json($list);
}
}
//后台返回各设备列表json数据
public
function deviceMsg()
{
$request = Request::instance();
$receive = $request->get();
// dump($receive);
// 判断请求类型是初始化数据表(true)还是搜索数据表(false)
$flag = count($receive) > 3 ? false : true;
// dump($flag);
//获得该设备名所对应的设备标识符名称
$deviceName = (Db::table('bs_device_map')->where('chinese', $receive['deviceName'])->field('function')->find())['function'];
if ($flag) {
$num = Db::table('bs_device_' . $deviceName)->count();
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
$cate_list = Db::table("bs_device_" . $deviceName)->limit($start, $limit)->select();
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $cate_list;
if (empty($cate_list)) {
$list["code"] = 1;
$list["msg"] = '暂无' . $receive['deviceName'] . '设备的相关数据';
}
return json($list);
} else {
// dump($receive['message']);
// dump($deviceName);
// dump($receive['choose']);
// die;
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
switch ($receive['choose']) {
case '1':
$result = Db::table("bs_device_" . $deviceName)->where('uid', $receive['message'])->limit($start, $limit)->select();
$num = Db::table("bs_device_" . $deviceName)->where('uid', $receive['message'])->count();
break;
case '2':
$result = Db::table("bs_device_" . $deviceName)->where('serial_num', $receive['message'])->limit($start, $limit)->select();
$num = Db::table("bs_device_" . $deviceName)->where('serial_num', $receive['message'])->count();
break;
case '3':
$result = Db::table("bs_device_" . $deviceName)->where('area', 'like', "%" . $receive['message'] . "%")->limit($start, $limit)->select();
$num = Db::table("bs_device_" . $deviceName)->where('area', 'like', "%" . $receive['message'] . "%")->count();
break;
default :
$result = '';
$num = 0;
}
// dump($result);
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $result;
if (empty($result)) {
$list["code"] = 1;
switch ($receive['choose']) {
case '1':
$list["msg"] = "未找到用户" . $receive['message'] . "的相关数据";
break;
case '2':
$list["msg"] = "暂无设备" . $receive['message'] . "的相关数据";
break;
case '3':
$list["msg"] = "暂无" . $receive['message'] . "地区的相关数据";
break;
}
}
return json($list);
}
}
// 验证输入的二级密码是否正确
public function log_verify(Request $request)
{
$receive = $request->post();
// dump($receive);
// die;
$week = $receive['week'];
$year = $receive['year'];
$day = $receive['day'];
$hour = $receive['hour'];
$month = $receive['month'];
$logPwd = '';
$option = [$week, $year, $day, $hour, $month];
// dump($option);
for ($i = 0; $i < count($receive['numArr']); $i++) {
// dump($receive['numArr'][$i]);
$logPwd = $logPwd . $option[$receive['numArr'][$i]];
}
if ($receive['logInput'] == $logPwd) {
return 'ok';
} else {
return '校验码错误,请重新输入';
}
}
// 后台返回序列号json数据
public function serialMsg()
{
$request = Request::instance();
$receive = $request->get();
// dump($receive);
// 判断请求类型是初始化数据表(true)还是搜索数据表(false)
$flag = count($receive) > 2 ? false : true;
// dump($flag);
if ($flag) {
$num = Db::table('bs_device_serial')->count();
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
$cate_list = Db::table("bs_device_serial")->limit($start, $limit)->select();
for ($i = 0; $i < count($cate_list); $i++) {
// 查询该设备ID的绑定信息
if (Db::table('bs_device_' . $cate_list[$i]['type'])->where('serial_num', $cate_list[$i]['serial_num'])->find()) {
$cate_list[$i]['status'] = '已绑定';
} else {
$cate_list[$i]['status'] = '未绑定';
}
// 将查询到的设备识别符后面添加其对应的中文
$cate_list[$i]['type'] = (Db::table('bs_device_map')->where('function', $cate_list[$i]['type'])->find())['chinese'] . ' ' . $cate_list[$i]['type'];
};
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $cate_list;
if (empty($cate_list)) {
$list["code"] = 1;
$list["msg"] = '暂无日志数据';
}
return json($list);
} else {
// dump($receive);
// die;
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
switch ($receive['choose']) {
// 设备ID
case '1':
$result = Db::table("bs_device_serial")->where('serial_num', $receive['message'])->limit($start, $limit)->select();
$num = Db::table("bs_device_serial")->where('serial_num', $receive['message'])->count();
for ($i = 0; $i < count($result); $i++) {
// 查询该设备ID的绑定信息
if (Db::table('bs_device_' . $result[$i]['type'])->where('serial_num', $result[$i]['serial_num'])->find()) {
$result[$i]['status'] = '已绑定';
} else {
$result[$i]['status'] = '未绑定';
}
// 将查询到的设备识别符后面添加其对应的中文
$result[$i]['type'] = (Db::table('bs_device_map')->where('function', $result[$i]['type'])->find())['chinese'] . ' ' . $result[$i]['type'];
};
break;
// 设备类型
case '2':
// 查询中文
$resCN = Db::table('bs_device_map')->where('chinese', 'like', '%' . $receive['message'] . '%')->find();
// 查询英文
$resEN = Db::table('bs_device_map')->where('function', 'like', '%' . $receive['message'] . '%')->find();
if ($resCN) {
$res = $resCN['function'];
} elseif ($resEN) {
$res = $resEN['function'];
} else {
$res = '';
}
$result = Db::table("bs_device_serial")->where('type', $res)->limit($start, $limit)->select();
$num = Db::table("bs_device_serial")->where('type', $res)->count();
if ($result) {
for ($i = 0; $i < count($result); $i++) {
// 查询该设备ID的绑定信息
if (Db::table('bs_device_' . $result[$i]['type'])->where('serial_num', $result[$i]['serial_num'])->find()) {
$result[$i]['status'] = '已绑定';
} else {
$result[$i]['status'] = '未绑定';
}
// 将查询到的设备识别符后面添加其对应的中文
$result[$i]['type'] = (Db::table('bs_device_map')->where('function', $result[$i]['type'])->find())['chinese'] . ' ' . $result[$i]['type'];
};
}
break;
default :
$result = '';
$num = 0;
}
// dump($result);
// die;
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $result;
if (empty($result)) {
$list["code"] = 1;
switch ($receive['choose']) {
case '1':
$list["msg"] = "未找序列号为:" . $receive['message'] . "的设备";
break;
case '2':
$list["msg"] = "未找到" . $receive['message'] . "类型的设备";
break;
}
}
return json($list);
}
}
//后台返回日志json数据
public function logMsg()
{
$request = Request::instance();
$receive = $request->get();
// dump($receive);
// 判断请求类型是初始化数据表(true)还是搜索数据表(false)
$flag = count($receive) > 2 ? false : true;
// dump($flag);
if ($flag) {
$num = Db::table('bs_log')->count();
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
$cate_list = Db::table("bs_log")->order('id desc')->limit($start, $limit)->select();
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $cate_list;
if (empty($cate_list)) {
$list["code"] = 1;
$list["msg"] = '暂无日志数据';
}
return json($list);
} else {
// dump($receive['findTime']);
// die;
$page = input("get.page") ? input("get.page") : 1;
$page = intval($page);
$limit = input("get.limit") ? input("get.limit") : 1;
$limit = intval($limit);
$start = $limit * ($page - 1);
//分页查询
switch ($receive['choose']) {
// 时间
case '1':
// 分隔获得的时间字符串
$findTime = explode(' - ', $receive['findTime']);
$result = Db::table("bs_log")->where('time', 'between time', [$findTime[0], $findTime[1]])->order('id desc')->limit($start, $limit)->select();
$num = Db::table("bs_log")->where('time', 'between time', [$findTime[0], $findTime[1]])->count();
break;
// 操作
case '2':
$result = Db::table("bs_log")->where('operation', 'like', '%' . $receive['message'] . '%')->order('id desc')->limit($start, $limit)->select();
$num = Db::table("bs_log")->where('operation', 'like', '%' . $receive['message'] . '%')->count();
break;
// 操作人员
case '3':
$result = Db::table("bs_log")->where('who', 'like', "%" . $receive['message'] . "%")->order('id desc')->limit($start, $limit)->select();
$num = Db::table("bs_log")->where('who', 'like', "%" . $receive['message'] . "%")->count();
break;
default :
$result = '';
$num = 0;
}
// dump($result);
$list["msg"] = "";
$list["code"] = 0;
$list["count"] = $num;
$list["data"] = $result;
if (empty($result)) {
$list["code"] = 1;
switch ($receive['choose']) {
case '1':
$list["msg"] = "未找到" . $receive['findTime'] . "之间的相关数据";
break;
case '2':
$list["msg"] = "暂无与" . $receive['message'] . "相关的操作";
break;
case '3':
$list["msg"] = "暂无" . $receive['message'] . "操作人员的相关数据";
break;
}
}
return json($list);
}
}
//批量新增测试数据
// public function test()
// {
// $data = [
// ['id' => '10', 'account' => 'tes1', 'password' => '123456', 'tel' => '133131111111', 'email' => 'test@test.com'],
// ['id' => '11', 'account' => 'tes2', 'password' => '123456', 'tel' => '133131111111', 'email' => 'test@test.com'],
// ['id' => '12', 'account' => 'tes3', 'password' => '123456', 'tel' => '133131111111', 'email' => 'test@test.com'],
//
// ];
// Db::table('bs_administrator')->insertAll($data);
// }
// public function test()
// {
// return $this->fetch();
// }
}