// +---------------------------------------------------------------------- namespace App\Http\Controllers\Api; use App\Http\Controllers\BaseController; use App\Models\UserModel; use App\Services\RedisService; /** * 仓管手机端控制器基类 * @since 2020/11/10 * @package App\Http\Controllers */ class stockApp extends BaseController { // 模型 protected $model; // 服务 protected $service; // 校验 protected $validate; // 登录ID protected $userId = 0; // 仓管用户ID protected $stockId = 0; // 登录信息 protected $userInfo = []; /** * 构造函数 * @author wesmiler * @since 2020/11/10 * Backend constructor. */ public function __construct() { parent::__construct(); // 初始化分页参数 $this->initConfig(); // 初始化登录信息 $this->middleware(function ($request, $next) { // 授权用户数据 $id = $request->headers->get('token_sid'); $id = $id? $id : 0; // 登录验证 $info = RedisService::get("auths:stockInfo:{$id}"); if(empty($info) && $id){ $this->initLogin($id); }else{ $this->stockId = $id; $this->userId = isset($info['id'])? $info['id'] : 0; $this->userInfo = $info; } 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($id) { // 登录用户ID $this->stockId = $id; // 登录用户信息 if ($id) { $info = UserModel::where(['id'=> $this->stockId,'mark'=>1]) ->select(['id','username','nickname','mobile','realname','status']) ->first(); $this->stockId = isset($info['id'])? $info['id'] : 0; $this->userInfo = $info? $info->toArray() : []; RedisService::set("auths:stockInfo:{$id}", $this->userInfo, 3*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; } }