Files
littleTiger/application/admin/controller/Admin.php
2019-02-28 19:48:21 +08:00

362 lines
11 KiB
PHP

<?php
/**
* tpshop
* ============================================================================
* 版权所有 2015-2027 深圳搜豹网络科技有限公司,并保留所有权利。
* 网站地址: http://www.tp-shop.cn
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
* 不允许对程序代码以任何形式任何目的的再发布。
* 采用最新Thinkphp5助手函数特性实现单字母函数M D U等简写方式
* ============================================================================
* Author: 当燃
* Date: 2015-09-09
*/
namespace app\admin\controller;
use app\common\logic\AdminLogic;
use app\common\logic\ModuleLogic;
use think\Page;
use think\Verify;
use think\Loader;
use think\Db;
use think\Session;
class Admin extends Base {
public function index(){
$list = array();
$keywords = I('keywords/s');
if(empty($keywords)){
$res = D('admin')->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'));
}
}
}