where('admin_id','not in','2,3')->select(); }else{ $res = DB::name('admin')->where('user_name','like','%'.$keywords.'%')->where('admin_id','not in','2,3')->order('admin_id')->select(); } $role = D('admin_role')->getField('role_id,role_name'); if($res && $role){ foreach ($res as $val){ $val['role'] = $role[$val['role_id']]; $val['add_time'] = date('Y-m-d H:i:s',$val['add_time']); $list[] = $val; } } $this->assign('list',$list); return $this->fetch(); } /** * 修改管理员密码 * @return \think\mixed */ public function modify_pwd(){ $admin_id = I('admin_id/d',0); $oldPwd = I('old_pw/s'); $newPwd = I('new_pw/s'); $new2Pwd = I('new_pw2/s'); if($admin_id){ $info = D('admin')->where("admin_id", $admin_id)->find(); $info['password'] = ""; $this->assign('info',$info); } if(IS_POST){ //修改密码 $enOldPwd = encrypt($oldPwd); $enNewPwd = encrypt($newPwd); $admin = M('admin')->where('admin_id' , $admin_id)->find(); if(!$admin || $admin['password'] != $enOldPwd){ exit(json_encode(array('status'=>-1,'msg'=>'旧密码不正确'))); }else if($newPwd != $new2Pwd){ exit(json_encode(array('status'=>-1,'msg'=>'两次密码不一致'))); }else{ $row = M('admin')->where('admin_id' , $admin_id)->save(array('password' => $enNewPwd)); if($row){ exit(json_encode(array('status'=>1,'msg'=>'修改成功'))); }else{ exit(json_encode(array('status'=>-1,'msg'=>'修改失败'))); } } } return $this->fetch(); } public function admin_info(){ $admin_id = I('get.admin_id/d',0); if($admin_id){ $info = Db::name('admin')->where("admin_id", $admin_id)->find(); $info['password'] = ""; $this->assign('info',$info); } $act = empty($admin_id) ? 'add' : 'edit'; $this->assign('act',$act); $role = D('admin_role')->select(); $this->assign('role',$role); return $this->fetch(); } public function adminHandle(){ $data = I('post.'); $adminValidate = Loader::validate('Admin'); if(!$adminValidate->scene($data['act'])->batch()->check($data)){ $this->ajaxReturn(['status'=>-1,'msg'=>'操作失败','result'=>$adminValidate->getError()]); } if(empty($data['password'])){ unset($data['password']); }else{ $data['password'] =encrypt($data['password']); } if($data['act'] == 'add'){ unset($data['admin_id']); $data['add_time'] = time(); $r = D('admin')->add($data); } if($data['act'] == 'edit'){ $r = D('admin')->where('admin_id', $data['admin_id'])->save($data); } if($data['act'] == 'del' && $data['admin_id']>1){ $r = D('admin')->where('admin_id', $data['admin_id'])->delete(); } if($r){ $this->ajaxReturn(['status'=>1,'msg'=>'操作成功','url'=>U('Admin/Admin/index')]); }else{ $this->ajaxReturn(['status'=>-1,'msg'=>'操作失败']); } } /** * 管理员登陆 */ public function login() { if (IS_POST) { $code = I('post.vertify'); $username = I('post.username/s'); $password = I('post.password/s'); $verify = new Verify(); if (!$verify->check($code, "admin_login")) { $this->ajaxReturn(['status' => 0, 'msg' => '验证码错误']); } $adminLogic = new AdminLogic; $return = $adminLogic->login($username, $password); $this->ajaxReturn($return); } if (session('?admin_id') && session('admin_id') > 0) { $this->error("您已登录", U('Admin/Index/index')); } return $this->fetch(); } /** * 退出登陆 */ public function logout() { $adminLogic = new AdminLogic; $adminLogic->logout(session('admin_id')); $this->success("退出成功",U('Admin/Admin/login')); } /** * 验证码获取 */ public function vertify() { $config = array( 'fontSize' => 30, 'length' => 4, 'useCurve' => false, 'useNoise' => false, 'reset' => false ); $Verify = new Verify($config); $Verify->entry("admin_login"); exit(); } public function role(){ $list = D('admin_role')->order('role_id desc')->select(); $this->assign('list',$list); return $this->fetch(); } public function role_info(){ $role_id = I('get.role_id/d'); $detail = array(); if($role_id){ $detail = M('admin_role')->where("role_id",$role_id)->find(); $detail['act_list'] = explode(',', $detail['act_list']); $this->assign('detail',$detail); } $right = M('system_menu')->order('id')->select(); foreach ($right as $val){ if(!empty($detail)){ $val['enable'] = in_array($val['id'], $detail['act_list']); } $modules[$val['group']][] = $val; } //admin权限组 $group = (new ModuleLogic)->getPrivilege(0); $this->assign('group',$group); $this->assign('modules',$modules); return $this->fetch(); } public function roleSave(){ $data = I('post.'); $res = $data['data']; $res['act_list'] = is_array($data['right']) ? implode(',', $data['right']) : ''; if(empty($res['act_list'])) $this->error("请选择权限!"); if(empty($data['role_id'])){ $admin_role = Db::name('admin_role')->where(['role_name'=>$res['role_name']])->find(); if($admin_role){ $this->error("已存在相同的角色名称!"); }else{ $r = D('admin_role')->add($res); } }else{ $admin_role = Db::name('admin_role')->where(['role_name'=>$res['role_name'],'role_id'=>['<>',$data['role_id']]])->find(); if($admin_role){ $this->error("已存在相同的角色名称!"); }else{ $r = D('admin_role')->where('role_id', $data['role_id'])->save($res); } } if($r){ adminLog('管理角色'); $this->success("操作成功!",U('Admin/Admin/role_info',array('role_id'=>$data['role_id']))); }else{ $this->error("操作失败!",U('Admin/Admin/role')); } } public function roleDel(){ $role_id = I('post.role_id/d'); $admin = D('admin')->where('role_id',$role_id)->find(); if($admin){ exit(json_encode("请先清空所属该角色的管理员")); }else{ $d = M('admin_role')->where("role_id", $role_id)->delete(); if($d){ exit(json_encode(1)); }else{ exit(json_encode("删除失败")); } } } public function log(){ $p = I('p/d',1); $logs = DB::name('admin_log')->alias('l')->join('__ADMIN__ a','a.admin_id =l.admin_id')->order('log_time DESC')->page($p.',20')->select(); $this->assign('list',$logs); $count = DB::name('admin_log')->count(); $Page = new Page($count,20); $show = $Page->show(); $this->assign('pager',$Page); $this->assign('page',$show); return $this->fetch(); } /** * 供应商列表 */ public function supplier() { $supplier_count = DB::name('suppliers')->count(); $page = new Page($supplier_count, 10); $supplier_list = DB::name('suppliers') ->alias('s') ->field('s.*,a.admin_id,a.user_name') ->join('__ADMIN__ a','a.suppliers_id = s.suppliers_id','LEFT') ->limit($page->firstRow, $page->listRows) ->select(); $this->assign('list', $supplier_list); $this->assign('pager', $page); return $this->fetch(); } /** * 供应商资料 */ public function supplier_info() { $suppliers_id = I('get.suppliers_id/d', 0); if ($suppliers_id) { $info = DB::name('suppliers') ->alias('s') ->field('s.*,a.admin_id,a.user_name') ->join('__ADMIN__ a','a.suppliers_id = s.suppliers_id','LEFT') ->where(array('s.suppliers_id' => $suppliers_id)) ->find(); $this->assign('info', $info); } $act = empty($suppliers_id) ? 'add' : 'edit'; $this->assign('act', $act); $admin = M('admin')->field('admin_id,user_name')->select(); $this->assign('admin', $admin); return $this->fetch(); } /** * 供应商增删改 */ public function supplierHandle() { $data = I('post.'); $suppliers_model = M('suppliers'); //增 if ($data['act'] == 'add') { unset($data['suppliers_id']); $count = $suppliers_model->where("suppliers_name", $data['suppliers_name'])->count(); if ($count) { $this->error("此供应商名称已被注册,请更换", U('Admin/Admin/supplier_info')); } else { $r = $suppliers_model->insertGetId($data); if (!empty($data['admin_id'])) { $admin_data['suppliers_id'] = $r; M('admin')->where(array('suppliers_id' => $admin_data['suppliers_id']))->save(array('suppliers_id' => 0)); M('admin')->where(array('admin_id' => $data['admin_id']))->save($admin_data); } } } //改 if ($data['act'] == 'edit' && $data['suppliers_id'] > 0) { $r = $suppliers_model->where('suppliers_id',$data['suppliers_id'])->save($data); if (!empty($data['admin_id'])) { $admin_data['suppliers_id'] = $data['suppliers_id']; $suppliers = $suppliers_model->where('suppliers_id',$data['suppliers_id'])->find(); $admin_data['city_id'] = $suppliers['city_id']; $admin_data['province_id'] = $suppliers['province_id']; M('admin')->where(array('admin_id' => $data['admin_id']))->save($admin_data); } } //删 if ($data['act'] == 'del' && $data['suppliers_id'] > 0) { $r = $suppliers_model->where('suppliers_id', $data['suppliers_id'])->delete(); M('admin')->where(array('suppliers_id' => $data['suppliers_id']))->save(array('suppliers_id' => 0)); if($r){ respose(1); }else{ respose('删除失败'); } } if ($r !== false) { $this->success("操作成功", U('Admin/Admin/supplier')); } else { $this->error("操作失败", U('Admin/Admin/supplier')); } } }