| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 | <?phpnamespace app\mobile\controller;use app\common\model\FeedbackModel;use app\common\model\NoticeModel;use app\common\model\UserModel;use app\mobile\MobileBaseController;use app\mobile\validate\UserValidate;use think\App;use think\exception\ValidateException;use think\facade\View;class My extends MobileBaseController{    private $_user = null;    public function __construct(App $app)    {        parent::__construct($app);        $this->_user = get_user();        View::assign('user', $this->_user);    }    public function index()    {        return view();    }    public function info()    {        return view();    }    public function infoPost()    {        $data = input('post.');        $edit = ['avatar', 'nickname', 'gender', 'birthday'];        try {            validate(UserValidate::class)->check($data);        } catch (ValidateException $e) {            ajax_return(1, $e->getError());        }        //账号验证        if (empty($this->_user['account'])) {            empty($data['account']) && ajax_return(1, '请填写账号');            $check = UserModel::where('account', $data['account'])->find();            if (!empty($check)) {                ajax_return(1, '该账号已存在');            }            $edit[] = 'account';        }        foreach ($edit as $v) {            $this->_user->$v = $data[$v];        }        $this->_user->save();        ajax_return();    }    public function password()    {        return view();    }    public function passwordPost()    {        $new_password   = input('post.new_password');        $renew_password = input('post.renew_password');        if ($new_password != $renew_password) {            ajax_return(1, '两次密码不一致');        }        if (preg_match("/^(?![^a-zA-Z]+$)(?!\D+$).{6,}$/", $new_password) === false) {            ajax_return(1, '密码必须大于6位,且包括字母和数字');        }        if (!empty($this->_user['password'])) {            $old_password = input('post.old_password');            if (md5(md5($this->_user->salt) . $new_password) != $old_password) {                ajax_return(1, '旧密码错误');            }        }        $this->_user->salt     = rand_str();        $this->_user->password = md5(md5($this->_user->salt) . $new_password);        $this->_user->save();        ajax_return();    }    public function mobile()    {        return view();    }    public function mobilePost()    {        $param = input('post.');        empty($param['mobile']) && ajax_return(1, '请输入手机号');        empty($param['verify']) && ajax_return(1, '请输入验证码');        //验证码校验        if (config('mobile.sms_verify_expire') > 0) {            $verify_expire = session('mobile.login.verify_expire');            if ($verify_expire + config('mobile.sms_verify_expire') < time()) {                session('mobile.login.verify', null);                session('mobile.login.verify_expire', null);                ajax_return(1, '验证码已过期');            }        }        $verify = session('mobile.login.verify');        if ($verify != $param['verify']) {            ajax_return(1, '验证码不正确');        }        $check = UserModel::where('mobile', $param['mobile'])->find();        if (!empty($check)) {            ajax_return(1, '该手机号已绑定');        }        $this->_user->mobile = $param['mobile'];        $this->_user->save();        ajax_return();    }    public function auth()    {        return view();    }    public function authPost()    {        if (!in_array($this->_user['is_auth'], [UserModel::AUTH_UN, UserModel::AUTH_REJECT])) {            ajax_return(1, '当前状态无法提交');        }        $data = [];        foreach (UserModel::MOBILE_EDIT_ALLOW as $v) {            $data[$v] = input("post.{$v}");        }        try {            validate([                'realname'         => 'require',                'idcard'           => 'require|idCard',                'idcard_front_pic' => 'require',                'idcard_back_pic'  => 'require',            ], [                'realname'         => '请填写真实姓名',                'idcard'           => '身份证格式错误',                'idcard_front_pic' => '请上传身份证(头像页)',                'idcard_back_pic'  => '请上传身份证(国徽页)',            ])->check($data);        } catch (ValidateException $e) {            ajax_return(1, $e->getError());        }        $data['is_auth'] = UserModel::AUTH_WAIT;        UserModel::update($data, ['id' => $this->_user['id']], UserModel::MOBILE_EDIT_ALLOW);        ajax_return();    }    public function about()    {        return view();    }    public function notice()    {        return view();    }    public function listNotice()    {        $list = NoticeModel::where('status', NoticeModel::STATUS_PUBLISH)            ->order(['priority' => 'desc', 'update_time' => 'desc'])            ->limit(input('limit', 10))            ->page(input('page', 1))            ->select();        ajax_success($list);    }    public function noticeDetail()    {        $id = input('id/d', 0);        empty($id) && jump('该消息不存在');        $info = NoticeModel::where('status', NoticeModel::STATUS_PUBLISH)->find($id);        empty($info) && jump('该消息不存在');        return view('', [            'info' => $info,        ]);    }    public function feedback()    {        return view();    }    public function feedbackPost()    {        $param            = input('param.');        $param['user_id'] = $this->_user['id'];        FeedbackModel::create($param);        ajax_return();    }}
 |