select(); View::assign([ 'group' => $group ]); return View::fetch(); } // 角色添加 public function groupadd() { if (Request::isPost()) { $data['group_name'] = trim(input('post.group_name')); if (!$data['group_name']) { return json(['code' => 1, 'msg' => '角色名称不能为空']); } $data['status'] = (int) trim(input('post.status')); $data['create_time'] = time(); $menus = input('post.menu/a'); if ($menus) { $data['rights'] = json_encode(array_keys($menus)); } $res = Db::table('yz_admin_user_group')->insert($data); if (!$res) { return json(['code' => 1, 'msg' => '添加角色失败']); } return json(['code' => 0, 'msg' => '添加成功']); } else { $menus = Db::table('yz_admin_sys_menu')->order('type,sort desc')->where('status', '=', 1)->select(); $menu = []; // 先处理所有父菜单 foreach ($menus as $menus_v) { if ($menus_v['parent_id'] == 0) { $menu[$menus_v['smid']] = $menus_v; $menu[$menus_v['smid']]['children'] = []; // 初始化 children 数组 } } // 再处理子菜单 foreach ($menus as $menus_v) { if ($menus_v['parent_id'] != 0 && isset($menu[$menus_v['parent_id']])) { $menu[$menus_v['parent_id']]['children'][] = $menus_v; } } View::assign([ 'menus' => $menu ]); return View::fetch(); } } // 角色编辑 public function groupedit() { if (Request::isPost()) { $group_id = (int) trim(input('post.group_id')); $data['group_name'] = trim(input('post.group_name')); if (!$data['group_name']) { return json(['code' => 1, 'msg' => '角色名称不能为空']); } $data['status'] = (int) trim(input('post.status')); $menus = input('post.menu/a'); if ($menus) { $data['rights'] = json_encode(array_keys($menus)); } else { $data['rights'] = ''; } $res = Db::table('yz_admin_user_group')->where('group_id', $group_id)->update($data); if (!$res) { return json(['code' => 1, 'msg' => '更新角色失败']); } return json(['code' => 0, 'msg' => '更新成功']); } else { $group_id = (int) input('get.group_id'); $group = Db::table('yz_admin_user_group')->where('group_id', $group_id)->find(); if ($group && $group['rights']) { $group['rights'] = json_decode($group['rights']); } $menus = Db::table('yz_admin_sys_menu')->order('type,sort desc')->where('status', '=', 1)->select(); $menu = []; // 先处理所有父菜单 foreach ($menus as $menus_v) { if ($menus_v['parent_id'] == 0) { $menu[$menus_v['smid']] = $menus_v; $menu[$menus_v['smid']]['children'] = []; // 初始化 children 数组 } } // 再处理子菜单 foreach ($menus as $menus_v) { if ($menus_v['parent_id'] != 0 && isset($menu[$menus_v['parent_id']])) { $menu[$menus_v['parent_id']]['children'][] = $menus_v; } } View::assign([ 'group' => $group, 'menus' => $menu ]); return View::fetch(); } } // 角色删除 public function groupdel() { $group_id = (int) input('post.group_id'); $res = Db::table('yz_admin_user_group')->where('group_id', $group_id)->delete(); if (empty($res)) { return json(['code' => 1, 'msg' => '删除角色失败']); } return json(['code' => 0, 'msg' => '删除成功']); } // 管理员列表 public function userinfo() { $lists = Db::table('yz_admin_user')->select(); $group = []; $groups = Db::table('yz_admin_user_group')->select(); foreach ($groups as $key => $value) { $group[$value['group_id']] = $value; } View::assign([ 'lists' => $lists, 'group' => $group ]); return View::fetch(); } // 管理员添加 public function useradd() { if (Request::isPost()) { $data['account'] = trim(input('post.account')); if (empty($data['account'])) { return json(['code' => 1, 'msg' => '账号不能为空']); } $pattern = "/^([0-9A-Za-z-_.]+)@([0-9a-z]+.[a-z]{2,3}(.[a-z]{2})?)$/i"; if (!preg_match($pattern, $data['account'])) { return json(['code' => 1, 'msg' => '邮箱格式不正确']); } $item = Db::table('yz_admin_user')->where('account', $data['account'])->find(); if ($item) { return json(['code' => 1, 'msg' => '该账号已存在']); } $data['name'] = trim(input('post.name')); $data['phone'] = trim(input('post.phone')); $data['qq'] = (int) trim(input('post.qq')); $data['group_id'] = (int) input('post.group_id'); $data['sex'] = (int) (input('post.sex')); $data['status'] = (int) (input('post.status')); $password = trim(input('post.password')); if (empty($data['name'])) { return json(['code' => 1, 'msg' => '姓名不能为空']); } if (empty($data['phone'])) { return json(['code' => 1, 'msg' => '手机号不能为空']); } if (empty($data['group_id'])) { return json(['code' => 1, 'msg' => '请选择角色']); } if (empty($password)) { return json(['code' => 1, 'msg' => '密码不能为空']); } else { $data['password'] = md5($password); } $data['create_time'] = time(); $data['update_time'] = time(); $res = Db::table('yz_admin_user')->insert($data); if (!$res) { return json(['code' => 1, 'msg' => '添加管理员失败']); } return json(['code' => 0, 'msg' => '添加成功']); } else { $group = []; $groups = Db::table('yz_admin_user_group')->select(); foreach ($groups as $key => $value) { $group[$value['group_id']] = $value; } View::assign([ 'group' => $group ]); return View::fetch(); } } // 管理员编辑 public function useredit() { if (Request::isPost()) { $uid = (int) trim(input('post.uid')); $data['name'] = trim(input('post.name')); $data['phone'] = trim(input('post.phone')); $data['qq'] = (int) trim(input('post.qq')); $data['group_id'] = (int) input('post.group_id'); $data['sex'] = (int) (input('post.sex')); $data['status'] = (int) (input('post.status')); if (empty($data['name'])) { return json(['code' => 1, 'msg' => '姓名不能为空']); } if (empty($data['phone'])) { return json(['code' => 1, 'msg' => '手机号不能为空']); } if (empty($data['group_id'])) { return json(['code' => 1, 'msg' => '请选择角色']); } // 保存用户 $res = Db::table('yz_admin_user')->where('uid', $uid)->update($data); if (!$res) { return json(['code' => 1, 'msg' => '更新管理员信息失败']); } return json(['code' => 0, 'msg' => '更新成功']); } else { $uid = (int) input('get.uid'); // 加载管理员 $lists = Db::table('yz_admin_user')->where('uid', $uid)->find(); // 加载角色 $group = []; $groups = Db::table('yz_admin_user_group')->select(); foreach ($groups as $key => $value) { $group[$value['group_id']] = $value; } View::assign([ 'lists' => $lists, 'group' => $group ]); return View::fetch(); } } // 管理员删除 public function userdel() { $uid = (int) input('post.uid'); $res = Db::table('yz_admin_user')->where('uid', $uid)->delete(); if (empty($res)) { return json(['code' => 1, 'msg' => '删除管理员失败']); } return json(['code' => 0, 'msg' => '删除成功']); } // 管理员信息 public function admininfo() { if (Request::isPost()) { $find = Db::table('yz_admin_user')->where('uid', $this->adminId)->find(); if (empty($find)) { return json(['code' => 1, 'msg' => '当前账户不存在']); } $data['name'] = trim(input('post.name')); $data['phone'] = trim(input('post.phone')); $data['qq'] = (int) trim(input('post.qq')); $data['sex'] = (int) (input('post.sex')); if (empty($data['name'])) { return json(['code' => 1, 'msg' => '姓名不能为空']); } if (empty($data['phone'])) { return json(['code' => 1, 'msg' => '手机号不能为空']); } // 处理密码修改 $old_pw = trim(input('post.old_pw')); $new_pw = trim(input('post.new_pw')); if (!empty($old_pw) && !empty($new_pw)) { if (md5($old_pw) != $find['password']) { return json(['code' => 1, 'msg' => '原密码错误']); } $data['password'] = md5($new_pw); } // 保存用户 $res = Db::table('yz_admin_user')->where('uid', $this->adminId)->update($data); if (!$res) { return json(['code' => 1, 'msg' => '更新管理员信息失败']); } return json(['code' => 0, 'msg' => '更新成功']); } else { return View::fetch(); } } //banner管理 public function banner() { return View::fetch(); } // banner列表 public function bannerlist() { if (Request::isGet()) { $page = input('page', 1); $limit = input('limit', 10); $query = Db::table('yz_banner') ->where('delete_time', null) ->field('id, title, image, url, sort, create_time, update_time'); // 获取总记录数 $count = $query->count(); // 获取分页数据 $lists = $query->order(['sort DESC', 'id DESC']) ->page($page, $limit) ->select() ->toArray(); // 处理数据 foreach ($lists as &$item) { $item['create_time'] = $item['create_time'] ? date('Y-m-d H:i:s', $item['create_time']) : ''; $item['update_time'] = $item['update_time'] ? date('Y-m-d H:i:s', $item['update_time']) : ''; } return json([ 'code' => 0, 'msg' => '', 'count' => $count, 'data' => $lists ]); } return json(['code' => 1, 'msg' => '请求方法无效']); } // 添加banner public function banneradd() { if (Request::isPost()) { $data = [ 'title' => input('post.title'), 'image' => input('post.image'), 'url' => input('post.url'), 'sort' => input('post.sort', 0), 'status' => 1, 'create_time' => time() ]; $res = Db::table('yz_banner')->insert($data); if (!$res) { return json(['code' => 1, 'msg' => '添加Banner失败']); } return json(['code' => 0, 'msg' => '添加成功']); } return json(['code' => 1, 'msg' => '请求方法无效']); } // 编辑banner public function banneredit() { if (Request::isPost()) { $id = input('post.id'); if (empty($id)) { return json(['code' => 1, 'msg' => 'ID不能为空']); } $data = [ 'title' => input('post.title'), 'image' => input('post.image'), 'url' => input('post.url'), 'sort' => input('post.sort', 0), 'update_time' => time() ]; $res = Db::table('yz_banner')->where('id', $id)->update($data); if ($res === false) { return json(['code' => 1, 'msg' => '更新Banner失败']); } return json(['code' => 0, 'msg' => '更新成功']); } return json(['code' => 1, 'msg' => '请求方法无效']); } // 删除banner public function bannerdel() { if (Request::isPost()) { $id = input('post.id'); if (empty($id)) { return json(['code' => 1, 'msg' => 'ID不能为空']); } $res = Db::table('yz_banner')->where('id', $id)->update(['delete_time' => time()]); if (!$res) { return json(['code' => 1, 'msg' => '删除Banner失败']); } return json(['code' => 0, 'msg' => '删除成功']); } return json(['code' => 1, 'msg' => '请求方法无效']); } // 修改banner状态 public function bannerstatus() { if (Request::isPost()) { $id = input('post.id'); $status = input('post.status'); if (empty($id)) { return json(['code' => 1, 'msg' => 'ID不能为空']); } $res = Db::table('yz_banner')->where('id', $id)->update(['status' => $status]); if ($res === false) { return json(['code' => 1, 'msg' => '更新状态失败']); } return json(['code' => 0, 'msg' => '更新成功']); } return json(['code' => 1, 'msg' => '请求方法无效']); } }