Admin.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace app\admin\model;
  3. use think\facade\Config;
  4. use think\facade\Db;
  5. use think\Model;
  6. use ba\Random;
  7. /**
  8. * Admin模型
  9. * @controllerUrl 'authAdmin'
  10. */
  11. class Admin extends Model
  12. {
  13. /**
  14. * @var string 自动写入时间戳
  15. */
  16. protected $autoWriteTimestamp = 'int';
  17. /**
  18. * @var string 自动写入创建时间
  19. */
  20. protected $createTime = 'createtime';
  21. /**
  22. * @var string 自动写入更新时间
  23. */
  24. protected $updateTime = 'updatetime';
  25. /**
  26. * 追加属性
  27. */
  28. protected $append = [
  29. 'group_arr',
  30. 'group_name_arr',
  31. ];
  32. public function getGroupArrAttr($value, $row)
  33. {
  34. return Db::name('admin_group_access')
  35. ->where('uid', $row['id'])
  36. ->column('group_id');
  37. }
  38. public function getGroupNameArrAttr($value, $row)
  39. {
  40. $groupAccess = Db::name('admin_group_access')
  41. ->where('uid', $row['id'])
  42. ->column('group_id');
  43. return AdminGroup::whereIn('id', $groupAccess)->column('name');
  44. }
  45. public function getAvatarAttr($value)
  46. {
  47. return full_url($value, true, Config::get('buildadmin.default_avatar'));
  48. }
  49. public function getLastlogintimeAttr($value)
  50. {
  51. return $value ? date('Y-m-d H:i:s', $value) : 'none';
  52. }
  53. /**
  54. * 重置用户密码
  55. * @param int $uid 管理员ID
  56. * @param string $newPassword 新密码
  57. */
  58. public function resetPassword($uid, $newPassword)
  59. {
  60. $salt = Random::build('alnum', 16);
  61. $passwd = encrypt_password($newPassword, $salt);
  62. return $this->where(['id' => $uid])->update(['password' => $passwd, 'salt' => $salt]);
  63. }
  64. }