Landing.php 5.31 KB
<?php
/**
 * tpshop
 * ============================================================================
 * 版权所有 2015-2027 深圳搜豹网络科技有限公司,并保留所有权利。
 * 网站地址: http://www.tp-shop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * Author: 当燃
 * Date: 2015-09-09
 */

namespace app\manager\controller;

use think\Page;
use think\Verify;
use think\Db;
use think\Session;

class Landing extends Base
{
    /**
     * 管理员登陆
     */
    public function login()
    {
        if (session('?manager_id') && session('manager_id') > 0) {
            $this->error("您已登录", U('manager/Index/index'));
        }

        if (IS_POST) {
            $verify = new Verify();
            if (!$verify->check(I('post.vertify'), "admin_login")) {
                exit(json_encode(array('status' => 0, 'msg' => '验证码错误')));
            }
            $condition['manager_name'] = I('post.username/s');
            $condition['password'] = I('post.password/s');
            if (!empty($condition['manager_name']) && !empty($condition['password'])) {
                $condition['password'] = encrypt($condition['password']);
                $admin_info = M('manager_admin')->join(PREFIX . 'manager_role', PREFIX . 'manager_admin.manager_role_id=' . PREFIX . 'manager_role.manager_role_id', 'INNER')->where($condition)->find();
                if (is_array($admin_info)) {
                    session('manager_id', $admin_info['manager_id']);
                    session('act_list', $admin_info['manager_act_list']);
                    M('manager_admin')->where("manager_id = " . $admin_info['manager_id'])->save(array('EditDate' => time(),'EditIP' => getIP()));
                    session('last_login_time', time());
                    session('last_login_ip', getIP());
                    setcookie('manager_id',$admin_info['manager_id']);
                    //exit(json_encode(array('status'=>0,'msg'=>'888')));
                    adminLog('后台登录');
                    $url = session('from_url') ? session('from_url') : U('manager/Index/index');
                    exit(json_encode(array('status' => 1, 'url' => $url)));
                } else {
                    exit(json_encode(array('status' => 0, 'msg' => '账号密码不正确')));
                }
            } else {
                exit(json_encode(array('status' => 0, 'msg' => '请填写账号密码')));
            }
        }

        return $this->fetch();
    }

    /**
     * 退出登陆
     */
    public function logout()
    {
        session_unset();
        session_destroy();
        session::clear();
        $this->success("退出成功", U('manager/Landing/login'));
    }

    /**
     * 验证码获取
     */
    public function vertify()
    {
        $config = array(
            'fontSize' => 30,
            'length' => 4,
            'useCurve' => false,
            'useNoise' => false,
            'reset' => false
        );
        $errorCorrectionLevel = "L"; // 纠错级别:
        ob_end_clean();
        $Verify = new Verify($config);
        $Verify->entry("admin_login");
    }

    /**
     * 修改管理员密码
     * @return \think\mixed
     */
    public function modify_pwd()
    {
        $manager_id = I('manager_id/d', 0);
        $oldPwd = I('old_pw/s');
        $newPwd = I('new_pw/s');
        $new2Pwd = I('new_pw2/s');

        if ($manager_id) {
            $info = D('manager_admin')->where("manager_id", $manager_id)->find();
            $info['password'] = "";
            $this->assign('info', $info);
        }

        if (IS_POST) {
            //修改密码
            $enOldPwd = encrypt($oldPwd);
            $enNewPwd = encrypt($newPwd);
            $manager = M('manager_admin')->where('manager_id', $manager_id)->find();
            if (!$manager || $manager['password'] != $enOldPwd) {
                exit(json_encode(array('status' => -1, 'msg' => '旧密码不正确')));
            } else if ($newPwd != $new2Pwd) {
                exit(json_encode(array('status' => -1, 'msg' => '两次密码不一致')));
            } else {
                $row = M('manager_admin')->where('manager_id', $manager_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 forget_pwd()
    {
        return $this->fetch();
    }


    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')->where('1=1')->count();
        $Page = new Page($count, 20);
        $show = $Page->show();
        $this->assign('pager', $Page);
        $this->assign('page', $show);
        return $this->fetch();
    }

}