User.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace App\Module\User\Models;
  3. use App\Module\User\Enums\STATUS2;
  4. use Dcat\Admin\Traits\HasDateTimeFormatter;
  5. use UCore\ModelCore;
  6. /**
  7. *
  8. * 用户
  9. *
  10. * field start
  11. * @property int $id
  12. * @property string $username
  13. * @property string $password
  14. * @property string $remember_token
  15. * @property \Carbon\Carbon $created_at
  16. * @property \Carbon\Carbon $updated_at
  17. * @property \App\Module\User\Enums\STATUS2 $status2 状态
  18. * field end
  19. */
  20. class User extends ModelCore
  21. {
  22. use HasDateTimeFormatter;
  23. protected $table = 'users';
  24. protected $primaryKey = 'id';
  25. protected $casts = [
  26. 'status2' => STATUS2::class,
  27. ];
  28. // attrlist start
  29. protected $fillable = [
  30. 'id',
  31. 'username',
  32. 'password',
  33. 'remember_token',
  34. 'status2',
  35. ];
  36. // attrlist end
  37. /**
  38. * 用户信息
  39. * @return \Illuminate\Database\Eloquent\Relations\HasOne
  40. */
  41. public function info()
  42. {
  43. return $this->hasOne(UserInfo::class, 'user_id', 'id');
  44. }
  45. /**
  46. * 用户农场信息
  47. * @return \Illuminate\Database\Eloquent\Relations\HasOne
  48. */
  49. public function farmUser()
  50. {
  51. return $this->hasOne(\App\Module\Farm\Models\FarmUser::class, 'user_id', 'id');
  52. }
  53. /**
  54. * 用户手机号
  55. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  56. */
  57. public function phones()
  58. {
  59. return $this->hasMany(\App\Module\User\Models\UserPhone::class, 'user_id', 'id');
  60. }
  61. /**
  62. * 用户主要手机号(已绑定的)
  63. * @return \Illuminate\Database\Eloquent\Relations\HasOne
  64. */
  65. public function primaryPhone()
  66. {
  67. return $this->hasOne(\App\Module\User\Models\UserPhone::class, 'user_id', 'id')
  68. ->where('status', \App\Module\User\Enums\PHONE_STATUS::BIND);
  69. }
  70. /**
  71. * 用户资金账户
  72. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  73. */
  74. public function fundAccounts()
  75. {
  76. return $this->hasMany(\App\Module\Fund\Models\FundModel::class, 'user_id', 'id');
  77. }
  78. /**
  79. * 用户物品
  80. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  81. */
  82. public function items()
  83. {
  84. return $this->hasMany(\App\Module\GameItems\Models\ItemUser::class, 'user_id', 'id');
  85. }
  86. /**
  87. * 用户土地
  88. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  89. */
  90. public function lands()
  91. {
  92. return $this->hasMany(\App\Module\Farm\Models\FarmLand::class, 'user_id', 'id');
  93. }
  94. /**
  95. * 用户作物
  96. * @return \Illuminate\Database\Eloquent\Relations\HasMany
  97. */
  98. public function crops()
  99. {
  100. return $this->hasMany(\App\Module\Farm\Models\FarmCrop::class, 'user_id', 'id');
  101. }
  102. }