| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | <?phpnamespace app\admin\controller;use app\admin\AdminBaseController;use app\common\model\AdminModel;use app\common\model\MenuModel;use app\admin\validate\AdminValidate;use think\exception\ValidateException;class Admin extends AdminBaseController{    public function index()    {        return view('', [            'role_list' => AdminModel::ROLE,        ]);    }    public function adminForm()    {        $id          = input('id/d, 0');        $info       = AdminModel::findOrEmpty($id);        $menulist    = MenuModel::where(['mtype' => 'admin', 'status' => 1])->order(['pid' => 'asc', 'priority' => 'asc', 'id' => 'asc'])->select()->toArray();        $powerarr    = [];        $poweridsarr = ($info->powerids == null || empty($info->powerids)) ? [] : explode(",", $info->powerids);        if (!empty($menulist)) {            foreach ($menulist as $k => $v) {                if ($v['pid'] == 0) {                    $v['checked']       = false;                    $v['children']      = [];                    $v['spread']        = true;                    $powerarr[$v['id']] = $v;                } else {                    $v['checked']                      = in_array($v['id'], $poweridsarr);                    $powerarr[$v['pid']]['children'][] = $v;                }            }        }        return view('', [            'info'    => $info,            'powerarr' => json_encode(array_values($powerarr)),        ]);    }    public function editAdmin()    {        $id    = input('id/d');        $vdata = [            'id'         => $id,            'admin_name' => input('admin_name/s'),            'realname'   => input('realname/s'),            'mobile'     => input('mobile/s'),        ];        try {            validate(AdminValidate::class)->check($vdata);        } catch (ValidateException $e) {            ajax_return(1, $e->getError());        }        $password = input('password/s');        $role     = input('role/d', 2);        $powerids = input('powerids/s', "");        if ($role == 1) {            $idsarr   = MenuModel::where(['mtype' => 'admin', 'status' => 1])->order(['pid' => 'asc', 'priority' => 'asc', 'id' => 'asc'])->column('id');            $powerids = implode(",", $idsarr);        }        $data = [            'role'      => $role,            'admin_name' => input('admin_name/s', ""),            'realname'  => input('realname/s', ""),            'mobile'    => input('mobile/s', ""),            'status'    => input('status/d') == 1 ? 1 : 2,            'powerids'  => $powerids,            'remark'    => input('remark', ""),        ];        if (empty($id)) {            $data['password']  = empty($password) ? md5("123456789") : md5($password);            $data['join_date'] = time();            $data['join_ip']   = $_SERVER['SERVER_ADDR'];            $data['last_date'] = time();            $data['last_ip']   = $_SERVER['SERVER_ADDR'];            AdminModel::create($data);        } else {            if (!empty($password)) {                $data['password'] = md5($password);            }            AdminModel::update($data, ['id' => $id]);        }        ajax_return();    }    // 删除管理员    public function delAdmin()    {        $access_admin = session('access_admin');        $password     = input('password');        if ($access_admin['password'] !== md5($password)) {            ajax_return(1, '操作密码验证失败');        }        $id_arr = input('id_arr/a');        if (in_array(1, $id_arr)) {            ajax_return(1, '无法删除超级管理员');        }        AdminModel::destroy($id_arr);        ajax_return();    }    public function listAdmin()    {        $limit      = input('limit');        $page       = input('page');        $map        = [];        $admin_name = input('admin_name');        if (!empty($admin_name)) {            $map['admin_name'] = $admin_name;        }        $realname = input('realname');        if (!empty($realname)) {            $map['realname'] = $realname;        }        $mobile = input('mobile');        if (!empty($mobile)) {            $map['mobile'] = $mobile;        }        $role = input('role');        if (!empty($role)) {            $map['role'] = $role;        }        $list  = AdminModel::where($map)->order('id', 'asc')->limit($limit)->page($page)->append(['status_text', 'role_text'])->select();        $count = AdminModel::where($map)->count();        if ($count == 0) {            ajax_return(1, '未查询到数据');        }        list_return($list, $count);    }    // 个人信息    public function myInfo()    {        $access_admin = session('access_admin');        $admin        = AdminModel::find($access_admin['id']);        return view('', [            'admin' => $admin,        ]);    }    public function editMyInfo()    {        $access_admin = session('access_admin');        AdminModel::update(['realname' => input('realname'), 'mobile' => input('mobile'), 'remark' => input('remark')], ['id' => $access_admin['id']]);        ajax_return();    }    public function myPassword()    {        return view('');    }    public function editMyPassword()    {        $access_admin = session('access_admin');        $oldpassword  = input('oldpassword');        if ($access_admin['password'] !== md5($oldpassword)) {            ajax_return(1, '当前密码不正确');        }        $password   = input('password');        $repassword = input('repassword');        if ($password !== $repassword) {            ajax_return(1, '两次输入的新密码不一致');        }        AdminModel::update(['password' => md5($password)], ['id' => $access_admin['id']]);        session('access_admin', null);        ajax_return();    }}
 |