| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | <?phpnamespace app\api\controller\company;use app\common\controller\Apic;use app\common\library\Sms;use fast\Random;use think\Config;use think\Validate;use think\Db;/** * 会员接口 */class User extends Apic{    protected $noNeedLogin = ['accountlogin','resetpwd'];    protected $noNeedRight = '*';    //员工手机+密码登录    public function accountlogin(){        $mobile   = $this->request->post('mobile');        $password = $this->request->post('password');        if (!$mobile || !$password) {            $this->error(__('Invalid parameters'));        }        $ret = $this->auth->login($mobile, $password);        if ($ret) {            $data = $this->auth->getUserinfo();            $this->success(__('Logged in successful'), $data);        } else {            $this->error($this->auth->getError());        }    }    /**     * 退出登录     * @ApiMethod (POST)     */    public function logout()    {        if (!$this->request->isPost()) {            $this->error(__('Invalid parameters'));        }        $this->auth->logout();        $this->success(__('Logout successful'));    }    //用户详细资料    public function getUserinfo($type = 1){        $info = $this->auth->getUserinfo();        if($type == 'return'){            return $info;        }        $this->success(__('success'),$info);    }    /**     * 重置密码     *     * @ApiMethod (POST)     * @param string $mobile      手机号     * @param string $captcha     验证码     * @param string $newpassword 新密码     */    public function resetpwd()    {        $mobile      = $this->request->post('mobile');        $captcha     = $this->request->post('captcha');        $newpassword = $this->request->post("newpassword");        if (!$mobile || !$captcha || !$newpassword) {            $this->error(__('Invalid parameters'));        }        //验证Token        if (!Validate::make()->check(['newpassword' => $newpassword], ['newpassword' => 'require|regex:\S{6,30}'])) {            $this->error(__('Password must be 6 to 30 characters'));        }        if (!Validate::regex($mobile, "^1\d{10}$")) {            $this->error(__('Mobile is incorrect'));        }        $user = \app\common\model\CompanyStaff::getByMobile($mobile);        if (!$user) {            $this->error(__('User not found'));        }        $ret = Sms::check($mobile, $captcha, 'resetpwd');        if (!$ret) {            $this->error(__('Captcha is incorrect'));        }        Sms::flush($mobile, 'resetpwd');        //模拟一次登录        $this->auth->direct($user->id);        $ret = $this->auth->resetpwd($newpassword, '', true);        if ($ret) {            $this->success(__('Reset password successful'));        } else {            $this->error($this->auth->getError());        }    }    /**     * 修改会员个人信息     *     * @ApiMethod (POST)     * @param string $avatar   头像地址     * @param string $username 用户名     * @param string $nickname 昵称     * @param string $bio      个人简介     */    public function profile()    {        //检查        $check = Db::name('company')->where('id',$this->auth->id)->find();        if($check['status'] == 1){            $this->success('资料审核通过后需联系客服修改');        }        $field = [            'company_name',            'company_code',            'company_registerdate',            'company_address',            'company_image',            'truename',            'idcard',            'idcard_images',            'bank_name',            'bank_branchname',            'bank_account',            'bank_card',        ];        $data = request_post_hub($field);        $data['status'] = 0;        $update_rs = Db::name('company')->where('id',$this->auth->id)->update($data);        $this->success('资料更新完成');    }}
 |