// +---------------------------------------------------------------------- namespace App\Http\Controllers\Admin; use App\Helpers\Jwt; use App\Http\Controllers\BaseController; use App\Models\UserModel; use App\Models\StoreModel; /** * 后台控制器基类 * @author laravel开发员 * @since 2020/11/10 * Class Backend * @package App\Http\Controllers */ class Backend extends BaseController { // 模型 protected $model; // 服务 protected $service; // 校验 protected $validate; // 登录ID protected $userId; // user.id protected $memberId; // 商家关联的用户ID // 登录信息 protected $userInfo; // 请求参数 protected $param; // 店铺ID protected $storeId; /** * 构造函数 * @author laravel开发员 * @since 2020/11/10 * Backend constructor. */ public function __construct() { parent::__construct(); // 初始化配置 $this->initConfig(); // 登录检测中间件 $this->middleware('user.login'); // 初始化登录信息 $this->middleware(function ($request, $next) { // 请求头信息 $token = $request->headers->get('Authorization'); $token = str_replace("Bearer ", null, $token); // JWT解密token $jwt = new Jwt(); $userId = $jwt->verifyToken($token); // 登录验证 $this->initLogin($userId); 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 laravel开发员 * @since 2020/8/31 */ public function initLogin($userId) { // 登录用户ID $this->userId = $userId; // 登录用户信息 if ($userId) { $adminModel = new UserModel(); $userInfo = $adminModel->getInfo($this->userId); $this->userInfo = $userInfo; $storeModel = new StoreModel(); // 通过 user.user_id(member ID)查询关联的商家 $memberId = $userInfo['user_id'] ?? 0; $storeInfo = $memberId > 0 ? $storeModel->getInfoByUserId($memberId) : null; $this->storeId = $storeInfo ? $storeInfo['id'] : 0; $this->memberId = $storeInfo ? $storeInfo['user_id'] : 0; } } /** * 获取数据列表 * @return mixed * @since 2020/11/11 * @author laravel开发员 */ public function index() { $result = $this->service->getList(); return $result; } /** * 获取数据详情 * @return mixed * @since 2020/11/11 * @author laravel开发员 */ public function info() { $result = $this->service->info(); return $result; } /** * 添加或编辑 * @return mixed * @since 2020/11/11 * @author laravel开发员 */ public function edit() { $result = $this->service->edit(); return $result; } /** * 删除数据 * @return mixed * @since 2020/11/11 * @author laravel开发员 */ public function delete() { $result = $this->service->delete(); return $result; } /** * 设置状态 * @return mixed * @since 2020/11/21 * @author laravel开发员 */ public function status() { $result = $this->service->status(); return $result; } }