123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- namespace app\kefuapi\validate;
-
-
- use app\common\basics\Validate;
- use app\common\model\Admin;
- use app\common\model\kefu\Kefu;
- use app\common\model\kefu\KefuSession;
- use app\common\model\shop\ShopAdmin;
-
-
- class TokenValidate extends Validate
- {
- protected $rule = [
- 'token' => 'require|valid|chat',
- ];
-
-
-
- protected function valid($token, $other, $data)
- {
- $session = KefuSession::where(['token' => $token])->find();
- if (empty($session)) {
- return '会话失效,请重新登录';
- }
- if ($session['expire_time'] <= time()) {
- return '登录超时,请重新登录';
- }
- return true;
- }
-
-
-
-
- protected function chat($token, $other, $data)
- {
- $kefu = (new Kefu())->alias('k')
- ->join('kefu_session ks', 'k.id = ks.kefu_id')
- ->where(['ks.token' => $token, 'k.del' => 0])
- ->field('k.*,ks.token,ks.client')
- ->hidden(['password'])
- ->findOrEmpty();
-
- if ($kefu->isEmpty()) {
- return '用户不存在';
- }
-
-
- if ($kefu['shop_id'] > 0) {
- $kefu_admin = (new ShopAdmin())->where(['id' => $kefu['admin_id']])->findOrEmpty();
- } else {
- $kefu_admin = (new Admin())->where(['id' => $kefu['admin_id']])->findOrEmpty();
- }
-
- if ($kefu_admin->isEmpty()) {
- return '关联管理员不存在';
- }
-
- if ($kefu['disable'] == 1 || $kefu_admin['disable'] == 1) {
- return '用户被禁用';
- }
-
- return true;
- }
-
-
- }
|