UserInfo.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Module\User\Models;
  3. use App\Module\User\Enums\PHONE_STATUS;
  4. use App\Module\Merchant\Model\Merchant;
  5. use App\Module\User\Enums\STATUS;
  6. use App\Module\User\Enums\STATUS2;
  7. use App\Module\User\Models\Events\UserInfoSaved;
  8. use App\Module\User\Models\Events\UserInfoUpdate;
  9. use UCore\ModelCore;
  10. use Illuminate\Database\Eloquent\Relations\HasOne;
  11. use Illuminate\Database\Eloquent\SoftDeletes;
  12. /**
  13. * 用户信息
  14. *
  15. * field start
  16. * @property int $user_id 用户ID
  17. * @property \App\Module\User\Enums\STATUS $status 状态
  18. * @property string $google2fa_secret
  19. * @property string $nickname 昵称
  20. * @property string $avatar 头像
  21. * @property \Carbon\Carbon $created_at
  22. * @property \Carbon\Carbon $updated_at
  23. * @property \Carbon\Carbon $deleted_at
  24. * @property string $wx_id 微信号
  25. * @property \Carbon\Carbon $last_login_time 最后登录时间
  26. * @property \Carbon\Carbon $last_activity_time 最后活动时间
  27. * field end
  28. *
  29. * Class UserInfo
  30. * @property UserPhone $user_phone
  31. */
  32. class UserInfo extends \UCore\ModelCore
  33. {
  34. use SoftDeletes;
  35. protected $primaryKey = 'user_id';
  36. protected $casts = [
  37. 'status' => STATUS::class,
  38. ];
  39. protected $dispatchesEvents = [
  40. 'updated' => UserInfoUpdate::class,
  41. 'saved' => UserInfoSaved::class
  42. ];
  43. // attrlist start
  44. protected $fillable = [
  45. 'user_id',
  46. 'status',
  47. 'google2fa_secret',
  48. 'nickname',
  49. 'avatar',
  50. 'wx_id',
  51. 'last_login_time',
  52. 'last_activity_time',
  53. ];
  54. // attrlist end
  55. public function user(): HasOne
  56. {
  57. return $this->hasOne(User::class, 'id', 'user_id');
  58. }
  59. public function user_phone(): HasOne
  60. {
  61. return $this->hasOne(UserPhone::class, 'user_id', 'user_id')->where('status', '=', PHONE_STATUS::BIND);
  62. }
  63. }