User.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\admin\model;
  3. use app\BaseModel;
  4. use think\model\concern\SoftDelete;
  5. use thans\jwt\facade\JWTAuth;
  6. class User extends BaseModel
  7. {
  8. use SoftDelete;
  9. protected $pk = "user_id";
  10. public static $defaultField = 'user_id,realname,realname as displayName,account,avatar,name_py,email,last_login_ip';
  11. protected $json = ['setting'];
  12. protected $jsonAssoc = true;
  13. public static function getCsId($admin_id) {
  14. return self::where('from', 0)->where('uid', $admin_id)->value('user_id');
  15. }
  16. public static function getAdminId($user_id) {
  17. return self::where('from', 0)->where('user_id', $user_id)->value('uid');
  18. }
  19. public function getAvatarAttr($value,$data)
  20. {
  21. return avatarUrl($data['avatar'],$data['realname'],$data['user_id']);
  22. }
  23. public function getSettingAttr($value)
  24. {
  25. if (!$value) return null;
  26. $setting = $value;
  27. $setting['hideMessageName']= $setting['hideMessageName']=='true' ? true : false;
  28. $setting['hideMessageTime']= $setting['hideMessageTime']=='true' ? true : false;
  29. $setting['avatarCricle']= $setting['avatarCricle']=='true' ? true : false;
  30. $setting['isVoice']= $setting['isVoice']=='true' ? true : false;
  31. $setting['sendKey']=(int)$setting['sendKey'];
  32. return $setting;
  33. }
  34. /**
  35. * 刷新用户token 之前token将被拉黑
  36. * 修改用户数据后 调用该方法 并返回前台更新token
  37. * @param array $info 用户信息
  38. * @param string $terminal 客户端标识
  39. * @return string
  40. * @throws \think\db\exception\DataNotFoundException
  41. * @throws \think\db\exception\DbException
  42. * @throws \think\db\exception\ModelNotFoundException
  43. */
  44. public static function refreshToken($info,$terminal, $admin = [])
  45. {
  46. $info = str_encipher(json_encode($info),true, config('app.aes_token_key'));
  47. $authToken = 'bearer '.JWTAuth::builder(['info' => $info, 'terminal' => $terminal, 'admin' => $admin]);
  48. return $authToken;
  49. }
  50. //添加客服用户
  51. public static function addCs($params) {
  52. self::create([
  53. 'account' => $params['username'],
  54. 'realname' => $params['nickname'] ?? '',
  55. 'password' => $params['password'],
  56. 'sex' => $params['sex'],
  57. 'role' => $params['role'],
  58. 'remark' => $params['remark'] ?? '',
  59. 'cs_uid' => $params['id'],
  60. 'friend_limit' => 500,
  61. 'group_limit' => 500,
  62. 'phone' => $params['phone'] ?? '',
  63. 'from' => 0,
  64. 'uid' => $params['id'],
  65. ]);
  66. }
  67. }