User.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace app\admin\model;
  3. use think\Model;
  4. class User extends Model
  5. {
  6. // 表名
  7. protected $name = 'user';
  8. // 自动写入时间戳字段
  9. protected $autoWriteTimestamp = 'int';
  10. // 定义时间戳字段名
  11. protected $createTime = 'createtime';
  12. protected $updateTime = 'updatetime';
  13. // 追加属性
  14. protected $append = [
  15. 'prevtime_text',
  16. 'logintime_text',
  17. 'jointime_text'
  18. ];
  19. protected static function init()
  20. {
  21. self::beforeUpdate(function ($row) {
  22. $changed = $row->getChangedData();
  23. //如果有修改密码
  24. if (isset($changed['password'])) {
  25. if ($changed['password']) {
  26. $salt = \fast\Random::alnum();
  27. $row->password = \app\common\library\Auth::instance()->getEncryptPassword($changed['password'], $salt);
  28. $row->salt = $salt;
  29. } else {
  30. unset($row->password);
  31. }
  32. }
  33. });
  34. }
  35. public function getGenderList()
  36. {
  37. return ['1' => __('Male'), '0' => __('Female')];
  38. }
  39. public function getStatusList()
  40. {
  41. return ['normal' => __('Normal'), 'hidden' => __('Hidden')];
  42. }
  43. public function getPrevtimeTextAttr($value, $data)
  44. {
  45. $value = $value ? $value : $data['prevtime'];
  46. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  47. }
  48. public function getLogintimeTextAttr($value, $data)
  49. {
  50. $value = $value ? $value : $data['logintime'];
  51. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  52. }
  53. public function getJointimeTextAttr($value, $data)
  54. {
  55. $value = $value ? $value : $data['jointime'];
  56. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  57. }
  58. protected function setPrevtimeAttr($value)
  59. {
  60. return $value && !is_numeric($value) ? strtotime($value) : $value;
  61. }
  62. protected function setLogintimeAttr($value)
  63. {
  64. return $value && !is_numeric($value) ? strtotime($value) : $value;
  65. }
  66. protected function setJointimeAttr($value)
  67. {
  68. return $value && !is_numeric($value) ? strtotime($value) : $value;
  69. }
  70. public function group()
  71. {
  72. return $this->belongsTo('UserGroup', 'group_id', 'id', [], 'LEFT')->setEagerlyType(0);
  73. }
  74. }