site_id = request()->siteid(); if (empty($this->site_id)) { $this->site_id = input("site_id", 0); request()->siteid($this->site_id); } $this->assign('app_module', $this->app_module); // 加载自定义图标库 $diy_view = new DiyViewModel(); $diy_icon_url = $diy_view->getIconUrl()[ 'data' ]; $this->assign('load_diy_icon_url', $diy_icon_url); } /** * 登录首页 * @return mixed */ public function login() { $site_id = request()->siteid(); $config_model = new ConfigModel(); $config_info = $config_model->getCaptchaConfig(); $config = $config_info[ 'data' ][ 'value' ]; $this->assign('shop_login', $config[ 'shop_login' ]); if (request()->isAjax()) { $username = input("username", ''); $password = input("password", ''); $login_module = input("login_module", 'shop'); $user_model = new UserModel(); if ($config[ "shop_login" ] == 1) { $captcha_result = $this->checkCaptcha(); //验证码 if ($captcha_result[ "code" ] != 0) { return $captcha_result; } } $result = $user_model->login($username, $password, $login_module, $site_id); return $result; } else { $this->assign("menu_info", [ 'title' => "登录" ]); //平台配置信息 $site_model = new Site(); $shop_info = $site_model->getSiteInfo([ [ 'site_id', '=', $site_id ] ], 'site_name,logo,seo_keywords,seo_description, create_time'); $this->assign("shop_info", $shop_info[ 'data' ]); $this->assign('domain', $_SERVER[ 'SERVER_NAME' ]); //加载版权信息 $copyright = $config_model->getCopyright(); $this->assign('copyright', $copyright[ 'data' ][ 'value' ]); //获取其他端 访问二维码 $addon = []; $resultData = []; if (addon_is_exit('mobileshop', $site_id)) { $config_model = new \addon\mobileshop\model\Config(); $addon[ 'mobileshop' ] = $config_model->getMShopDomainName($site_id); $addon[ 'weapp' ] = $config_model->getWeappConfig($site_id); if ($addon[ 'mobileshop' ][ 'code' ] == 0 && !empty($addon[ 'mobileshop' ][ 'data' ])) { $path = 'upload/qrcode/shop' . '/'; $name = "shop_qrcode_" . $site_id . '_' . 'mobileshop' . '.png'; $filename = $path . $name; if (!file_exists($path)) { mkdir($path, intval('0755', 8), true); } if (!file_exists($filename)) { $url = $addon[ 'mobileshop' ][ 'data' ][ 'value' ][ 'domain_name_mobileshop' ]; QRcodeExtend::png($url, $filename, 'L', 4, 1); } $resultData[ 0 ][ 'message' ] = 'H5端'; $resultData[ 0 ][ 'img' ] = $filename; } if ($addon[ 'weapp' ][ 'code' ] == 0 && !empty($addon[ 'weapp' ][ 'data' ][ 'value' ]) && !empty($addon[ 'weapp' ][ 'data' ][ 'value' ][ 'qrcode' ])) { $resultData[ 1 ][ 'message' ] = '小程序端'; $resultData[ 1 ][ 'img' ] = $addon[ 'weapp' ][ 'data' ][ 'value' ][ 'qrcode' ]; } } // 验证码 $captcha = $this->captcha()[ 'data' ]; $this->assign('site_id', $site_id); $this->assign("captcha", $captcha); $this->assign('port_data', $resultData); $config_model = new ConfigModel(); $base = $config_model->getStyle($this->site_id); $this->assign('base', $base); if (addon_is_exit('store', $this->site_id)) { $store_list = ( new Store() )->getStoreList([ [ 'site_id', '=', $this->site_id ] ], 'store_name,store_id')[ 'data' ]; $this->assign('store_list', $store_list); $this->assign('store_is_exit', 1); } return $this->fetch("login/login"); } } /** * 退出操作 */ public function logout() { $site_id = request()->siteid(); $user_model = new UserModel(); $login_module = $user_model->loginModule($this->app_module, $site_id); $user_model->clearLogin($login_module, $site_id); $this->redirect(url("shop/login/login")); } /** * 验证码 */ public function captcha() { $captcha_data = ThinkCaptcha::create(null, true); $captcha_id = md5(uniqid(null, true)); // 验证码10分钟有效 Cache::set($captcha_id, $captcha_data[ 'code' ], 600); return success(0, '', [ 'id' => $captcha_id, 'img' => $captcha_data[ 'img' ] ]); } /** * 验证码验证 */ public function checkCaptcha() { $captcha = input('captcha', ''); $captcha_id = input('captcha_id', ''); if (empty($captcha)) return error(-1, '请输入验证码'); $captcha_data = Cache::pull($captcha_id); if (empty($captcha_data)) return error('', '验证码已失效'); if ($captcha != $captcha_data) return error(-1, '验证码错误'); return success(); } /** * 清理缓存 */ public function clearCache() { Cache::clear(); return success('', '缓存更新成功', ''); } /** * 修改密码 * */ public function modifyPassword() { if (request()->isAjax()) { $site_id = request()->siteid(); $user_model = new UserModel(); $uid = $user_model->uid($this->app_module, $site_id); $old_pass = input('old_pass', ''); $new_pass = input('new_pass', '123456'); $condition = [ [ 'uid', '=', $uid ], [ 'password', '=', data_md5($old_pass) ], [ 'site_id', '=', $site_id ] ]; $res = $user_model->modifyAdminUserPassword($condition, $new_pass); return $res; } } }