Admin.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php namespace App\Models;
  2. use Illuminate\Database\Eloquent\Factories\HasFactory;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Facades\Servers\Encrypts\AccessToken;
  5. /**
  6. *用户模型
  7. *
  8. */
  9. class Admin extends Model
  10. {
  11. use HasFactory;
  12. // 与模型关联的表名
  13. protected $table = 'admin';
  14. // 是否主动维护时间戳
  15. public $timestamps = false;
  16. protected $connection = 'mysql';
  17. /**
  18. * 添加数据
  19. *
  20. */
  21. public function add($data)
  22. {
  23. // 时间
  24. $data['insert_time'] = time();
  25. $data['update_time'] = time();
  26. // 写入数据表
  27. $id = $this->query()->insertGetId($data);
  28. // 如果操作失败
  29. if( !$id ) return 0;
  30. // 更新缓存
  31. $this->getList(true);
  32. // 返回结果
  33. return $id;
  34. }
  35. /**
  36. * 添加数据
  37. *
  38. */
  39. public function edit($id,$data)
  40. {
  41. // 更新时间
  42. $data['update_time'] = time();
  43. // 写入数据表
  44. $result = $this->query()->where(['uid'=>$id])->update($data);
  45. // 如果操作失败
  46. if( !$result ) return 0;
  47. // 更新缓存
  48. $this->getList(true);
  49. // 返回结果
  50. return $id;
  51. }
  52. /**
  53. * 获取列表
  54. * @param Bool $force 是否强制更新
  55. *
  56. */
  57. public function getList($force = false)
  58. {
  59. // 结果数据
  60. $list = $force ? [] : cache('manager:admin:user:list');
  61. // 不存在数据
  62. if ( !$list ) {
  63. // 从数据库获取数据
  64. $data = $this->query()->get(['uid','username','phone','status','password','status','insert_time','update_time'])->toArray();
  65. // 循环处理数据
  66. $list = [];
  67. // 进行更新
  68. foreach ($data as $value) {
  69. // 重组数据
  70. $list[$value['uid']] = $value;
  71. }
  72. // 存起来
  73. cache(['manager:admin:user:list'=>$list]);
  74. }
  75. // 返回结果
  76. return $list;
  77. }
  78. /**
  79. * 登录
  80. *
  81. * @param int 用户ID
  82. *
  83. */
  84. public function Login($uid,$module='admin'){
  85. // 组合数据
  86. $jwtData = ['uid'=>$uid,'type'=>$module,'expire'=>time()+3600*12];
  87. // 登录成功
  88. $token = AccessToken::encode($jwtData);
  89. // 如果异常的话
  90. if( isset($token['error']) ) return $token;
  91. // 登录成功
  92. cache([$module.':admin:access_token:'.$uid=>md5($token)],3600*12);
  93. // 返回结果
  94. return ['access_token_'.$module=>$token,'expire'=>3600*12];
  95. }
  96. }