*/ namespace app\controller\wechat; use app\BaseController; use app\service\user\LoginService; use app\util\ReturnCode; use fast\FuncException; use think\App; use think\facade\Env; use think\facade\Request; use think\facade\Session; use think\Response; class Base extends BaseController { private $debug = []; protected $noNeedLogin = []; protected $user = []; public $user_id = ''; // public function __construct() // { // $app = new App(); // parent::__construct($app); // // try { // if(!$this->user){ // $bool = (new LoginService())->userAutologin(); // if($bool){ // $this->user = session('user'); // } // } // if ($this->user){ // $this->user_id = $this->user['id']; // } //// //需要登录接口进行校验 // if (!$this->match($this->noNeedLogin)){ // $this->checklogin(); // } // } catch (\Exception $e) { // return $this->buildFailed($e->getCode() ?: 400,$e->getMessage()); // } // } /** * 关联检测是否包含该请求是否包含该方法 * @param $arr * @return bool */ public function match($arr = []) { $request = Request::instance(); $arr = is_array($arr) ? $arr : explode(',', $arr); if (! $arr) { return false; } $arr = array_map('strtolower', $arr); // 是否存在 if (in_array(strtolower($request->action()), $arr) || in_array('*', $arr)) { return true; } // 没找到匹配 return false; } /** * 用户登录检测 */ public function checkLogin() { $login = new LoginService(); if (!$login->isLogin()){ throw new FuncException('用户未登录',302); } } public function buildSuccess(array $data = [], string $msg = '操作成功', int $code = ReturnCode::SUCCESS): Response { $return = [ 'code' => $code, 'msg' => $msg, 'data' => $data ]; if (Env::get('APP_DEBUG') && $this->debug) { $return['debug'] = $this->debug; } return json($return); } public function buildFailed(int $code, string $msg = '操作失败', array $data = []): Response { $return = [ 'code' => $code, 'msg' => $msg, 'data' => $data ]; if (Env::get('APP_DEBUG') && $this->debug) { $return['debug'] = $this->debug; } return json($return); } protected function debug($data): void { if ($data) { $this->debug[] = $data; } } }