254 lines
9.1 KiB
PHP
254 lines
9.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* 首页控制器.
|
|
*/
|
|
|
|
namespace app\admin\controller;
|
|
|
|
use gmars\rbac\Rbac;
|
|
class Index extends Base
|
|
{
|
|
// 后台总体框架
|
|
public function index()
|
|
{
|
|
// 获取管理员相关数据信息
|
|
$uid = session('user_id');
|
|
$admin_data = db('admins')->field('user_avatar, google_secret')->where('id', $uid)->find();
|
|
// 获取管理员的权限
|
|
$menu_list = $this->getAdminMeunList();
|
|
$pay_money = 0;
|
|
if ($this->role_name == '平台管理员') {
|
|
$paltform = db('groups')->where('admin_id', $uid)->field('money')->find();
|
|
$pay_money = isset($paltform['money']) ? $paltform['money'] : 0;
|
|
}
|
|
if ($this->role_name == '组长') {
|
|
$organize = db('organize')->where('admin_id', $uid)->field('money')->find();
|
|
$pay_money = isset($organize['money']) ? $organize['money'] : 0;
|
|
}
|
|
$this->assign([
|
|
'admin_img' => $admin_data['user_avatar'],
|
|
'admin_name' => session('user_name'),
|
|
'menu_one' => $menu_list['menu_one'],
|
|
'menu_two' => $menu_list['menu_two'],
|
|
'role_name' => session('role_name'),
|
|
'pay_money' => $pay_money,
|
|
'ga_android' => config('ga_android'),
|
|
'ga_ios' => config('ga_ios'),
|
|
'google_secret' => $admin_data['google_secret'] ? 1 : 0,
|
|
]);
|
|
|
|
return $this->fetch('/index');
|
|
}
|
|
|
|
// 后台默认首页
|
|
public function indexPage()
|
|
{
|
|
if ($this->role_name == '组长')
|
|
{
|
|
$this->redirect(url('Users/index'));
|
|
}
|
|
$now_date = date('Y-m-d');
|
|
|
|
//获取当日咨询信息
|
|
if ($this->is_root) {
|
|
$data = db('now_data')->where('now_date', $now_date)->select();
|
|
$data['is_talking'] = 0;
|
|
$data['in_queue'] = 0;
|
|
$data['online_kf'] = 0;
|
|
$data['success_in'] = 0;
|
|
$data['total_in'] = 0;
|
|
$data['order_num'] = 0;
|
|
$data['money_total'] = 0;
|
|
foreach ($data as $vo) {
|
|
$data['is_talking'] += $vo['is_talking'];
|
|
$data['in_queue'] += $vo['in_queue'];
|
|
$data['online_kf'] += $vo['online_kf'];
|
|
$data['success_in'] += $vo['success_in'];
|
|
$data['total_in'] += $vo['total_in'];
|
|
$data['order_num'] += $vo['order_num'];
|
|
$data['money_total'] += $vo['money_total'];
|
|
}
|
|
} elseif($this->role_name == '平台管理员') {
|
|
$data = db('now_data')->where('now_date', $now_date)->where($this->where)->find();
|
|
}
|
|
|
|
//无当日信息 初始化数据
|
|
if (empty($data)) {
|
|
$data['is_talking'] = 0;
|
|
$data['in_queue'] = 0;
|
|
$data['online_kf'] = 0;
|
|
$data['success_in'] = 0;
|
|
$data['total_in'] = 0;
|
|
$data['order_num'] = 0;
|
|
$data['money_total'] = 0;
|
|
}
|
|
// dump($this->where);return;
|
|
|
|
// 生成从 8点 到 22点的时间数组
|
|
$dateLine = array_map(function ($vo) {
|
|
if ($vo < 10) {
|
|
return '0'.$vo;
|
|
} else {
|
|
return $vo;
|
|
}
|
|
}, range(8, 22));
|
|
|
|
// 初始化数据
|
|
$line = [];
|
|
foreach ($dateLine as $key => $vo) {
|
|
$line[$vo] = [
|
|
'is_talking' => 0,
|
|
'in_queue' => 0,
|
|
'success_in' => 0,
|
|
'order_num' => 0,
|
|
'money_total' => 0,
|
|
];
|
|
}
|
|
|
|
// 对时间线进行赋值
|
|
$dbData = db('service_data')->where('add_date', $now_date)->where($this->where)->group('add_hour')->select();
|
|
// var_dump($line);
|
|
foreach ($dbData as $k => $v) {
|
|
$check_is_time_line = array_key_exists($v['add_hour'], $line);
|
|
if (!$check_is_time_line) {
|
|
continue;
|
|
}
|
|
$line[$v['add_hour']]['is_talking'] = $v['is_talking'];
|
|
$line[$v['add_hour']]['in_queue'] = $v['in_queue'];
|
|
$line[$v['add_hour']]['success_in'] = $v['success_in'];
|
|
$line[$v['add_hour']]['total_in'] = $v['total_in'];
|
|
$line[$v['add_hour']]['order_num'] = $v['order_num'];
|
|
$line[$v['add_hour']]['money_total'] = $v['money_total'];
|
|
}
|
|
// dump($dbData);
|
|
|
|
$showData = [];
|
|
foreach ($line as $key => $vo) {
|
|
$showData['is_talking'][] = $vo['is_talking'];
|
|
// $showData['in_queue'][] = $vo['in_queue'];
|
|
$showData['success_in'][] = $vo['success_in'];
|
|
// $showData['total_in'][] = $vo['total_in'];
|
|
$showData['order_num'][] = $vo['order_num'];
|
|
$showData['money_total'][] = $vo['money_total'];
|
|
}
|
|
// dump($showData);return;
|
|
$this->assign([
|
|
'data' => $data,
|
|
'show_data' => json_encode($showData),
|
|
]);
|
|
|
|
return $this->fetch('index');
|
|
}
|
|
|
|
// 清除缓存
|
|
public function clear()
|
|
{
|
|
if (false === removeDir(RUNTIME_PATH)) {
|
|
return json(['code' => -1, 'data' => '', 'msg' => '清除缓存失败']);
|
|
}
|
|
|
|
return json(['code' => 1, 'data' => '', 'msg' => '清除缓存成功']);
|
|
}
|
|
|
|
// 修改管理员密码
|
|
public function changePassword()
|
|
{
|
|
if (request()->isPost()) {
|
|
$param = input('post.');
|
|
$reLogin = false;
|
|
|
|
if (empty($param['old_pwd']) && !empty($param['password'])) {
|
|
return json(['code' => -2, 'data' => '', 'msg' => '请输入旧密码']);
|
|
}
|
|
|
|
if (!empty($param['old_pwd']) && empty($param['password'])) {
|
|
return json(['code' => -3, 'data' => '', 'msg' => '请输入新密码']);
|
|
}
|
|
|
|
if ($param['password'] != $param['password_c']) {
|
|
return json(['code' => -3, 'data' => '', 'msg' => '两次密码不一致']);
|
|
}
|
|
|
|
if (!empty($param['old_pwd']) && !empty($param['password'])) {
|
|
$rule = '/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,15}$/';
|
|
|
|
if (!preg_match($rule, $param['password'])) {
|
|
return json(['code' => -2, 'data' => '', 'msg' => '密码必须是6-15位的字母和数字组成!']);
|
|
}
|
|
|
|
$userInfo = db('admins')->where('id', session('user_id'))->find();
|
|
|
|
if (empty($userInfo)) {
|
|
return json(['code' => -4, 'data' => '', 'msg' => '管理员不存在']);
|
|
}
|
|
|
|
if (!password_verify($param['old_pwd'], $userInfo['password'])) {
|
|
return json(['code' => -1, 'data' => '', 'msg' => '旧密码错误']);
|
|
}
|
|
|
|
$info['password'] = password_hash($param['password'], PASSWORD_DEFAULT);
|
|
$reLogin = true;
|
|
}
|
|
|
|
db('admins')->where('id', session('user_id'))->setField('password', $info['password']);
|
|
|
|
return json(['code' => 1, 'data' => $reLogin, 'msg' => '修改信息成功']);
|
|
}
|
|
}
|
|
|
|
//修改管理员头像
|
|
public function changeImg()
|
|
{
|
|
if (request()->isPost()) {
|
|
$param = input('post.');
|
|
|
|
if (empty($param['user_avatar'])) {
|
|
return json(['code' => 0, 'data' => $param, 'msg' => '上传头像不能为空']);
|
|
}
|
|
|
|
$result = db('admins')->where('id', session('user_id'))->setField('user_avatar', $param['user_avatar']);
|
|
|
|
if (!$result) {
|
|
return json(['code' => 1, 'data' => '', 'msg' => '头像修改失败,请重新上传']);
|
|
}
|
|
|
|
return json(['code' => 2, 'data' => '', 'msg' => '修改头像成功']);
|
|
}
|
|
}
|
|
|
|
// 上传管理员头像
|
|
public function upAvatar()
|
|
{
|
|
if (request()->isAjax()) {
|
|
$file = request()->file('file');
|
|
if (!empty($file)) {
|
|
$fileInfo = $file->getInfo();
|
|
/*if($fileInfo['size'] > 1024 * 1024 * 2){
|
|
// 上传失败获取错误信息
|
|
return json( ['code' => -2, 'data' => '', 'msg' => '文件超过2M'] );
|
|
}*/
|
|
|
|
//检测图片格式
|
|
$ext = explode('.', $fileInfo['name']);
|
|
$ext = array_pop($ext);
|
|
|
|
$extArr = explode('|', 'jpg|png|gif|jpeg');
|
|
if(!in_array($ext, $extArr)){
|
|
return json(['code' => -3, 'data' => '', 'msg' => '只能上传jpg|png|gif|jpeg的文件']);
|
|
}
|
|
// 移动到框架应用根目录/public/uploads/ 目录下
|
|
$info = $file->move(ROOT_PATH.'public'.DS.'uploads'.DS.'avatar');
|
|
if ($info) {
|
|
$src = config('img_take_prefix').'/uploads/avatar'.'/'.date('Ymd').'/'.$info->getFilename();
|
|
|
|
return json(['code' => 0, 'data' => ['src' => $src], 'msg' => 'ok']);
|
|
} else {
|
|
// 上传失败获取错误信息
|
|
return json(['code' => -1, 'data' => '', 'msg' => $file->getError()]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|