// +---------------------------------------------------------------------- namespace App\Http\Controllers\Api; use App\Helpers\Jwt; use App\Http\Controllers\BaseController; use App\Models\MemberModel; use App\Services\ConfigService; use App\Services\RedisService; use Illuminate\Support\Facades\DB; /** * 控制器基类 * @since 2020/11/10 * Class BaseController * @package App\Http\Controllers */ class webApp extends BaseController { // 模型 protected $model; // 服务 protected $service; // 校验 protected $validate; // 登录ID protected $userId = 0; // 司机ID protected $driverId = 0; // 登录信息 protected $userInfo = []; /** * 构造函数 * @author wesmiler * @since 2020/11/10 * Backend constructor. */ public function __construct() { parent::__construct(); // 初始化分页参数 $this->initConfig(); // 登录检测中间件 $this->middleware('api.sign'); // 初始化登录信息 $this->middleware(function ($request, $next) { // 授权用户数据 $userId = $request->headers->get('token_uid'); $userId = $userId? $userId : 0; // 登录验证 $userInfo = RedisService::get("caches:auths:info:{$userId}"); if(empty($userInfo) && $userId){ $this->initLogin($userId); }else{ $this->userId = $userId; $this->userInfo = $userInfo; } return $next($request); }); } /** * 初始化配置 * @author laravel开发员 * @since 2020/11/10 */ public function initConfig() { // 请求参数 $this->param = \request()->input(); // 分页基础默认值 defined('PERPAGE') or define('PERPAGE', isset($this->param['limit']) ? $this->param['limit'] : 20); defined('PAGE') or define('PAGE', isset($this->param['page']) ? $this->param['page'] : 1); } /** * 登录验证 * @param $userId 用户ID * @return * @author wesmiler * @since 2020/8/31 */ public function initLogin($userId) { // 登录用户ID $this->userId = $userId; // 登录用户信息 if ($userId) { $memberModel = new MemberModel(); $userInfo = $memberModel->getInfo($this->userId); $this->userInfo = $userInfo; RedisService::set("caches:auths:info:{$userId}", $this->userInfo, 7*24*3600); } } /** * 获取数据列表 * @return mixed * @since 2020/11/11 * @author wesmiler */ public function index() { $result = $this->service->getList(); return $result; } /** * 获取数据详情 * @return mixed * @since 2020/11/11 * @author wesmiler */ public function info() { $result = $this->service->info(); return $result; } /** * 添加或编辑 * @return mixed * @since 2020/11/11 * @author wesmiler */ public function edit() { $result = $this->service->edit(); return $result; } /** * 删除数据 * @return mixed * @since 2020/11/11 * @author wesmiler */ public function delete() { $result = $this->service->delete(); return $result; } /** * 设置状态 * @return mixed * @since 2020/11/21 * @author wesmiler */ public function status() { $result = $this->service->status(); return $result; } }