123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- namespace app\abutment\middleware;
- use app\abutment\model\SupplierRelationUser;
- use app\abutment\model\SupplierUser;
- use think\facade\Cache;
- use think\facade\Config;
- use think\facade\Validate;
- use think\Response;
- use app\abutment\model\RequestLog as RequestLogModel;
- class apiMiddleware
- {
-
- private $white_list = ['login','getuserinfo'];
-
- public function handle($request, \Closure $next)
- {
-
- $request->request_id = date('YmdHis') . mt_rand(100000, 999999);
-
- $param = $request->post();
-
- if (!in_array(strtolower(request()->pathinfo()), $this->white_list)) {
-
- $user = $this->getUserInfo($param);
- if (is_array($user)) $request->user = $user;
- else return $user;
- }
-
- RequestLogModel::add($request->request_id, $param);
- return $next($request);
- }
-
- public function end(Response $response)
- {
-
- RequestLogModel::where('request_id', request()->request_id)->save([
- 'response' => $response->getContent(),
- 'supplierNo' => request()->user['supplierNo'] ?? '',
- 'uid' => request()->user['uid'] ?? 0,
-
- ]);
- }
-
-
- public function getUserInfo(array $param = [])
- {
-
-
-
-
-
- $val = Validate::rule(['token|用户token' => 'require|length:40|alphaNum']);
- if (!$val->check($param)) return json_show(101, '参数错误,' . $val->getError());
- $val2 = Validate::rule(['supplierNo|供应商编码' => 'require|length:18|alphaNum']);
- if (!$val2->check($param)) return json_show(1004, '参数错误,' . $val2->getError());
- $data = Cache::get(Config::get('redis_key.user_info_token') . $param['token']);
- $data = json_decode($data, true);
- if (!$data) return json_show(102, 'token已过期');
- $res = SupplierRelationUser::field('id,supplierNo,supplierName')
- ->where(['is_del' => SupplierUser::$is_del_normal, 'supplierNo' => $param['supplierNo'], 'uid' => $data['uid']])
- ->findOrEmpty()
- ->toArray();
- if (empty($res)) return json_show(1004, '你尚未绑定当前供应商');
- return array_merge($data, ['supplierNo' => $param['supplierNo'], 'supplierName' => $res['supplierName']]);
- }
- }
|