User.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // |
  4. // +----------------------------------------------------------------------
  5. // |
  6. // +----------------------------------------------------------------------
  7. // |
  8. // +----------------------------------------------------------------------
  9. // |
  10. // +----------------------------------------------------------------------
  11. // +----------------------------------------------------------------------
  12. // | 会员模型
  13. // +----------------------------------------------------------------------
  14. namespace app\admin\model\user;
  15. use think\facade\Config;
  16. use think\Model;
  17. class User extends Model
  18. {
  19. protected $autoWriteTimestamp = true;
  20. protected $updateTime = false;
  21. protected $createTime = 'reg_time';
  22. protected function setRegIpAttr()
  23. {
  24. return request()->ip();
  25. }
  26. protected function setLastLoginIpAttr()
  27. {
  28. return request()->ip();
  29. }
  30. protected function setLastLoginTimeAttr()
  31. {
  32. return time();
  33. }
  34. protected function setBirthdayAttr($value)
  35. {
  36. return $value ? $value : null;
  37. }
  38. protected function getBirthdayAttr($value)
  39. {
  40. return $value ? $value : '';
  41. }
  42. public static function onbeforeUpdate($row)
  43. {
  44. $changed = $row->getChangedData();
  45. //如果有修改密码
  46. if (isset($changed['password'])) {
  47. if ($changed['password']) {
  48. $encrypt = \util\Random::alnum();
  49. $row->password = encrypt_password($changed['password'], $encrypt);
  50. $row->encrypt = $encrypt;
  51. } else {
  52. unset($row->password);
  53. }
  54. }
  55. }
  56. /**
  57. * 获取头像
  58. * @param $value
  59. * @param $data
  60. * @return string
  61. */
  62. public function getAvatarAttr($value, $data)
  63. {
  64. if (!$value) {
  65. switch (Config::get('yzn.user_avatar_mode')) {
  66. case 'letter':
  67. $value = letter_avatar($data['nickname']);
  68. break;
  69. case 'gravatar':
  70. $value = "https://cravatar.cn/avatar/" . md5(strtolower(trim($data['email']))) . "?s=80";
  71. break;
  72. default:
  73. $value = config('upload.cdnurl') . '/assets/img/avatar.png';
  74. break;
  75. }
  76. }
  77. return cdnurl($value, true);
  78. }
  79. public function group()
  80. {
  81. return $this->belongsTo('UserGroup', 'group_id', 'id');
  82. }
  83. }